[
https://issues.apache.org/jira/browse/IGNITE-11584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin updated IGNITE-11584:
--------------------------------------
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).
was:
Goals:
* Implement batch insert operation into FreeList - insert several data rows at
once
* Use batch insertion in 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).
> Implement batch insertion of new cache entries in FreeList to improve
> rebalancing
> ---------------------------------------------------------------------------------
>
> Key: IGNITE-11584
> URL: https://issues.apache.org/jira/browse/IGNITE-11584
> Project: Ignite
> Issue Type: Sub-task
> Affects Versions: 2.7
> Reporter: Pavel Pereslegin
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: iep-32
> Time Spent: 20m
> Remaining Estimate: 0h
>
> 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).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)