TileDB v2.11.0 Release Notes
-
Disk Format
- โฌ๏ธ Bump format version and remove config option for consolidation with timestamps #3267
๐ฅ Breaking C API changes
tiledb_filter_alloc
no longer returnsTILEDB_OK
when passed a nullptr as the third argument. #3222
๐ฅ Breaking behavior
- Enforce version upper bound for reads, #3248. TileDB will no longer attempt to read an array written with a newer library version. This has never been officially supported, and in practice it usually leads to confusing errors due to format changes. Backward read-compatibility is unaffected, and is tested for each release.
Potential change
- If you have a use-case with tiles larger than 64 MB (in-memory), please get in touch. In order to facilitate improved memory usage and i/o processing performance, we are considering a default upper-bound on tile size in a future version.
๐ New features
- Floating point scaling filter
(#3243,
#3083)
- API Note: input parameters and compatibility with input data are currently unvalidated. This filter requires care in the selection of scale and offset factors compatible with the input data range.
- ๐ Support for overlapping ranges in QueryCondition. #3264
- ๐ Enable query condition on dimensions for sparse arrays. #3302
๐ Improvements
๐ Performance
- ๐ AWS/GCS: parallelize remove_dir. #3338
- Optimize compute_results_count_sparse_string. #3263
- ๐ Use sparse global ordered reader for unordered queries with no dups. #3207
- compute_results_count_sparse_string: using cached ranges properly. #3314
- ๐ GCS/AWS: remove unnecessary classA operations. #3323
- โฌ๏ธ Reduce the number of requests in dir_size #3382
Internal
- โ Add DataBlocks, port finite state machine, and other DAG infrastructure #3328
- Storage manager: exposing methods to load/store generic tile. #3325
- ๐ Replace unnecessary uses of
std::unique_lock
andstd::scope_lock
withstd::lock_guard
. #3340 - โ Deletes: implement negate for query condition. #3299
- โ Deletes: adding configuration parameter for purging deleted cells. #3334
๐ Defects removed
- ๐จ Sparse refactored readers, mark empty fragments as fully loaded early. #3394
- ๐ Fix printing of TILEDB_BOOL attributes in
Attribute::Dump
. #3251 - Store compression filter's version as uint32. #3341
- ๐ Sparse global order reader: consider qc results after deduplication. #3350
- Serialization: using same functions to choose strategy as in query. #3352
- Fix error reporting in tiledb_subarray_alloc. #3220
- ๐ Fix printing of TILEDB_BLOB attributes in
Attribute::Dump
. #3250 - โ Add missing filters to switch case for Filter serialization. #3256
- Fix timestamp_now_ms() on 32-bit Windows. #3292
- Avoid incorrect use of deflateEnd on init errors. #3007
- Datatype for domain must be serialized for backwards client compatibility. #3343
- ๐ Fix issue with sparse unordered without duplicates query deserialization to use Indexed Reader. #3347
- ๐ Bug Fix: Wrong results when using OR condition with nullable attributes. #3308
- ๐ Fix SC-19287: segfault due to deref nonexistent filestore key. #3359
API additions
C API
- New (experimental):
tiledb_fragment_info_get_total_cell_num
#3234 - New (experimental):
tiledb_query_get_relevant_fragment_num
#3413 - โ Remove incorrect noexcept annotations from C API implementations in filestore API. #3273
โ Test only changes
- โ Adding tests to count VFS calls on array open. #3358
- Print seed in unit_thread_pool on failure. #3355
๐ท Build system changes
- Produce a TileDBConfigVersion.cmake file. #3240
- โ Add nlohmann/json.hpp to superbuild. #3279
- โก๏ธ Update pkg-config private requirements on Windows only. #3330
Full Changelog: