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

Implement inline size calculation for B+tree

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-beta1
    • None

    Description

      It is necessary to implement an efficient inline size calculation for indexes.

      Since the indexes will be stored in the BplusTree, we need to take into account that they will be stored in the BplusInnerIo and BplusLeafIo, so we need to calculate the effective (in the general case) size of item for storing indexes.

      To calculate the size of an element, we need to take into account:

      • Minimum number of items in a BplusInnerIo must be 2;
      • Size of the entire tuple (index columns) must not exceed 2 KB;
        • Class size is 2 bytes to cover most cases;
        • If the user has not set a limit for variable length columns, then consider it 10 bytes;
      • If there are columns of variable length and we still have space in the BplusInnerIo and BplusLeafIo, then we can increase the size of the item without compromising the leaf (i.e. do not decrease the number of items in it).

      Attachments

        Issue Links

          Activity

            People

              ktkalenko@gridgain.com Kirill Tkalenko
              ktkalenko@gridgain.com Kirill Tkalenko
              Ivan Bessonov Ivan Bessonov
              Votes:
              0 Vote for this issue
              Watchers:
              2 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 - 8h
                  8h