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)

Reply via email to