Konstantin Orlov created IGNITE-12688:
-----------------------------------------

             Summary: Improve performance of index inline JAVA_OBJECT fields
                 Key: IGNITE-12688
                 URL: https://issues.apache.org/jira/browse/IGNITE-12688
             Project: Ignite
          Issue Type: Bug
            Reporter: Konstantin Orlov
            Assignee: Konstantin Orlov


Inline JAVA_OBJECT may be reason of performance drop on index creation.

The *root cause* is the low selectivity of current part of JAVA_OBJECT that is 
inlined.
Now first N bytes of binary view of object is placed into inline space of the 
index.
But the first offset where the two objects with the same type may be different 
is 8 (HASH_CODE_POS).
With default inline = 10 we NEVER inline it:
Inline format:
1 byte - type,
2 bytes - size
>> 7 bytes - data;

*My proposal:*
- For metapage v4 (BPlusMetaIO) add flag *inlineObjectHash*;
- use this flag to work in compatibility mode.
- inline ONLY hash for JAVA_OBJECT fields for new indexes;

Also this approach solves the inconsistent between comparison JAVA_OBJECT by 
inline and full value, because value comparator uses hash to compare object 
before compare byte arrays.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to