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

Create index metadata storage

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-beta2
    • None

    Description

      Currently, all index metadata is stored in the Catalog. This is problematic, because

      1. Some fields (like txWaitCatalogVersion) or states (like STOPPING) do not belong to the Catalog
      2. The Catalog may be compacted making it impossible to get metadata from it

      We need to create a component (based on Vault) to store metadata for each index. An index entry can include (the list is rough):

      1. Index ID
      2. Name? (not sure if we need it; maybe for building messages for humans)
      3. txWaitCatalogVersion
      4. History of how the index changed its state (with activation timestamp of each transition)
      5. Current state

      The states set is broader than the set stored in the Catalog:

      • REGISTERED
      • BUILDING
      • AVAILABLE
      • STOPPED
      • READ_ONLY (this means that the index was dropped (maybe together with its table), it cannot be written to, it can not be used by any RW transactions, but can be read by RO transactions with correct readTimestamp)
      • DESTROYED? (it's not clear if it's needed or not)

      The storage should provide efficient access to index metadata by index ID.

      It should listen to Catalog updates and actualize itself if some changes happen to indexes.

      If should also listen to LWM to switch from READ_ONLY state.

      Attachments

        Issue Links

          Activity

            People

              ktkalenko@gridgain.com Kirill Tkalenko
              rpuch Roman Puchkovskiy
              Roman Puchkovskiy Roman Puchkovskiy
              Votes:
              0 Vote for this issue
              Watchers:
              1 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 - 4h 40m
                  4h 40m