You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Konstantin Orlov (Jira)" <ji...@apache.org> on 2020/02/17 11:31:00 UTC

[jira] [Created] (IGNITE-12688) Improve performance of index inline JAVA_OBJECT fields

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)