Releases: streamingfast/dstore
Releases · streamingfast/dstore
v0.2.3
Fixed
- GCS store: disable gRPC DirectPath when both a project is set and
client_protocol=grpcis used, preventing connection issues in that configuration. - S3 store: share a single HTTP transport across all store clones for proper HTTP/2 multiplexing, replacing the previous per-clone transport that broke connection sharing.
v0.2.2
Added
- GCS store: opt-in gRPC transport via
client_protocol=grpcquery parameter (e.g.gs://bucket/path?client_protocol=grpc). Defaults to the existing HTTP client; the gRPC client is selected only when this parameter is explicitly set. - S3 store:
storage_classquery parameter as the canonical snake_case name forstorageClass.
Changed
- S3 store: each store clone now gets its own transport for failure isolation; adds
ResponseHeaderTimeoutto prevent hung requests and configures HTTP/2 health checks viax/net/http2; default connection pool sizes are reduced.
Deprecated
- S3 store:
storageClassquery parameter is deprecated in favour ofstorage_class; a warning is logged when the old form is used.
v0.2.1
Added
- S3 store: fixed connection pool leak when closing an object after a partial read; the raw HTTP body must be drained before closing the outer reader chain — closing outer first (when there is no compression layer) already closes the body, making the subsequent drain a no-op and preventing connection reuse
v0.2.0
Added
- Added
docker-compose.ymlwith MinIO, Ceph RGW, and fake-gcs-server for local integration testing - Added S3 integration tests for Ceph RGW (
TestS3Store_Ceph,TestS3Store_Ceph_EmptyBucket_FilePrefix,TestS3Store_Ceph_CompressionAndMetering) - Added GCS integration tests for fake-gcs-server emulator (
TestGSStore_Emulator,TestGSStore_Emulator_Overwrite,TestGSStore_Emulator_CompressionAndMetering)
Added
- S3 store: configurable HTTP connection pool via
DSTORE_S3_MAX_IDLE_CONNS,DSTORE_S3_MAX_IDLE_CONNS_PER_HOST,DSTORE_S3_IDLE_CONN_TIMEOUTenv vars
Fixed
- S3 store: fixed goroutine leak caused by connection pool exhaustion on single-host S3 stores (e.g. MinIO); HTTP body is now explicitly drained and closed, and the transport is configured with
MaxIdleConnsPerHost=100by default - GCS store now uses the JSON API for object reads when
STORAGE_EMULATOR_HOSTis set, fixing compatibility with fake-gcs-server (which does not handle the XML API with percent-encoded path slashes)