You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ARROW-7979: [C++] Add experimental buffer compression to IPC write path. Add "field" selection to read path. Migrate some APIs to Result<T>. Read/write Message metadata
I apologize for the complexity of this patch, there was some necessary refactoring and then as I needed to add a `IpcReadOptions` struct, it made sense to port some APIs from Status to Result.
Summary of what's here
* Add IpcReadOptions struct
* Rename IpcOptions to IpcWriteOptions
* Serialize and write custom_metadata field in Message Flatbuffer struct
* Move `MemoryPool*` arguments in IPC functions to options structs
* Adds EXPERIMENTAL compression option to IpcOptions (which should be renamed IpcWriteOptions) which causes each buffer in a record batch body to be separately compressed with e.g. ZSTD. This is intended to be used internally in Feather V2 and not exported for general use. Based on the mailing list discussion, if we were to adopt this in the IPC protocol then this can be promoted to non-experimental
* Add "included_fields" option to select a subset of fields to load from a record batch when doing an IPC load. The motivation for this was to avoid unnecessary decompression when reading a subset of columns from an IPC stream
* Migrate most IPC read APIs to use Result, deprecate old methods
* Deprecate Status-returning IPC write method
Some other small changes:
* Add `check_metadata` option to `RecordBatch::Equals`
* Add `Codec::GetCompressionType` method for looking up `Compression::type` given a codec name
I don't have size/perf benchmarks about how the compression helps with file sizes or read performance, so I'll do that next in the course of completing ARROW-5510 ("Feather V2" file format)
Closesapache#6638 from wesm/ARROW-7979
Lead-authored-by: Wes McKinney <wesm+git@apache.org>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Neal Richardson <neal.p.richardson@gmail.com>
Signed-off-by: Wes McKinney <wesm+git@apache.org>
0 commit comments