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

Reduce size of configuration keys

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            Denis Chudov Denis Chudov

            Dates

              Created:
              Updated:

              Slack

                Issue deployment