Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7998

SQL: Improve MVCC vacuum performance by iterating over data pages instead of cache tree.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • mvcc
    • None

    Description

      At the moment vacuum process uses cache trees to find outdated (dead) entries and cache and index trees to cleanup them. It is not efficient due to several reasons. For example, we should lock a datapage for each cache tree entry to find out if entry is dead.

      We can consider a direct iteration over datapages as a possible improvement of  the vacuum process. Data page iteration prototype demonstrated 5-10 times time improvement over the tree iteration.

      At first stage we need to implement direct datapages iteration only for collecting dead entries links.

      At the second stage we need to consider removing links to dead entries from index pages directly. In other words, we need to efficiently remove batches of dead links from indexes without traversing cache and index tree one dead link by one.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rkondakov Roman Kondakov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: