Description
Main goals:
- Implement batch insert operation into FreeList - insert several data rows at once
- Use batch insertion in the preloader
Implementation notes:
- Preloader cannot lock multiple cache entries at once, because this may lead to a deadlock with concurrent batch updates. Therefore, it pre-creates batch of data rows in the page memory, and then sequentially initializes the cache entries one by one.
- Batch writing of data rows into data pages uses the free list as usual because other approaches increase memory fragmentation (for example, using only "reuse" or "most free" buckets).
- Eviction tracker assumes that only data pages with "heads" of fragmented data row are tracked, so all other fragments of large data row should be written on separate data pages (without other data rows which may cause page tracking).
Attachments
Issue Links
- causes
-
IGNITE-12181 Rebalance hangs on BLT change on cluster with in-memory regions
- Resolved
- is required by
-
IGNITE-12118 Preload MVCC entries using batch insert into page memory.
- Resolved
- links to