Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7935 Add batch update operation to PageMemory and Persistence
  3. IGNITE-11584

Implement batch insertion of new cache entries in FreeList to improve rebalancing

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.7
    • 2.8
    • None

    Description

      Main goals:

      • Implement batch insert operation into FreeList - insert several data rows at once
      • Use batch insertion in the preloader

       

      Implementation notes:

      1. 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.
      2. 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).
      3. 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

          Activity

            People

              xtern Pavel Pereslegin
              xtern Pavel Pereslegin
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h