[ 
https://issues.apache.org/jira/browse/IGNITE-19666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Demakov updated IGNITE-19666:
-------------------------------------
    Description: 
To move towards single-pass in-place construction of binary tuples the biggest 
obstacle is presence of the null map.

-It is proposed to encode null values as a single-byte special value (null 
mark) in-line with regular values. It is required to escape regular values that 
have the same bit pattern as the null mark so the null mark needs to be 
relatively rare. The value of 0x80 seems a good one.-
It is proposed to encode a null value as empty byte sequence. Zero-value 
compression has to be removed from the format. Empty strings and byte arrays 
has to be encoded as a single-byte special value (e.g. 0x80). The string and 
byte array values that start with with the same single byte has to be escaped 
by doubling this byte. By the way, this would greatly simplify making tuples 
from other tuples. E.g. if we need to copy values for a column range [3, 7] 
from one tuple to another tuple, we could copy values almost blindly with 
single memory copy. No need for any bit magic anymore.

By the way, this would greatly simplify making tuples from other tuples. E.g. 
if we need to copy values for a column range [3, 7] from one tuple to another 
tuple, we could copy values almost blindly with single memory copy. No need for 
any bit magic anymore.

  was:
To move towards single-pass in-place construction of binary tuples the biggest 
obstacle is presence of the null map.

-It is proposed to encode null values as a single-byte special value (null 
mark) in-line with regular values. It is required to escape regular values that 
have the same bit pattern as the null mark so the null mark needs to be 
relatively rare. The value of 0x80 seems a good one.-
It is proposed to encode null values as empty byte sequence. Zero-value 
compression has to be removed from the format. Empty strings and byte arrays 
has to be encoded as a single-byte special value (e.g. 0x80). The string and 
byte array values that start with with the same single byte has to be escaped 
by doubling this byte. By the way, this would greatly simplify making tuples 
from other tuples. E.g. if we need to copy values for a column range [3, 7] 
from one tuple to another tuple, we could copy values almost blindly with 
single memory copy. No need for any bit magic anymore.

By the way, this would greatly simplify making tuples from other tuples. E.g. 
if we need to copy values for a column range [3, 7] from one tuple to another 
tuple, we could copy values almost blindly with single memory copy. No need for 
any bit magic anymore.


> Remove null map in Binary Tuple format
> --------------------------------------
>
>                 Key: IGNITE-19666
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19666
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Aleksey Demakov
>            Assignee: Aleksey Demakov
>            Priority: Major
>              Labels: iep-92, ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> To move towards single-pass in-place construction of binary tuples the 
> biggest obstacle is presence of the null map.
> -It is proposed to encode null values as a single-byte special value (null 
> mark) in-line with regular values. It is required to escape regular values 
> that have the same bit pattern as the null mark so the null mark needs to be 
> relatively rare. The value of 0x80 seems a good one.-
> It is proposed to encode a null value as empty byte sequence. Zero-value 
> compression has to be removed from the format. Empty strings and byte arrays 
> has to be encoded as a single-byte special value (e.g. 0x80). The string and 
> byte array values that start with with the same single byte has to be escaped 
> by doubling this byte. By the way, this would greatly simplify making tuples 
> from other tuples. E.g. if we need to copy values for a column range [3, 7] 
> from one tuple to another tuple, we could copy values almost blindly with 
> single memory copy. No need for any bit magic anymore.
> By the way, this would greatly simplify making tuples from other tuples. E.g. 
> if we need to copy values for a column range [3, 7] from one tuple to another 
> tuple, we could copy values almost blindly with single memory copy. No need 
> for any bit magic anymore.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to