- 19 Dec, 2006 1 commit
-
-
marko authored
buf_buddy_alloc_zip() [UNIV_DEBUG]: Byte-fill the allocated blocks with ~i. buf_buddy_block_free() [UNIV_DEBUG]: Clear the frame before releasing it to the buffer pool. buf_buddy_alloc_from() [UNIV_DEBUG]: Byte-fill the free blocks with j. buf_buddy_relocate(): Allow the buf_page_hash_get() lookup to fail, and note the reason. buf_buddy_free_low(): Correctly compute the address of the combined free block. buf_page_struct: Clarify the mutex protection rules. Note that the pointer zip.data is also protected by buf_pool->mutex.
-
- 18 Dec, 2006 3 commits
-
-
marko authored
block before traversing the free list.
-
marko authored
buf_buddy_get(): Document that "page" should be a pointer to char or byte.
-
marko authored
buf_buddy_alloc_zip(): Calculate the address with char* aritmetics. buf_buddy_alloc_clean(): Acquire a mutex on the block before calling buf_LRU_free_block(). buf_buddy_relocate(): Remove the bogus assertion about src and dst being buddies of each other. Use mach_read_from_4() instead of page_get_space_id() and page_get_page_no() to avoid page alignment assertions. buf_buddy_free_low(): Replace bogus assertions.
-
- 15 Dec, 2006 2 commits
-
-
marko authored
buf_LRU_block_remove_hashed_page(): Return the new state of the block. Only call buf_LRU_block_free_hashed_page() if buf_LRU_block_remove_hashed_page() did not return BUF_BLOCK_ZIP_FREE, that is, the control block was not freed. buf_LRU_insert_zip_clean(): New function, for inserting a compressed-only block into buf_pool->zip_clean in the LRU order. buf_LRU_block_remove_hashed_page(), buf_LRU_free_block(): Add the flag "zip" for controlling if the compressed page of an uncompressed page should be removed. For now, assume zip==TRUE. buf_LRU_get_free_block(): Replace the test for UT_LIST_GET_LEN(buf_pool->free) with a test for the return value of buf_LRU_get_free_only(). Do not free zip.data, as it must already have been freed. buf_flush_insert_into_flush_list(), buf_flush_insert_sorted_into_flush_list(): Remove compressed-only blocks from the buf_pool->zip_clean list. buf_flush_remove(): Restore compressed-only blocks to the buf_pool->zip_clean list. buf_page_init_for_read(): Uncompress compressed-only blocks when possible. Currently, there cannot be any compressed-only blocks in the buffer pool; they would be inserted by buf_LRU_free_block(bpage, zip=FALSE).
-
marko authored
buf_flush_remove(): New function, for removing a block from the flush list. Sliced from buf_flush_write_complete(). buf_page_set_state(): Allow transitions between BUF_BLOCK_ZIP_PAGE and BUF_BLOCK_ZIP_DIRTY.
-
- 14 Dec, 2006 1 commit
-
-
marko authored
buf_relocate(): New function, split from buf_buddy_relocate().
-
- 13 Dec, 2006 1 commit
-
-
marko authored
buf_LRU_get_free_block(): Document that the block is in the state BUF_BLOCK_READY_FOR_USE. buf_block_alloc(): Change the state of the block to BUF_BLOCK_MEMORY and document it. Replace those invocations of buf_block_alloc() with buf_LRU_get_free_block() where the allocated block is used for buffer pool input and output. However, temporary copies of B-tree pages during reorganization are not used for file I/O, and such blocks are still allocated with buf_block_alloc().
-
- 12 Dec, 2006 3 commits
-
-
marko authored
the LRU list regardless of their size. buf_buddy_alloc_clean_zip(): Rename to buf_buddy_alloc_clean(), now that also uncompressed blocks can be reclaimed. Use buf_buddy_alloc_zip() instead of reusing the freed block directly, since buf_buddy_free() may combine blocks.
-
marko authored
-
marko authored
buf_buddy_alloc(), buf_buddy_alloc_low(): Add parameter "lru" for enabling allocation from the list of least-recently-used blocks. buf_buddy_alloc_low(): Release buf_pool->mutex while calling buf_LRU_get_free_block().
-
- 11 Dec, 2006 5 commits
-
-
marko authored
buf_buddy_relocate(): Replace ut_align_down() with ut_align_offset() in assertions. buf0buddy.h: Include buf0buf.h and sync0sync.h.
-
marko authored
buf_LRU_free_block(): Free compressed-only pages and their descriptors with buf_buddy_free(). buf_LRU_get_free_only(): New function for returning a block from buf_pool->free if one is available. Split from buf_LRU_get_free_block(). buf_buddy_alloc_zip(): Rename from buf_buddy_alloc_low() and make static. Remove parameter "split". Always try to split. buf_buddy_free_block(): Rename to buf_buddy_block_free(). buf_buddy_block_register(): New function for registering buf_block_t objects reserved by the allocator. buf_buddy_alloc_from(): New function for allocating an object from a bigger object, and putting the unused parts on the free list. buf_buddy_alloc_clean_zip(): New function for allocating memory by replacing an unmodified compressed page. buf_buddy_alloc_low(): New function for allocating memory, either from the free lists of compressed pages, from the global free list, or from unmodified pages in the buffer pool.
-
marko authored
popular demand.
-
marko authored
to the buddy system for allocating compressed pages and their descriptors. buf_buddy_free_block(): New function: Deallocate the buffer frame. buf_buddy_free(), buf_buddy_free_low(): Return void instead of a pointer to a freed buffer frame.
-
marko authored
clean compressed pages (BUF_BLOCK_ZIP_PAGE).
-
- 08 Dec, 2006 2 commits
-
-
marko authored
introduced ib_longlong and %ll length specifier are not C89.) row_ext_t: Change char* buf to byte* buf to avoid signedness warnings. Change the type of all bit fields to unsigned. rec_get_next_ptr(): Add (byte*) casts to avoid arithmetics on void*. page_zip_decompress_clust(): Do not mix declarations and code.
-
marko authored
free block in order to create two adjacent free blocks that can be recombined. Add some debug assertions. buf_buddy_relocate(): New function: Try to relocate a free block.
-
- 07 Dec, 2006 6 commits
-
-
marko authored
-
marko authored
-
marko authored
buf_buddy_alloc_free_low() to buf_buddy_alloc_low().
-
marko authored
Add parameter "split" for enabling splits.
-
marko authored
compressed pages from the buffer pool. Makefile.am: Add buf0buddy.h, buf0buddy.ic. buf/Makefile.am: Add buf0buddy.c. Introduce the constants BUF_BUDDY_LOW and BUF_BUDDY_SIZES. buf_pool_t: Add zip_mutex and the lists zip_clean and zip_free[]. buf_page_get_mutex(): Return &buf_pool->zip_mutex instead of NULL. buf_buddy_get_offset(), buf_buddy_get(), buf_buddy_get_slot(), buf_buddy_alloc_free(), buf_buddy_alloc_free_low(): New functions.
-
marko authored
-
- 05 Dec, 2006 2 commits
- 04 Dec, 2006 3 commits
-
-
marko authored
buf_LRU_block_remove_hashed_page() changes the state of the block. This error was introduced in r1090.
-
marko authored
to free_or_flush_list. The list node pointers can be shared, because a block can never be belong to both lists at the same time.
-
marko authored
as the field will be read without mutex protection in buf_page_io_complete().
-
- 30 Nov, 2006 9 commits
-
-
marko authored
-
marko authored
(state == BUF_BLOCK_ZIP_PAGE). Make use of buf_page_in_file() and buf_page_get_mutex(). buf_block_get_newest_modification(): Rename to buf_page_get_newest_modification().
-
marko authored
Add m_nonempty for facilitating the test in page_zip_alloc(). This reduces the combined size of the bit-fields to 32 bits. Thus, sizeof(page_zip_des_t) == 2 machine words on 32-bit and wider systems.
-
marko authored
LRU_position and possibly freed_page_clock. All these fields are protected by buf_pool->mutex rather than buf_page_get_mutex(). buf_page_set_accessed(): Add a mutex_own() assertion.
-
marko authored
on a NULL pointer. This error was introduced in r1082.
-
marko authored
of the buffer pool from buf_block_t to buf_page_t. Replace some buf_block_t* parameters with buf_page_t*. Add accessor functions.
-
marko authored
decompression from page_zip_des_t to buf_page_t, because the fields needed in compression are modified without holding the block mutex. All writes to bit-fields sharing a machine word must be protected by the same mutex or rw-lock.
-
marko authored
buf_block_buf_fix_inc_func() to eliminate an #ifdef in every invocation.
-
marko authored
to ut_uint64_align_down() and ut_uint64_align_up(), to reflect the rename of ib_ulonglong to ib_uint64_t in r1085.
-
- 29 Nov, 2006 2 commits