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

Reduce size of configuration keys

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      Motivation

      The distributed configuration keys are byte arrays formed from strings that contain some constant prefixes, postfixes, delimiters and identificators, mostly UUIDs. Example of the configuration key for default value provider type of table column:

      dst-cfg.table.tables.d7b99c6a-de10-454d-9370-38d18b65e9c0.columns.d8482dae-cfb8-42b8-a759-9727dd3763a6.defaultValueProvider.type

      It contains 2 UUIDs in string representation. Unfortunately, there are several configuration entries for each table column (having similar keys) and besides that about a dozen of keys for table itself.

      As a result, configuration keys take 68% of a meta storage message related to table creation (for one node cluster, for a table of 2 columns and 25 partitions) which creates excessive load on meta storage raft group in case of mass table creation (see IGNITE-19275 )

      Definition of done

      We should get rid of string representation of UUIDs in configuration keys, UUIDs should be written as 16 bytes each into byte array directly. Also, string constants should be reduced (or even replaced to constants consisting of few bytes) because there is no need to keep them human readable.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Denis Chudov Denis Chudov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: