From f7a38987720ad6677c2b90496fca9402e5f3f3ab Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Tue, 22 Mar 2016 19:08:43 -0700 Subject: [PATCH 1/6] Revise format to indicate LSB bit numbering and 0/1 null/not-null distinction --- format/Layout.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/format/Layout.md b/format/Layout.md index c393163bf89..0a52458a426 100644 --- a/format/Layout.md +++ b/format/Layout.md @@ -90,11 +90,27 @@ maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: Any relative type can be nullable or non-nullable. Nullable arrays have a contiguous memory buffer, known as the null bitmask, -whose length is large enough to have 1 bit for each array slot. Whether any -array slot is null is encoded in the respective bits of this bitmask, i.e.: +whose length is large enough to have 1 bit for each array slot. +Whether any array slot is valid (non-null) is encoded in the respective bits of +this bitmask. A 1 (set bit) for index `j` indicates that the value is not null, +while a 0 (bit not set) indicates that it is null. Bitmasks are to be +initialized to be all unset at allocation time. + +``` +is_valid[j] -> bitmask[j / 8] & (1 << (j % 8)) ``` -is_null[j] -> bitmask[j / 8] & (1 << (j % 8)) + +We use [least-significant bit (LSB) numbering][1] (also known as +bit-endianness). This means that within a group of 8 bits, we read +right-to-left: + +``` +values = [0, 1, null, 2, null, 3] + +bitmap +j mod 8 7 6 5 4 3 2 1 0 + 0 0 1 0 1 0 1 1 ``` Physically, non-nullable (NN) arrays do not have a null bitmask. @@ -251,3 +267,5 @@ the correct value. ## References Drill docs https://drill.apache.org/docs/value-vectors/ + +[1]: https://en.wikipedia.org/wiki/Bit_numbering \ No newline at end of file From dac77d4f2481aa3e5fea5e0162be50889d199abd Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Wed, 23 Mar 2016 11:53:24 -0700 Subject: [PATCH 2/6] Revise format document language re: null bitmaps per feedback --- format/Layout.md | 20 ++++++++++---------- format/Message.fbs | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/format/Layout.md b/format/Layout.md index 0a52458a426..fd6ed040b2e 100644 --- a/format/Layout.md +++ b/format/Layout.md @@ -89,16 +89,16 @@ maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: Any relative type can be nullable or non-nullable. -Nullable arrays have a contiguous memory buffer, known as the null bitmask, -whose length is large enough to have 1 bit for each array slot. +Nullable arrays have a contiguous memory buffer, known as the validity (or +null) bitmap, whose length is large enough to have 1 bit for each array slot. Whether any array slot is valid (non-null) is encoded in the respective bits of -this bitmask. A 1 (set bit) for index `j` indicates that the value is not null, -while a 0 (bit not set) indicates that it is null. Bitmasks are to be +this bitmap. A 1 (set bit) for index `j` indicates that the value is not null, +while a 0 (bit not set) indicates that it is null. Bitmaps are to be initialized to be all unset at allocation time. ``` -is_valid[j] -> bitmask[j / 8] & (1 << (j % 8)) +is_valid[j] -> bitmap[j / 8] & (1 << (j % 8)) ``` We use [least-significant bit (LSB) numbering][1] (also known as @@ -113,10 +113,10 @@ j mod 8 7 6 5 4 3 2 1 0 0 0 1 0 1 0 1 1 ``` -Physically, non-nullable (NN) arrays do not have a null bitmask. +Physically, non-nullable (NN) arrays do not have a bitmap. For nested types, if the top-level nested type is nullable, it has its own -bitmask regardless of whether the child types are nullable. +bitmap regardless of whether the child types have any nulls. ## Primitive value arrays @@ -128,8 +128,8 @@ Internally, the array contains a contiguous memory buffer whose total size is equal to the slot width multiplied by the array length. For bit-packed types, the size is rounded up to the nearest byte. -The associated null bitmask (for nullable types) is contiguously allocated (as -described above) but does not need to be adjacent in memory to the values +The associated validity bitmap (for nullable types) is contiguously allocated +(as described above) but does not need to be adjacent in memory to the values buffer. (diagram not to scale) @@ -210,7 +210,7 @@ type. Here is a diagram showing the full physical layout of this struct: While a struct does not have physical storage for each of its semantic slots (i.e. each scalar C-like struct), an entire struct slot can be set to null via -the bitmask. Whether each of the child field arrays can have null values +the bitmap. Whether each of the child field arrays can have null values depends on whether or not the respective relative type is nullable. ## Dense union type diff --git a/format/Message.fbs b/format/Message.fbs index 3ffd2033208..fc849eedf79 100644 --- a/format/Message.fbs +++ b/format/Message.fbs @@ -129,8 +129,8 @@ struct FieldNode { length: int; /// The number of observed nulls. Fields with null_count == 0 may choose not - /// to write their physical null bitmap out as a materialized buffer, instead - /// setting the length of the null buffer to 0. + /// to write their physical validity bitmap out as a materialized buffer, + /// instead setting the length of the bitmap buffer to 0. null_count: int; } @@ -148,9 +148,9 @@ table RecordBatch { /// Buffers correspond to the pre-ordered flattened buffer tree /// /// The number of buffers appended to this list depends on the schema. For - /// example, most primitive arrays will have 2 buffers, 1 for the null bitmap - /// and 1 for the values. For struct arrays, there will only be a single - /// buffer for the null bitmap + /// example, most primitive arrays will have 2 buffers, 1 for the validity + /// bitmap and 1 for the values. For struct arrays, there will only be a + /// single buffer for the validity (nulls) bitmap buffers: [Buffer]; } From 4333d8246a70785392a7bb55e49539b1a714cb5f Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Wed, 23 Mar 2016 12:07:07 -0700 Subject: [PATCH 3/6] Use 'null bitmap' similar to PostgreSQL documentation --- format/Layout.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/format/Layout.md b/format/Layout.md index fd6ed040b2e..89fdd4aa1a1 100644 --- a/format/Layout.md +++ b/format/Layout.md @@ -89,8 +89,9 @@ maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: Any relative type can be nullable or non-nullable. -Nullable arrays have a contiguous memory buffer, known as the validity (or -null) bitmap, whose length is large enough to have 1 bit for each array slot. +Nullable arrays have a contiguous memory buffer, known as the null (or +validity) bitmap, whose length is large enough to have 1 bit for each array +slot. Whether any array slot is valid (non-null) is encoded in the respective bits of this bitmap. A 1 (set bit) for index `j` indicates that the value is not null, @@ -113,9 +114,9 @@ j mod 8 7 6 5 4 3 2 1 0 0 0 1 0 1 0 1 1 ``` -Physically, non-nullable (NN) arrays do not have a bitmap. +Physically, non-nullable (NN) arrays do not have a null bitmap. -For nested types, if the top-level nested type is nullable, it has its own +For nested types, if the top-level nested type is nullable, it has its own null bitmap regardless of whether the child types have any nulls. ## Primitive value arrays @@ -128,8 +129,8 @@ Internally, the array contains a contiguous memory buffer whose total size is equal to the slot width multiplied by the array length. For bit-packed types, the size is rounded up to the nearest byte. -The associated validity bitmap (for nullable types) is contiguously allocated -(as described above) but does not need to be adjacent in memory to the values +The associated null bitmap (for nullable types) is contiguously allocated (as +described above) but does not need to be adjacent in memory to the values buffer. (diagram not to scale) @@ -210,7 +211,7 @@ type. Here is a diagram showing the full physical layout of this struct: While a struct does not have physical storage for each of its semantic slots (i.e. each scalar C-like struct), an entire struct slot can be set to null via -the bitmap. Whether each of the child field arrays can have null values +the null bitmap. Whether each of the child field arrays can have null values depends on whether or not the respective relative type is nullable. ## Dense union type From 648fd479318da27d04f16525a4b5a4a61f5b347e Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Wed, 23 Mar 2016 18:34:14 -0500 Subject: [PATCH 4/6] Indicate that bitmaps should be a multiple of 8 bytes --- format/Layout.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/format/Layout.md b/format/Layout.md index 89fdd4aa1a1..34309528eb8 100644 --- a/format/Layout.md +++ b/format/Layout.md @@ -79,7 +79,8 @@ Base requirements Any array has a known and fixed length, stored as a 32-bit signed integer, so a maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: -* Enhance compatibility with Java and client languages which may have varying quality of support for unsigned integers. +* Enhance compatibility with Java and client languages which may have varying + quality of support for unsigned integers. * To encourage developers to compose smaller arrays (each of which contains contiguous memory in its leaf nodes) to create larger array structures possibly exceeding 2^31 - 1 elements, as opposed to allocating very large @@ -90,7 +91,8 @@ maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: Any relative type can be nullable or non-nullable. Nullable arrays have a contiguous memory buffer, known as the null (or -validity) bitmap, whose length is large enough to have 1 bit for each array +validity) bitmap, whose length is a multiple of 8 bytes (to avoid +word-alignment concerns) and large enough to have at least 1 bit for each array slot. Whether any array slot is valid (non-null) is encoded in the respective bits of From 1f6fe0361ddb8361a65352b2cb4f3fa299145db7 Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Wed, 23 Mar 2016 18:50:52 -0500 Subject: [PATCH 5/6] Account for null count and non-nullable removal from ARROW-76 --- format/Layout.md | 48 ++++++++++++---------- format/diagrams/layout-list-of-struct.png | Bin 60600 -> 54122 bytes 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/format/Layout.md b/format/Layout.md index 34309528eb8..2d46ece606e 100644 --- a/format/Layout.md +++ b/format/Layout.md @@ -42,7 +42,7 @@ Base requirements * Capable of representing fully-materialized and decoded / decompressed Parquet data * All leaf nodes (primitive value arrays) use contiguous memory regions -* Each relative type can be nullable or non-nullable +* Any relative type can be have null slots * Arrays are immutable once created. Implementations can provide APIs to mutate an array, but applying mutations will require a new array data structure to be built. @@ -56,7 +56,7 @@ Base requirements * To describe relative types (physical value types and a preliminary set of nested types) sufficient for an unambiguous implementation * Memory layout and random access patterns for each relative type -* Null representation for nullable types +* Null value representation ## Non-goals (for this document @@ -86,11 +86,17 @@ maximum of 2^31 - 1 elements. We choose a signed int32 for a couple reasons: possibly exceeding 2^31 - 1 elements, as opposed to allocating very large contiguous memory blocks. -## Nullable and non-nullable arrays +## Null count -Any relative type can be nullable or non-nullable. +The number of null value slots is a property of the physical array and +considered part of the data structure. The null count is stored as a 32-bit +signed integer, as it may be as large as the array length. -Nullable arrays have a contiguous memory buffer, known as the null (or +## Null bitmaps + +Any relative type can have null value slots, whether primitive or nested type. + +An array with nulls must have a contiguous memory buffer, known as the null (or validity) bitmap, whose length is a multiple of 8 bytes (to avoid word-alignment concerns) and large enough to have at least 1 bit for each array slot. @@ -116,10 +122,12 @@ j mod 8 7 6 5 4 3 2 1 0 0 0 1 0 1 0 1 1 ``` -Physically, non-nullable (NN) arrays do not have a null bitmap. +Arrays having a 0 null count may choose to not allocate the null +bitmap. Implementations may choose to always allocate one anyway as a matter of +convenience, but this should be noted when memory is being shared. -For nested types, if the top-level nested type is nullable, it has its own null -bitmap regardless of whether the child types have any nulls. +Nested type arrays have their own null bitmap and null count regardless of +the null count and null bits of their child arrays. ## Primitive value arrays @@ -131,9 +139,8 @@ Internally, the array contains a contiguous memory buffer whose total size is equal to the slot width multiplied by the array length. For bit-packed types, the size is rounded up to the nearest byte. -The associated null bitmap (for nullable types) is contiguously allocated (as -described above) but does not need to be adjacent in memory to the values -buffer. +The associated null bitmap is contiguously allocated (as described above) but +does not need to be adjacent in memory to the values buffer. (diagram not to scale) @@ -199,22 +206,22 @@ For example, the struct (field names shown here as strings for illustration purposes) ``` -Struct [nullable] < - name: String (= List) [nullable], - age: Int32 [not-nullable] +Struct < + name: String (= List), + age: Int32 > ``` -has two child arrays, one List array (layout as above) and one -non-nullable 4-byte physical value array having Int32 (not-null) logical -type. Here is a diagram showing the full physical layout of this struct: +has two child arrays, one List array (layout as above) and one 4-byte +physical value array having Int32 logical type. Here is a diagram showing the +full physical layout of this struct: While a struct does not have physical storage for each of its semantic slots (i.e. each scalar C-like struct), an entire struct slot can be set to null via -the null bitmap. Whether each of the child field arrays can have null values -depends on whether or not the respective relative type is nullable. +the null bitmap. Any of the child field arrays can have null values according +to their respective independent null bitmaps. ## Dense union type @@ -252,8 +259,7 @@ Here is a diagram of an example dense union: A sparse union has the same structure as a dense union, with the omission of the offsets array. In this case, the child arrays are each equal in length to -the length of the union. This is analogous to a large struct in which all -fields are nullable. +the length of the union. While a sparse union may use significantly more space compared with a dense union, it has some advantages that may be desirable in certain use cases: diff --git a/format/diagrams/layout-list-of-struct.png b/format/diagrams/layout-list-of-struct.png index 00d6c6fa441769a3c86044a52186d71c0bc23d54..fb6f2a27e07a766729d12ea33454db011ce6ae00 100644 GIT binary patch literal 54122 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 MFY2n5so327KS``}od5s; literal 60600 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�r$)PNu(MM*QeHCao_ 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 From 8c9292653cce795c9cf129e141818450649b9381 Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Thu, 24 Mar 2016 19:15:59 -0700 Subject: [PATCH 6/6] Add to README about what the format documents are --- format/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/format/README.md b/format/README.md index 1120e6282a5..c84e00772c3 100644 --- a/format/README.md +++ b/format/README.md @@ -3,3 +3,20 @@ > **Work-in-progress specification documents**. These are discussion documents > created by the Arrow developers during late 2015 and in no way represents a > finalized specification. + +Currently, the Arrow specification consists of these pieces: + +- Physical memory layout specification (see Layout.md) +- Metadata serialized representation (see Message.fbs) + +The metadata currently uses Google's [flatbuffers library][1] for serializing a +couple related pieces of information: + +- Schemas for tables or record (row) batches. This contains the logical types, + field names, and other metadata. Schemas do not contain any information about + actual data. +- *Data headers* for record (row) batches. These must correspond to a known + schema, and enable a system to send and receive Arrow row batches in a form + that can be precisely disassembled or reconstructed. + +[1]: http://github.com/google/flatbuffers \ No newline at end of file