[ 
https://issues.apache.org/jira/browse/IGNITE-11584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-11584:
--------------------------------------
    Description: 
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).

  was:
* Implement batch insert operation into FreeList - insert several data rows at 
once
* Use batch insertion in preloader


> 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
>
> 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).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to