The array metadata are simple key-value pairs that the user can attach to an array. The key is a string and the value can be of any datatype.
Similar to array writes, writing array metadata produces timestamped array metadata fragments. The array metadata is typically small and, therefore, TileDB loads all the array metadata in main memory upon opening an array for reading. Time traveling applies to array metadata as well, i.e., opening an array at a timestamp will fetch only the array metadata created at or before the given timestamp.
Both the array schema and the array metadata store information about the array, and the user is responsible for setting and configuring them. The easiest way to remember the difference between the array metadata and the array schema is the following:
The array metadata stores user-specific data about the array that is arbitrary key-value pairs.
The array schema stores system-specific data about the array that has a fixed structure (e.g., a dimension name, domain and datatype).