...
ID | IEP-32 | ||||||
Author | |||||||
Sponsor |
| ||||||
Created | |||||||
Status |
|
Table of Contents |
---|
Currently batch updates on page memory level are not implemented in Ignite. Internal structures, such as BPlusTree and FreeList, do not support them. The performance of batch operations (putAll, datastreamer, preloader) can be improved by implementing batch updates on page memory level.
Profiling the current rebalancing process shows that most of the time is spent on working with FreeList and BPlusTree (details).
Currently, when updating the batch of cache entries in off heap, each of them is processed separately.
...
draw.io Diagram | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Find the most free page with enough space for data row in FreeList (if there is no such page - allocate new one) and fill it up to the end.
Improves average insertion time by reducing count of FreeList actions on each data row (insert/remove pages, pages locking and page counters updates).
Improves the time of searching and inserting a range of keys.
// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.
// Links to discussions on the devlist, if applicable.
// Links to various reference documents, if applicable.
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|