[ 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)