You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2018/04/25 13:47:00 UTC

[jira] [Created] (IGNITE-8385) SQL: allow variable-length values in index leafs

Vladimir Ozerov created IGNITE-8385:
---------------------------------------

             Summary: SQL: allow variable-length values in index leafs
                 Key: IGNITE-8385
                 URL: https://issues.apache.org/jira/browse/IGNITE-8385
             Project: Ignite
          Issue Type: Task
          Components: sql
    Affects Versions: 2.4
            Reporter: Vladimir Ozerov
             Fix For: 2.6


Currently we have a restriction that every entry inside a BTree leaf should be of fixed size. This restriction is artificial and prevents efficient index usage because we have to choose so-called {{inline size}} for every index manually. This is OK for fixed-size numeric types. But this could be a problem for varlen types such as {{VARCHAR}} because in some cases we cannot fit the whole value and have to fallback to data page lookup. In other cases we may pick too pessimistic inline size value and index space would be wasted. 

What we need to do is to allow arbitrary item size in index pages. In this case we would be able to inline all necessary values into index pages in most cases. 

Please pay attention that we may still met page overflow in case too long data types are used. To mitigate this we should:
1) Implement IGNITE-6055 first so that we can distinguish between limited and unlimited data types.
2) Unlimited data types should be inlined only partially
3) We need to have special handling for too long rows (probably just re-use existing logic with minimal adjustments)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)