Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5, 10.6, 10.11, 11.4
Description
The ReadViewBase::m_ids is a std::vector of 64-bit transaction IDs. It would seem to be better to use something like small_vector<trx_id_t, 16>.
Even better for the case that ReadViewBase::m_low_limit_id and ReadViewBase::m_up_limit_id are close to each other, we could allocate a fixed-size bitmap, say, 512 bits to correspond to values between m_low_limit_id and m_low_limit_id+511.
Perhaps we could define a union of a bitmap and a dynamically allocated std::vector. One bit could distinguish which one is in use, or it could be distinguished by m_up_limit_id-m_low_limit_id>512.
This idea is inspired by https://github.com/enhancedformysql
Attachments
Issue Links
- relates to
-
MDEV-35701 trx_t::autoinc_locks causes unnecessary dynamic memory allocation
- In Review