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
- relates to
-
IGNITE-19275 Creation of big amount of tables throws exception
- Resolved