Hi Igniters,

I'd like to discuss the change implemented by Evgeniy Rudenko in the ticket 
https://issues.apache.org/jira/browse/IGNITE-13364.
I see that the fix is ready for review and merging, and I'm interested in it so 
I'd like to pick it up on the last mile.
I also wanted to bring community's attention to it before the merge as it 
changes the default behavior.

The patch changes how SQL index inline size is calculated.

Specifically:

1. When inline size is calculated for a variable-sized field, a constant 10 
(configurable via IGNITE_VARIABLE_TYPE_DEFAULT_INDEX_SIZE) is added to the 
calculated size instead of setting the entire calculation result to 10.
For example, consider the following cases

Index (int, int, string)
Before the change: inline size = 10
After the change: inline size = 5 + 5 + 10 = 20

Index (long, long, long, long,  string)
Before the change: inline size = 10
After the change: inline size = 9 + 9 + 9 + 9 + 10 = 46

2. If there is a VARCHAR_FIXED, e.g. VARCHAR(5), then instead of the default 
IGNITE_VARIABLE_TYPE_DEFAULT_INDEX_SIZE Ignite will use the value provided in 
the calculation

3. If the calculated size exceeds IGNITE_MAX_INDEX_PAYLOAD_SIZE_DEFAULT=64, it 
will be truncated to 64.

All of this only affects calculated inline sizes of new indexes.
Existing indexes should not be affected.
Indexes with explicitly specified inline size should not be affected.

I think the most compatibility impact will be on the in-memory caches with SQL 
and without explicitly specified inline sizes.
After the upgrade these caches may slightly increase in size (because the 
inline is likely to become bigger) while SQL is also likely to become faster.

Please comment.
If there are no concerns, I'll proceed with finding a committer to review and 
merge the fix at the end of the next week.

Thanks,
Stan

Reply via email to