- 20 Feb, 2007 4 commits
-
-
marko authored
failing insert. Reorganization will have been attempted in page_cur_tuple_insert() or page_cur_rec_insert(). page_zip_reorganize(): Recompute the insert buffer free bits for leaf pages of secondary indexes. ibuf_data_enough_free_for_insert(): Simplify.
-
marko authored
were introduced when reducing the memory footprint of the data dictionary cache (Bug #20877), around r834. This function is only compiled if PAGE_CUR_LE_OR_EXTENDS is defined in page0cur.h.
-
marko authored
compressed tablespaces. btr_page_reorganize_low(): Recompute the insert buffer free bits for compressed pages belonging to a non-clustered index. btr_cur_optimistic_insert(): Determine if the page was reorganized by page_cur_tuple_insert(). Do not attempt to reorganize compressed pages, because that will be attempted by page_cur_tuple_insert().
-
marko authored
fails, reset the insert buffer free bits for the page.
-
- 19 Feb, 2007 3 commits
-
-
marko authored
page_zip_max_ins_size(): New function. btr_cur_optimistic_insert(), btr_cur_optimistic_delete(), btr_page_split_and_insert(), btr_compress(): Do not update the ibuf free bits for non-leaf pages or pages belonging to a clustered index. The insert buffer only covers operations on leaf pages of secondary indexes. For pages covered by the insert buffer, limit the max_ins_size to page_zip_max_ins_size(). buf_page_get_gen(): Merge the insert buffer after decompressing the page. buf_page_io_complete(): Relax the assertion about ibuf_count. For compressed-only pages, the insert buffer merge takes place in buf_page_get_gen(). ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(), ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(), ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(), ibuf_set_free_bits_low(): Add the parameter zip_size. Limit the maximum insert size to page_zip_max_ins_size().
-
marko authored
Replace the parameter "dict_index_t* index" with "ibool is_clust". dict_index_is_clust(): Add __attribute__((pure)).
-
marko authored
compressed pages, because doing so would require a call to buf_buddy_alloc(), which in turn can invoke buf_LRU_get_free_block() and buf_LRU_search_and_free_block(), potentially infinite recursion.
-
- 16 Feb, 2007 1 commit
-
-
marko authored
pages when they do not occupy too much of the buffer pool. buf0buddy.c, buf0buddy.h: Export buf_buddy_n_frames and buf_buddy_min_n_frames.
-
- 13 Feb, 2007 3 commits
-
-
marko authored
buf_buddy_n_frames: Number of buffer frames allocated for the buddy system buf_buddy_used[]: Counts of allocated blocks, by buddy size. buf_buddy_relocated[]: Counts of blocks relocated, bu buddy size. buf_buddy_alloc_clean(): Note the added configuration parameter buf_buddy_min_n_frames: Preferred minimum buf_buddy_n_frames
-
marko authored
around zip_size. zip_size will be 0 most of the time.
-
marko authored
decompression, check that the compressed block has not been buffer-fixed or I/O-fixed. This race condition was introduced in r1286.
-
- 12 Feb, 2007 1 commit
-
-
marko authored
invoke btr_cur_add_ext() so that rec_size will be computed correctly. Prepare to free the memory heap when handling errors.
-
- 08 Feb, 2007 4 commits
-
-
marko authored
buf_buddy_alloc() until after the block has been found not to exist in the buffer pool. buf_buddy_alloc(), buf_buddy_alloc_low(): Make lru an output parameter. Improve documentation. buf_page_init_for_read(): Simplify the code. Check buf_page_hash_get() again if buf_buddy_alloc() released buf_pool->mutex.
-
marko authored
when not invoking buf_buddy_alloc().
-
marko authored
frame when reading compressed pages, unless crash recovery is in progress. buf_page_read_low(): Adapt for buf_page_init_for_read() returning buf_page_t* instead of buf_block_t*.
-
marko authored
function comments that buf_page_init_for_read() does not perform the state transition to FILE_PAGE. This should have been done in r1286.
-
- 07 Feb, 2007 1 commit
-
-
marko authored
but in buf_page_get_gen(). Adjust comments. This prevents unnecessary decompression in read-ahead when the compressed block exists in the buffer pool. If the block does not exist in the buffer pool, read-ahead will still allocate an uncompressed page and decompress the block. Move buf_block_init_low() and buf_zip_decompress() earlier in the file, because some compilers are unable to inline functions that are defined after the invocation. buf_page_get_gen(): Decompress the block if needed. buf_page_init_for_read(): Do not decompress.
-
- 05 Feb, 2007 4 commits
-
-
marko authored
stored columns as a special case. page_zip_write_rec_ext(): New function for writing records containing externally stored columns.
-
marko authored
record does not contain externally stored columns. page_zip_decompress_clust_ext(): New function for decompressing records containing externally stored columns.
-
marko authored
before testing create_info->avg_row_length, because otherwise the table would be converted to uncompressed format by CREATE INDEX and possibly other statements.
-
marko authored
externally stored columns. page_zip_compress_clust_ext(), page_zip_apply_log_ext(): New functions. page_zip_compress_clust(), page_zip_apply_log(): Check rec_offs_any_extern() and avoid invoking the costly loop in most cases. Similar optimizations can be made in page_zip_decompress_clust() and page_zip_write_rec().
-
- 02 Feb, 2007 2 commits
-
-
marko authored
by adding the REC_OFFS_EXTERNAL flag to rec_offs_base(offsets)[0]. This reduces the processor usage of page_zip_write_rec() by about 40% in one test case. The code could be sped up further by testing rec_offs_any_extern() outside of loops that check rec_offs_nth_extern(). The vast majority of records does not contain any externally stored columns.
-
marko authored
-
- 01 Feb, 2007 2 commits
-
-
marko authored
and introduce enum lock_mode. lock_mode_stronger_or_eq(), lock_mode_compatible(): Replace if-then-else chain with a bitwise and against a constant.
-
marko authored
page_cur_insert_rec_zip_reorg(): New function: Recompress or reorganize a compressed page. page_cur_insert_rec_zip(): New function: insert a record to a compressed page. page_cur_insert_rec_low(): Only handle inserts to uncompressed pages.
-
- 31 Jan, 2007 3 commits
-
-
marko authored
trx_undo_page_report_modify(), trx_undo_report_row_operation(): Add const qualifier to the parameter rec. Remove some local variables. trx_undo_report_row_operation(): Invoke rec_get_offsets() only once.
-
marko authored
and optimize one test.
-
marko authored
eliminate some local variables, and add branching hints.
-
- 30 Jan, 2007 1 commit
-
-
marko authored
to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap".
-
- 29 Jan, 2007 1 commit
-
-
marko authored
page_zip_set_alloc(): New function, to configure zlib to use a memory heap. btr_store_big_rec_extern_fields(): Reduce memLevel, so that a heap of 256 kilobytes will suffice. Use page_zip_set_alloc(). btr_copy_externally_stored_field_prefix_low(): Use page_zip_set_alloc(). page_zip_compress(), page_zip_decompress(): Use page_zip_set_alloc().
-
- 24 Jan, 2007 2 commits
-
-
marko authored
of HASH_DELETE(). HASH_ASSERT_VALID(), HASH_INVALIDATE(): New macros, used in HASH_DELETE() and HASH_SEARCH(). buf_page_init_low(): Add HASH_INVALIDATE(bpage, hash); buf_page_init(): Call buf_page_init_low() before HASH_INSERT(), so that bpage->hash will not be invalidated.
-
marko authored
for extra validation in UNIV_DEBUG builds.
-
- 23 Jan, 2007 4 commits
-
-
marko authored
block->page.buf_fix_count. This mistake was made in r1255. When access to the block is requested by some other thread, buf_fix_count can be incremented during the execution of buf_zip_decompress().
-
marko authored
Replace some while loops with do..while or for loops. lock_move_rec_list_start(): Replace 2 with PAGE_HEAP_NO_USER_LOW.
-
marko authored
initialize all the fields of the control block. buf_block_init_low(), buf_page_init_low(): New functions, used in buf_page_init_for_backup_restore(), buf_page_init(), and buf_page_init_for_read().
-
marko authored
Declare some local variables in narrower scope. lock_move_rec_list_start(): Check for orphan locks #ifdef UNIV_DEBUG
-
- 22 Jan, 2007 4 commits
-
-
marko authored
orphaned locks outside the "for" loop. This mistake was made in r1252.
-
marko authored
and implement UNIV_DEBUG diagnostics for orphaned locks.
-
marko authored
inside #ifdef UNIV_DEBUG_LOCK_VALIDATE. lock_rec_validate_page(): Assert that page_find_rec_with_heap_no() returns non-NULL.
-
marko authored
lock_rec_get_nth_bit(), lock_rec_set_nth_bit(), lock_rec_reset_nth_bit(), lock_rec_copy(): Simplify the code.
-