Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
Description
For MDEV-14481, we must defer the change buffer merge to the moment when the secondary index leaf page is requested by a user thread.
This would also simplify MDEV-16526, because the change buffer I/O would not have to be treated as a special case.
The change buffer format will not be changed as part of this task. That could remain part of MDEV-11634.
As part of this, the counter innodb_ibuf_merge_usec will be removed from information_schema.innodb_metrics.
Attachments
Issue Links
- blocks
-
MDEV-11634 Improve the InnoDB change buffer
-
- Closed
-
-
MDEV-14481 Execute InnoDB crash recovery in the background
-
- Closed
-
-
MDEV-16526 Overhaul the InnoDB page flushing
-
- Closed
-
-
MDEV-18724 Replace buf_block_t::mutex with more std::atomic
-
- Closed
-
- causes
-
MDEV-22090 Change buffer is not freed after dropping or rebuilding table
-
- Closed
-
- is blocked by
-
MDEV-20543 Latching order violation during B-tree operations
-
- Closed
-
-
MDEV-20805 ibuf_add_free_page() is not initializing FIL_PAGE_TYPE first
-
- Closed
-
- is part of
-
MDEV-12700 Allow innodb_read_only startup without prior slow shutdown
-
- Closed
-
- relates to
-
MDEV-16989 InnoDB hang on crash recovery: Waited for 10 seconds for 256 pending reads
-
- Closed
-
-
MDEV-21030 MariaDB keepts crashing on start
-
- Closed
-
-
MDEV-23380 InnoDB reads a page from disk despite parsing MLOG_INIT_FILE_PAGE2 record
-
- Closed
-
-
MDEV-23973 Change buffer corruption when reallocating an recently freed page
-
- Closed
-
-
MDEV-25783 CHECK TABLE harvests InnoDB: Index 'abdcef' contains 10001 entries, should be 10000
-
- Closed
-
-
MDEV-26464 InnoDB: Failing assertion: UT_LIST_GET_LEN(buf_pool->flush_list) == 0 during shutdown
-
- Closed
-
-
MDEV-27199 Require ib_logfile0 to exist unless innodb_force_recovery=6
-
- Closed
-
-
MDEV-27734 Set innodb_change_buffering=none by default
-
- Closed
-
-
MDEV-34759 buf_page_get_low() is unnecessarily acquiring exclusive latch on secondary index pages
-
- Closed
-
-
MDEV-18698 Show InnoDB's internal background threads in SHOW ENGINE INNODB STATUS
-
- Open
-
-
MDEV-27153 ibdata1 file Leaking ? (errno 135) - using innodb_undo_tablespaces
-
- Closed
-
-
MDEV-31621 Remove ibuf_read_merge_pages() call from ibuf_insert_low()
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue blocks |
Link |
This issue blocks |
Status | Open [ 1 ] | Confirmed [ 10101 ] |
Link |
This issue blocks |
Priority | Major [ 3 ] | Critical [ 2 ] |
Link |
This issue blocks |
Status | Confirmed [ 10101 ] | In Progress [ 3 ] |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Marko Mäkelä [ marko ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Marko Mäkelä [ marko ] | Thirunarayanan Balathandayuthapani [ thiru ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Link |
This issue is part of |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Marko Mäkelä [ marko ] |
Status | Stalled [ 10000 ] | In Review [ 10002 ] |
Description |
For This would also simplify This should also allow us to remove the buf_pool->watch and BUF_BLOCK_POOL_WATCH. The change buffer format will not be changed as part of this task. That could remain part of |
For This would also simplify The change buffer format will not be changed as part of this task. That could remain part of As part of this, the counter {{innodb_ibuf_merge_usec}} will be removed from {{information_schema.innodb_metrics}}. |
Link |
This issue is blocked by |
Assignee | Marko Mäkelä [ marko ] | Thirunarayanan Balathandayuthapani [ thiru ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Marko Mäkelä [ marko ] |
Status | Stalled [ 10000 ] | In Review [ 10002 ] |
Assignee | Marko Mäkelä [ marko ] | Thirunarayanan Balathandayuthapani [ thiru ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Attachment | MDEV-19514.ods [ 49026 ] |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Matthias Leich [ mleich ] |
Attachment | MDEV-19514-2.ods [ 49084 ] | |
Attachment | MDEV-19514-3.ods [ 49085 ] |
Attachment |
|
Attachment | MDEV-19514-2.ods [ 49143 ] |
Link |
This issue is blocked by |
issue.field.resolutiondate | 2019-10-11 14:57:48.0 | 2019-10-11 14:57:48.628 |
Fix Version/s | 10.5.0 [ 23709 ] | |
Fix Version/s | 10.5 [ 23123 ] | |
Assignee | Matthias Leich [ mleich ] | Marko Mäkelä [ marko ] |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Link | This issue relates to MDEV-18698 [ MDEV-18698 ] |
Link |
This issue causes |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Workflow | MariaDB v3 [ 96805 ] | MariaDB v4 [ 133957 ] |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36166 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36203 ] |
Link |
This issue relates to |
MDEV-19514description mentions that we can remove buf_pool->watch and BUF_POOL_BLOCK_WATCH. But I would liketo differ in it. Because buffer pool watch introduced to avoid the race between user page read and purge
buffering.
access page in buffer pool with mode BUF_GET_IF_IN_POOL_OR_WATCH. If the page is not present in buffer pool
then purge assigns page id to one of the watch page which was created during buffer pool initialization.
whether page has been read in the mean time after acquiring change buffer page. If that check fails then
purge thread will go ahead with purge buffering because normal page read has to wait for change buffer
page in buf_page_io_complete() to merge change buffer changes anyway.
out of LRU list.
So that, watch solves the race between page read and purge buffering. As discussed with marko, we don't
need to remove watch.