LP #1224313: Remove split list nodes from buf_page_t

Description

**Reported in Launchpad by Laurynas Biveinis last update 12-09-2013 07:30:06

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, thats 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.

Environment

None

Smart Checklist

Activity

Show:
Done

Details

Assignee

Reporter

Priority

Smart Checklist

Created January 22, 2018 at 6:41 PM
Updated January 22, 2018 at 6:41 PM
Resolved January 22, 2018 at 6:41 PM