Hi Igniters! I am working on implementing batch updates in PageMemory [1] to improve the performance of preloader, datastreamer and putAll.
This task consists of two major related improvements: 1. Batch writing to PageMemory via FreeList - store several values at once to single memory page. 2. Batch updates in BPlusTree (for introducing invokeAll operation). I started to investigate the issue with batch updates in B+ tree, and it seems that the concurrent top-down balancing algorithm (TD) described in this paper [2] may be suitable for batch insertion of keys into Ignite B+ Tree. This algorithm uses a top-down balancing approach and allows to insert a batch of keys belonging to the leaves having the same parent. The negative point of top-down balancing approach is that the parent node is locked when performing insertion/splitting in child nodes. WDYT? Do you know other approaches for implementing batch updates in Ignite B+ Tree? [1] https://issues.apache.org/jira/browse/IGNITE-7935 [2] https://aaltodoc.aalto.fi/bitstream/handle/123456789/2168/isbn9512258951.pdf