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)