These are the key terms used in the Arrow specification:

  • Array: A list of values with a known length of the same type.
  • Slot: The value in an array identified by a specific index.
  • Buffer/contiguous memory region: A single contiguous block of memory with a given length.
  • Physical layout: The underlying memory layout for an array without accounting for the interpretation of the logical value. For example, a 32-bit signed integer array and a 32-bit floating-point array are both laid out as contiguous chunks of memory where each value is made up of four contiguous bytes in the buffer.
  • Parent/child arrays: Terms used for the relationship between physical arrays when describing the structure of a nested type. For example, a struct parent array has a child array for each of its fields.
  • Primitive type: A type that has no child types and so consists of a single array, such as fixed-bit-width arrays (for example, int32) or variable-size types (for example, string arrays)
  • Nested type: A type that depends on one or more other child types. Nested types are only equal if their child types are also equal (for example,  List of T and List of U are equal if T and U are equal.)
  • Data Type instead refer to particular form of interpreting the values in an array that’s implemented using a specific physical layout. For example, the decimal data type stores values as 16 bytes per value in a fixed-size binary layout. Similarly, a timestamp data type stores values using a 64-bit fixed-size layout.