Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-5923

Supporting the single cell storage format for mutable global indexes

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.0.0, 4.14.3
    • None
    • None
    • None

    Description

      It is known that IMMUTABLE_STORAGE_SCHEME = SINGLE_CELL_ARRAY_WITH_OFFSETS leads to performance improvement and storage saving. As the name implies this storage scheme is currently supported for immutable tables only. Supporting the SINGLE_CELL_ARRAY_WITH_OFFSETS storage format for mutable table requires reading existing rows for before mutating them, i.e., read-modify-write. However, this storage scheme can be used for mutable global index tables without any additional IO operation since for every index table update, we always read the corresponding data table row and generate the full index row from the current state of the data table row and the pending mutation on this row. This full index row can be stored using the SINGLE_CELL_ARRAY_WITH_OFFSETS storage format even though the data table can continue using a mutable storage format. This will allow index tables to enjoy the performance improvement and storage saving due to this storage format.

       

      Gokcen Iskender: We can also repurpose this Jira and add immutable tables as well. We can say that the Immutable tables can have ONE_CELL_PER_COLUMN storage format and have indexes that have SINGLE_CELL_ARRAY_WITH_OFFSETS.

      Attachments

        1. PHOENIX-5923.4.x.001.patch
          117 kB
          Gokcen Iskender
        2. PHOENIX-5923.master.001.patch
          117 kB
          Gokcen Iskender

        Issue Links

          Activity

            People

              giskender Gokcen Iskender
              kozdemir Kadir OZDEMIR
              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 - 40m
                  40m