Commit a85fd294 authored by marko's avatar marko

branches/zip: Allow dirty compressed-only blocks to exist in the buffer pool

and to be flushed to disk.

buf_LRU_free_block(): Enable the freeing of uncompressed pages of
compressed tablespaces.

trx_doublewrite->buf_block_arr[]: Change the type from buf_block_t*
to buf_page_t*.

buf_flush_ready_for_flush(): Add debug assertion.

buf_flush_buffered_writes(), buf_flush_try_page(): Support blocks of type
BUF_BLOCK_ZIP_DIRTY.

buf_flush_post_to_doublewrite_buf(), buf_flush_write_block_low():
Change the type of the parameter from buf_block_t* to buf_page_t*.

buf_flush_init_for_writing(): Allow page to be NULL if page_zip_ is non-NULL.
parent 94e49a71
This diff is collapsed.
......@@ -929,7 +929,7 @@ buf_LRU_free_block(
return(FALSE);
}
// b = buf_buddy_alloc(sizeof *b, FALSE); // TODO: enable this
b = buf_buddy_alloc(sizeof *b, FALSE);
if (!b) {
return(FALSE);
......
......@@ -48,7 +48,8 @@ Initializes a page for writing to the tablespace. */
void
buf_flush_init_for_writing(
/*=======================*/
byte* page, /* in/out: page */
byte* page, /* in/out: page, may be NULL
if page_zip_ is non-NULL */
void* page_zip_, /* in/out: compressed page, or NULL */
ib_uint64_t newest_lsn); /* in: newest modification lsn
to the page */
......
......@@ -408,7 +408,7 @@ struct trx_doublewrite_struct{
address divisible by UNIV_PAGE_SIZE
(which is required by Windows aio) */
byte* write_buf_unaligned; /* pointer to write_buf, but unaligned */
buf_block_t**
buf_page_t**
buf_block_arr; /* array to store pointers to the buffer
blocks which have been cached to write_buf */
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment