Remove split list nodes from buf_page_t

Bug #1224313 reported by Laurynas Biveinis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
Low
Unassigned
5.1
Won't Fix
Low
Unassigned
5.5
Triaged
Low
Unassigned
5.6
Invalid
Low
Unassigned

Bug Description

The buffer pool mutex split patch in 5.1 and 5.5 patches struct buf_page_struct to remove

        UT_LIST_NODE_T(buf_page_t) list;

and to add

 /* resplit for optimistic use */
 UT_LIST_NODE_T(buf_page_t) free;
 UT_LIST_NODE_T(buf_page_t) flush_list;
 UT_LIST_NODE_T(buf_page_t) zip_list; /* zip_free[] */

instead. The goal of this patching is not clear. Having separate list nodes would suggest that a buffer page might be present in two or three of these list simultaneously, but that's not done (and impossible to do, and I don't see what sense would this make) in the current code. Thus, the only visible effect is, quoting Alexey -

>> On the other hand, we are looking at a non-trivial buf_page_t size
>> increase (112 bytes before the patch, 144 bytes after). Leaving all
>> cache and memory locality questions aside, that’s 64 MB of memory
>> just for list node pointers on a system with a 32 GB buffer pool.

They are being removed in the 5.6 port in progress. This bug is to remove them from 5.5 as well.

tags: added: bp-split low-hanging-fruit xtradb
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-2043

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.