diff options
author | unknown <bell@desktop.sanja.is.com.ua> | 2007-04-16 13:19:43 +0300 |
---|---|---|
committer | unknown <bell@desktop.sanja.is.com.ua> | 2007-04-16 13:19:43 +0300 |
commit | e10fe77b0ac9a43ad795555c65391318ff7cc968 (patch) | |
tree | e2ed09433088190ae567be9a0e523defae042456 /include | |
parent | 1bf0ed775431a5142e846e23330228468dcf140b (diff) | |
parent | 39d64a1d2565b09307d11b2a665f3f2c6bc8106e (diff) | |
download | mariadb-git-e10fe77b0ac9a43ad795555c65391318ff7cc968.tar.gz |
Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria.bak
into desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-test
include/maria.h:
Auto merged
mysys/Makefile.am:
Auto merged
mysys/mf_keycaches.c:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
storage/maria/Makefile.am:
Auto merged
storage/maria/ha_maria.cc:
Auto merged
storage/maria/ma_bitmap.c:
Auto merged
storage/maria/ma_check.c:
Auto merged
storage/maria/ma_close.c:
Auto merged
storage/maria/ma_dynrec.c:
Auto merged
storage/maria/ma_extra.c:
Auto merged
storage/maria/ma_info.c:
Auto merged
storage/maria/ma_keycache.c:
Auto merged
storage/maria/ma_locking.c:
Auto merged
storage/maria/ma_loghandler.c:
Auto merged
storage/maria/ma_open.c:
Auto merged
storage/maria/ma_packrec.c:
Auto merged
storage/maria/ma_page.c:
Auto merged
storage/maria/ma_pagecache.c:
Auto merged
storage/maria/ma_panic.c:
Auto merged
storage/maria/ma_preload.c:
Auto merged
storage/maria/ma_static.c:
Auto merged
storage/maria/ma_test1.c:
Auto merged
storage/maria/ma_test2.c:
Auto merged
storage/maria/ma_test3.c:
Auto merged
storage/maria/ma_write.c:
Auto merged
storage/maria/maria_chk.c:
Auto merged
storage/maria/maria_def.h:
Auto merged
storage/maria/maria_ftdump.c:
Auto merged
storage/maria/maria_pack.c:
Auto merged
sql/handler.cc:
merge
storage/maria/ma_blockrec.c:
merge
storage/maria/ma_delete_all.c:
merge
Diffstat (limited to 'include')
-rw-r--r-- | include/maria.h | 14 | ||||
-rw-r--r-- | include/myisamchk.h | 2 | ||||
-rw-r--r-- | include/pagecache.h | 44 |
3 files changed, 40 insertions, 20 deletions
diff --git a/include/maria.h b/include/maria.h index a8c5cbf794b..dab578e6ec7 100644 --- a/include/maria.h +++ b/include/maria.h @@ -27,8 +27,8 @@ extern "C" { #ifndef _m_ctype_h #include <m_ctype.h> #endif -#ifndef _keycache_h -#include "keycache.h" +#ifndef _pagecache_h +#include "pagecache.h" #endif #include "my_handler.h" #include "ft_global.h" @@ -249,7 +249,7 @@ extern my_bool maria_flush, maria_single_user; extern my_bool maria_delay_key_write, maria_delay_rec_write; extern my_off_t maria_max_temp_length; extern ulong maria_bulk_insert_tree_size, maria_data_pointer_size; -extern KEY_CACHE maria_key_cache_var, *maria_key_cache; +extern PAGECACHE maria_pagecache_var, *maria_pagecache; /* Prototypes for maria-functions */ @@ -418,10 +418,10 @@ my_bool maria_test_if_sort_rep(MARIA_HA *info, ha_rows rows, ulonglong key_map, int maria_init_bulk_insert(MARIA_HA *info, ulong cache_size, ha_rows rows); void maria_flush_bulk_insert(MARIA_HA *info, uint inx); void maria_end_bulk_insert(MARIA_HA *info); -int maria_assign_to_key_cache(MARIA_HA *info, ulonglong key_map, - KEY_CACHE *key_cache); -void maria_change_key_cache(KEY_CACHE *old_key_cache, - KEY_CACHE *new_key_cache); +int maria_assign_to_pagecache(MARIA_HA *info, ulonglong key_map, + PAGECACHE *key_cache); +void maria_change_pagecache(PAGECACHE *old_key_cache, + PAGECACHE *new_key_cache); int maria_preload(MARIA_HA *info, ulonglong key_map, my_bool ignore_leaves); /* fulltext functions */ diff --git a/include/myisamchk.h b/include/myisamchk.h index 66d0a77b62f..887cf835b87 100644 --- a/include/myisamchk.h +++ b/include/myisamchk.h @@ -133,7 +133,7 @@ typedef struct st_handler_check_param ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY]; uint out_flag, warning_printed, error_printed, verbose; uint opt_sort_key, total_files, max_level; - uint testflag, key_cache_block_size; + uint testflag, key_cache_block_size, pagecache_block_size; int tmpfile_createflag, err_count; myf myf_rw; uint8 language; diff --git a/include/pagecache.h b/include/pagecache.h index 32e23fb54ea..08ecc7e5f4a 100644 --- a/include/pagecache.h +++ b/include/pagecache.h @@ -66,8 +66,6 @@ enum pagecache_write_mode { /* do not write immediately, i.e. it will be dirty page */ PAGECACHE_WRITE_DELAY, - /* write page to the file and put it to the cache */ - PAGECACHE_WRITE_NOW, /* page already is in the file. (key cache insert analogue) */ PAGECACHE_WRITE_DONE }; @@ -162,6 +160,9 @@ typedef struct st_pagecache my_bool in_init; /* Set to 1 in MySQL during init/resize */ } PAGECACHE; +/* The default key cache */ +extern PAGECACHE dflt_pagecache_var, *dflt_pagecache; + extern int init_pagecache(PAGECACHE *pagecache, my_size_t use_mem, uint division_limit, uint age_threshold, uint block_size); @@ -184,16 +185,22 @@ extern byte *pagecache_valid_read(PAGECACHE *pagecache, PAGECACHE_PAGE_LINK *link, pagecache_disk_read_validator validator, gptr validator_data); -extern my_bool pagecache_write(PAGECACHE *pagecache, - PAGECACHE_FILE *file, - pgcache_page_no_t pageno, - uint level, - byte *buff, - enum pagecache_page_type type, - enum pagecache_page_lock lock, - enum pagecache_page_pin pin, - enum pagecache_write_mode write_mode, - PAGECACHE_PAGE_LINK *link); + +#define pagecache_write(P,F,N,L,B,T,O,I,M,K) \ + pagecache_write_part(P,F,N,L,B,T,O,I,M,K,0,(P)->block_size) + +extern my_bool pagecache_write_part(PAGECACHE *pagecache, + PAGECACHE_FILE *file, + pgcache_page_no_t pageno, + uint level, + byte *buff, + enum pagecache_page_type type, + enum pagecache_page_lock lock, + enum pagecache_page_pin pin, + enum pagecache_write_mode write_mode, + PAGECACHE_PAGE_LINK *link, + uint offset, + uint size); extern void pagecache_unlock_page(PAGECACHE *pagecache, PAGECACHE_FILE *file, pgcache_page_no_t pageno, @@ -224,5 +231,18 @@ extern my_bool pagecache_collect_changed_blocks_with_lsn(PAGECACHE *pagecache, LSN *max_lsn); extern int reset_pagecache_counters(const char *name, PAGECACHE *pagecache); + +/* Functions to handle multiple key caches */ +extern my_bool multi_pagecache_init(void); +extern void multi_pagecache_free(void); +extern PAGECACHE *multi_pagecache_search(byte *key, uint length, + PAGECACHE *def); +extern my_bool multi_pagecache_set(const byte *key, uint length, + PAGECACHE *pagecache); +extern void multi_pagecache_change(PAGECACHE *old_data, + PAGECACHE *new_data); +extern int reset_pagecache_counters(const char *name, + PAGECACHE *pagecache); + C_MODE_END #endif /* _keycache_h */ |