Pingora 0.7.0
0.7.0 - 2026-01-30
- Extensible SslDigest to save user-defined TLS context
- Add ConnectionFilter trait for early TCP connection filtering
- Add ConnectionFilter trait for early TCP connection filtering
- Introduce a virtual L4 stream abstraction
- Add support for verify_cert and verify_hostname using rustls
- Exposes the HttpProxy struct to allow external crates to customize the proxy logic.
- Exposes a new_mtls method for creating a HttpProxy with a client_cert_key to enable mtls peers.
- Add SSLKEYLOGFILE support to rustls connector
- Allow spawning background subrequests from main session
- Allow Extensions in cache LockCore and user tracing
- Add body-bytes tracking across H1/H2 and proxy metrics
- Allow setting max_weight on MissFinishType::Appended
- Allow adding SslDigestExtensions on downstream and upstream
- Add Custom session support for encapsulated HTTP
- Use write timeout consistently for h2 body writes
- Prevent downstream error prior to header from canceling cache fill
- Fix debug log and new tests
- Fix size calculation for buffer capacity
- Fix cache admission on header only misses
- Fix duplicate zero-size chunk on cache hit
- Fix chunked trailer end parsing
- Lock age timeouts cause lock reacquisition
- Fix transfer fd compile error for non linux os
- Removed atty
- Upgrade lru to >= 0.16.3 crate version because of RUSTSEC-2026-0002
- Add tracing to log reason for not caching an asset on cache put
- Evict when asset count exceeds optional watermark
- Remove trailing comma from Display for HttpPeer
- Make ProxyHTTP::upstream_response_body_filter return an optional duration for rate limiting
- Restore daemonize STDOUT/STDERR when error log file is not specified
- Log task info when upstream header failed to send
- Check cache enablement to determine cache fill
- Update meta when revalidating before lock release
- Add ForceFresh status to cache hit filter
- Pass stale status to cache lock
- Bump max multipart ranges to 200
- Downgrade Expires header warn to debug log
- CI and effective msrv bump to 1.83
- Add default noop custom param to client Session
- Use static str in ErrorSource or ErrorType as_str
- Use bstr for formatting byte strings
- Tweak the implementation of and documentation of
connection_filterfeature - Set h1.1 when proxying cacheable responses
- Add or remove accept-ranges on range header filter
- Update msrv in github ci, fixup .bleep
- Override request keepalive on process shutdown
- Add shutdown flag to proxy session
- Add ResponseHeader in pingora_http crate's prelude
- Add a configurable upgrade for pingora-ketama that reduces runtime cpu and memory
- Add to cache api spans
- Increase visibility of multirange items
- Use seek_multipart on body readers
- Log read error when reading trailers end
- Re-add the warning about cache-api volatility
- Default to close on downstream response before body finish
- Ensure idle_timeout is polled even if idle_timeout is unset so notify events are registered for h2 idle pool, filter out closed connections when retrieving from h2 in use pool.
- Add simple read test for invalid extra char in header end
- Allow customizing lock status on Custom NoCacheReasons
- Close h1 conn by default if req header unfinished
- Add configurable retries for upgrade sock connect/accept
- Deflake test by increasing write size
- Make the version restrictions on rmp and rmp-serde more strict to prevent forcing consumers to use 2024 edition
- Rewind preread bytes when parsing next H1 response
- Add epoch and epoch_override to CacheMeta
v3.3.6
- Fix servernames issue by @lalernehl in https://github.com/Netflix/zuul/pull/2065
- Bump release version by @lalernehl in https://github.com/Netflix/zuul/pull/2066
Full Changelog: https://github.com/Netflix/zuul/compare/v3.3.5...v3.3.6
v3.3.4
- Null check for serverNames by @lalernehl in https://github.com/Netflix/zuul/pull/2063
- Bump release version by @lalernehl in https://github.com/Netflix/zuul/pull/2064
Full Changelog: https://github.com/Netflix/zuul/compare/v3.3.3...v3.3.4
1.0.0-alpha.82
- fix: correct max_keys field in list_object_versions response by @overtrue in https://github.com/rustfs/rustfs/pull/1576
- chore: update README. by @overtrue in https://github.com/rustfs/rustfs/pull/1586
- fix: Fixed detection warnings in rust v1.93.0 by @houseme in https://github.com/rustfs/rustfs/pull/1591
- fix: resolve Issue #1465 - IAM credential change crash by @yxrxy in https://github.com/rustfs/rustfs/pull/1535
- fix: handle duplicate part numbers in CompleteMultipartUpload by @overtrue in https://github.com/rustfs/rustfs/pull/1584
- fix: use main user for s3tests tenant to prevent teardown failures by @overtrue in https://github.com/rustfs/rustfs/pull/1597
- Fix/correctly handle compression by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1594
- feat: object retention by @GatewayJ in https://github.com/rustfs/rustfs/pull/1589
- fix: preserve exact JSON format in bucket policy GET response by @overtrue in https://github.com/rustfs/rustfs/pull/1598
- Add support for success_action_status and success_action_redirect in AWS S3 POST object uploads by @houseme in https://github.com/rustfs/rustfs/pull/1606
- Update README with docker-buildx.sh features by @DatTruonggg in https://github.com/rustfs/rustfs/pull/1585
- fix: listobjects v2 pagination by @overtrue in https://github.com/rustfs/rustfs/pull/1607
- fix: readme list. by @overtrue in https://github.com/rustfs/rustfs/pull/1608
- build(deps): bump the dependencies group with 3 updates by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/1612
- fix: unify path handling to use S3-standard forward slashes on all platforms by @houseme in https://github.com/rustfs/rustfs/pull/1555
- fix: remove plaintext credential logging by @houseme in https://github.com/rustfs/rustfs/pull/1619
- fix bug by @weisd in https://github.com/rustfs/rustfs/pull/1615
- fix: missing object.key in S3 event notifications for multipart uploads by @yxrxy in https://github.com/rustfs/rustfs/pull/1621
- fix: missing object.key in S3 event notifications for multipart uploads #1609 by @heihutu in https://github.com/rustfs/rustfs/pull/1624
- Fix:s3 compatibility by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1617
- fix:use RFC1123 format for last-modified header in 304 responses by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1627
- chore: remove skills and docs dir. by @overtrue in https://github.com/rustfs/rustfs/pull/1631
- Update README to streamline badge links by @loverustfs in https://github.com/rustfs/rustfs/pull/1643
- fix: map unversioned destination replication error correctly by @evanofslack in https://github.com/rustfs/rustfs/pull/1645
- build(deps): bump the dependencies group with 12 updates by @houseme in https://github.com/rustfs/rustfs/pull/1650
- fix(head): clearer NoSuchKey for prefix keys and validate part numbers by @houseme in https://github.com/rustfs/rustfs/pull/1638
- fix: build error on loongarch64 by @zhangwenlong8911 in https://github.com/rustfs/rustfs/pull/904
- feat: add virtual host mode support for kubernetes installation by @majinghe in https://github.com/rustfs/rustfs/pull/1655
- fix:s3 tests fix by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1652
- fix: deduplicate disks in capacity calculation to prevent inflation by @houseme in https://github.com/rustfs/rustfs/pull/1656
- fix: traefik gateway api support with sticky session by @majinghe in https://github.com/rustfs/rustfs/pull/1660
- refactor: NamespaceLock (nslock), AHM→Heal Crate, and Lock/Clippy Fixes by @weisd in https://github.com/rustfs/rustfs/pull/1664
- refactor(utils/os): Optimize Windows OS utilities and add safety comments by @houseme in https://github.com/rustfs/rustfs/pull/1671
- refactor: Remove unused data usage collection code by @weisd in https://github.com/rustfs/rustfs/pull/1672
- @DatTruonggg made their first contribution in https://github.com/rustfs/rustfs/pull/1585
- @evanofslack made their first contribution in https://github.com/rustfs/rustfs/pull/1645
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-alpha.81...1.0.0-alpha.82
1.0.0-alpha.82
- fix: correct max_keys field in list_object_versions response by @overtrue in https://github.com/rustfs/rustfs/pull/1576
- chore: update README. by @overtrue in https://github.com/rustfs/rustfs/pull/1586
- fix: Fixed detection warnings in rust v1.93.0 by @houseme in https://github.com/rustfs/rustfs/pull/1591
- fix: resolve Issue #1465 - IAM credential change crash by @yxrxy in https://github.com/rustfs/rustfs/pull/1535
- fix: handle duplicate part numbers in CompleteMultipartUpload by @overtrue in https://github.com/rustfs/rustfs/pull/1584
- fix: use main user for s3tests tenant to prevent teardown failures by @overtrue in https://github.com/rustfs/rustfs/pull/1597
- Fix/correctly handle compression by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1594
- feat: object retention by @GatewayJ in https://github.com/rustfs/rustfs/pull/1589
- fix: preserve exact JSON format in bucket policy GET response by @overtrue in https://github.com/rustfs/rustfs/pull/1598
- Add support for success_action_status and success_action_redirect in AWS S3 POST object uploads by @houseme in https://github.com/rustfs/rustfs/pull/1606
- Update README with docker-buildx.sh features by @DatTruonggg in https://github.com/rustfs/rustfs/pull/1585
- fix: listobjects v2 pagination by @overtrue in https://github.com/rustfs/rustfs/pull/1607
- fix: readme list. by @overtrue in https://github.com/rustfs/rustfs/pull/1608
- build(deps): bump the dependencies group with 3 updates by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/1612
- fix: unify path handling to use S3-standard forward slashes on all platforms by @houseme in https://github.com/rustfs/rustfs/pull/1555
- fix: remove plaintext credential logging by @houseme in https://github.com/rustfs/rustfs/pull/1619
- fix bug by @weisd in https://github.com/rustfs/rustfs/pull/1615
- fix: missing object.key in S3 event notifications for multipart uploads by @yxrxy in https://github.com/rustfs/rustfs/pull/1621
- fix: missing object.key in S3 event notifications for multipart uploads #1609 by @heihutu in https://github.com/rustfs/rustfs/pull/1624
- Fix:s3 compatibility by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1617
- fix:use RFC1123 format for last-modified header in 304 responses by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1627
- chore: remove skills and docs dir. by @overtrue in https://github.com/rustfs/rustfs/pull/1631
- Update README to streamline badge links by @loverustfs in https://github.com/rustfs/rustfs/pull/1643
- fix: map unversioned destination replication error correctly by @evanofslack in https://github.com/rustfs/rustfs/pull/1645
- build(deps): bump the dependencies group with 12 updates by @houseme in https://github.com/rustfs/rustfs/pull/1650
- fix(head): clearer NoSuchKey for prefix keys and validate part numbers by @houseme in https://github.com/rustfs/rustfs/pull/1638
- fix: build error on loongarch64 by @zhangwenlong8911 in https://github.com/rustfs/rustfs/pull/904
- feat: add virtual host mode support for kubernetes installation by @majinghe in https://github.com/rustfs/rustfs/pull/1655
- fix:s3 tests fix by @LeonWang0735 in https://github.com/rustfs/rustfs/pull/1652
- fix: deduplicate disks in capacity calculation to prevent inflation by @houseme in https://github.com/rustfs/rustfs/pull/1656
- fix: traefik gateway api support with sticky session by @majinghe in https://github.com/rustfs/rustfs/pull/1660
- refactor: NamespaceLock (nslock), AHM→Heal Crate, and Lock/Clippy Fixes by @weisd in https://github.com/rustfs/rustfs/pull/1664
- @DatTruonggg made their first contribution in https://github.com/rustfs/rustfs/pull/1585
- @evanofslack made their first contribution in https://github.com/rustfs/rustfs/pull/1645
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-alpha.81...1.0.0-alpha.82
2.25.0 (2026-01-29)
This release contains performance improvements and bug fixes since the 2.24.0 release. We recommend that you upgrade at the next available opportunity.
Highlighted features in TimescaleDB v2.25.0
This release features multiple improvements for continuous aggregates on the columnstore:
- Faster refreshes: You can now utilize direct compress during materialized view refreshes, resulting in higher throughput and reduced I/O usage.
- Efficiency: The enablement of delete optimizations significantly lowers system resource requirements.
- Smaller transactions: Adjusted defaults for
buckets_per_batchto 10 reduces transaction sizes, requiring less WAL holding time. - Faster queries: Smarter defaults for
segmentbyandorderbyyield improved query performance and better compression ratio on the columnstore.
Sunsetting announcements
- This release removes the WAL-based invalidation of continuous aggregates. This feature was introduced in 2.22.0 as tech preview to use logical decoding for building the invalidation logs. The feature was designed for high ingest workloads, reducing the write amplification. With the upcoming stream of improvements to continuous aggregates, this feature was deprioritized and removed.
- The old continuous aggregate format, deprecated in version 2.10.0, has been fully removed from TimescaleDB in this release. Users still on the old format should read the migration documentation to migrate to the new format. Users of Tiger Cloud have already been automatically migrated.
Features
- https://github.com/timescale/timescaledb/pull/8777 Enable direct compress on continuous aggregate refresh using new GUC
timescaledb.enable_direct_compress_on_cagg_refresh - https://github.com/timescale/timescaledb/pull/9031 Change default
buckets_per_batchon continuous aggregate refresh policy to10 - https://github.com/timescale/timescaledb/pull/9032 Add in-memory recompression for unordered chunks
- https://github.com/timescale/timescaledb/pull/9017 Move
bgw_jobtable into schema_timescaledb_catalog - https://github.com/timescale/timescaledb/pull/9033 Add
rebuild_columnstoreprocedure - https://github.com/timescale/timescaledb/pull/9038 Change default configuration for compressed continuous aggregates
- https://github.com/timescale/timescaledb/pull/9042 Enable batch sorted merge on unordered compressed chunks
- https://github.com/timescale/timescaledb/pull/9046 Allow non timescaledb namespace
SEToption for continuous aggregates - https://github.com/timescale/timescaledb/pull/9059 Allow configuring
work_memfor background worker jobs - https://github.com/timescale/timescaledb/pull/9074 Add function to estimate uncompressed size of compressed chunk
- https://github.com/timescale/timescaledb/pull/9085 Don't register timescaledb-tune specific GUCs
- https://github.com/timescale/timescaledb/pull/9088 Add
ColumnarIndexScancustom node - https://github.com/timescale/timescaledb/pull/9090 Support direct batch delete on hypertables with continuous aggregates
- https://github.com/timescale/timescaledb/pull/9094 Enable the columnar pipeline for grouping without aggregation to speed up the queries of the form
select column from table group by column. - https://github.com/timescale/timescaledb/pull/9103 Support
FIRSTandLASTinColumnarIndexScan - https://github.com/timescale/timescaledb/pull/9108 Support multiple aggregates in
ColumnarIndexScan - https://github.com/timescale/timescaledb/pull/9111 Allow recompression with orderby/index changes
- https://github.com/timescale/timescaledb/pull/9113 Use
enable_columnarscanto control columnarscan - https://github.com/timescale/timescaledb/pull/9127 Remove primary dimension constraints from fully covered chunks
- https://github.com/timescale/timescaledb/pull/8710 Add SQL function to fetch continuous aggregate grouping columns
- https://github.com/timescale/timescaledb/pull/9133 Allow pushing down sort into columnar unordered chunks when it is possible
- https://github.com/timescale/timescaledb/pull/8229 Removed
time_bucket_ngfunction - https://github.com/timescale/timescaledb/pull/8859 Remove support for partial continuous aggregate format
- https://github.com/timescale/timescaledb/pull/9022 Remove WAL based invalidation
- https://github.com/timescale/timescaledb/pull/9016 Remove
_timescaledb_debugschema - https://github.com/timescale/timescaledb/pull/9030 Add new chunks to hypertable publication
Bug fixes
- https://github.com/timescale/timescaledb/issues/8706 Fix planning performance regression on Postgres 16 and later on some join queries.
- https://github.com/timescale/timescaledb/pull/8986 Add pathkey replacement for
ColumnarScanPath - https://github.com/timescale/timescaledb/pull/8989 Ensure no XID is assigned during chunk query
- https://github.com/timescale/timescaledb/pull/8990 Fix
EquivalenceClassindex update forRelOptInfo - https://github.com/timescale/timescaledb/pull/9007 Add validation for compression index key limits
- https://github.com/timescale/timescaledb/pull/9024 Recompress some chunks on
VACUUM FULL - https://github.com/timescale/timescaledb/pull/9045 Fix missing UUID check in compression policy
- https://github.com/timescale/timescaledb/pull/9056 Fix split chunk
relfrozenxid - https://github.com/timescale/timescaledb/pull/9058 Fix missing chunk column stats bug
- https://github.com/timescale/timescaledb/pull/9061 Fix update race with background worker jobs
- https://github.com/timescale/timescaledb/pull/9069 Fix applying multikey sort for columnstore when one numeric key is pinned to a Const of different type
- https://github.com/timescale/timescaledb/pull/9102 Support retention policies on UUIDv7-partitioned hypertables
- https://github.com/timescale/timescaledb/pull/9120 Fix for pre Postgres 17, where a
DELETEfrom a partially compressed chunk may miss records ifBitmapHeapScanis being used - https://github.com/timescale/timescaledb/pull/9121 Allow any immutable constant expressions as default values for compressed columns
- https://github.com/timescale/timescaledb/pull/9121 Fix a potential "unexpected column type 'bool'" error for compressed bool columns with missing value
- https://github.com/timescale/timescaledb/pull/9144 Fix handling implicit constraints in
ALTER TABLE - https://github.com/timescale/timescaledb/pull/9155 Fix column generation during compressed chunk insert
- https://github.com/timescale/timescaledb/pull/9129 Fix
time_bucketwith timezone during DST - https://github.com/timescale/timescaledb/pull/9177 Add alias for
bgw_job - https://github.com/timescale/timescaledb/pull/9176 Handle
NULLvalues in continuous aggregate invalidation more gracefully - https://github.com/timescale/timescaledb/pull/9175 Do not remove dimension constraints for OSM chunks
GUCs
enable_columnarindexscan: Enable returning results directly from compression metadata without decompression. This feature is experimental and in development towards a GA release. Not for production environments. Default:falseenable_direct_compress_on_cagg_refresh: Enable experimental support for direct compression during Continuous Aggregate refresh. Default:falseenable_qual_filtering: Filter qualifiers on chunks when complete chunk would be included by filter. Default:true
Thanks
- @t-aistleitner for reporting the planning performance regression on PG16 and later on some join queries.
- @vahnrr for reporting a crash when adding columns and constraints to a hypertable at the same time
- @cracksalad and @eyadmba for reporting a bug with timezone handling in
time_bucket
v25.2.0
-
Added
-
GraphQL
- feat(graphql): Add support for ef and distance_threshold in generated GraphQL queries for similarity search (#9562).
WARNING In #9562, the computed distances (automatically returned in the
vector_distancefield) for cosine and dot product metrics are no longer normalized to [0, 1], but instead return the raw distance computed by the metric.
- feat(graphql): Add support for ef and distance_threshold in generated GraphQL queries for similarity search (#9562).
-
Vector
- feat(vector/hnsw): add per-query
efanddistance_thresholdtosimilar_to, fix early termination (#9514)
- feat(vector/hnsw): add per-query
-
Fixed
-
Core
- fix(txn): for lossy indexes, change comparison function to first check the txn cache (#9567)
- fix(cmd): store correct CA verification status (#9554)
- fix(zero): make zero shutdown cleanly (#9525)
-
Vector
- fix(vector): Fix similarity-based HNSW search for cosine and dot product metrics (#9559)
WARNING To benefit from the fix in #9559, you must reindex vector predicates that use cosine or dot product metrics.
- fix(vector): Fix similarity-based HNSW search for cosine and dot product metrics (#9559)
-
Chore
- docs: fix typos in comments (#9569)
- chore(ci): update go toolchain version to v1.25.6 (#9568)
- fix(ci): update trunk go runtime to match go.mod version (#9575)
- chore(test): replace deprecated docker struct types in testing harness (#9549)
- chore(test): unskip previously skipped tests (#9537)
- chore(core): use Tick() instead of NewTicker() (#9548)
- @mlwelles made their first contribution in https://github.com/dgraph-io/dgraph/pull/9575
- @NAM-MAN made their first contribution in https://github.com/dgraph-io/dgraph/pull/9569
Full Changelog: https://github.com/dgraph-io/dgraph/compare/v25.1.0...v25.2.0
v25.2.0
-
Added
-
GraphQL
- feat(graphql): Add support for ef and distance_threshold in generated GraphQL queries for similarity search (#9562).
WARNING In #9562, the computed distances (automatically returned in the
vector_distancefield) for cosine and dot product metrics are no longer normalized to [0, 1], but instead return the raw distance computed by the metric.
- feat(graphql): Add support for ef and distance_threshold in generated GraphQL queries for similarity search (#9562).
-
Vector
- feat(vector/hnsw): add per-query
efanddistance_thresholdtosimilar_to, fix early termination (#9514)
- feat(vector/hnsw): add per-query
-
Fixed
-
Core
- fix(txn): for lossy indexes, change comparison function to first check the txn cache (#9567)
- fix(cmd): store correct CA verification status (#9554)
- fix(zero): make zero shutdown cleanly (#9525)
-
Vector
- fix(vector): Fix similarity-based HNSW search for cosine and dot product metrics (#9559)
WARNING To benefit from the fix in #9559, you must reindex vector predicates that use cosine or dot product metrics.
- fix(vector): Fix similarity-based HNSW search for cosine and dot product metrics (#9559)
-
Chore
- docs: fix typos in comments (#9569)
- chore(ci): update go toolchain version to v1.25.6 (#9568)
- fix(ci): update trunk go runtime to match go.mod version (#9575)
- chore(test): replace deprecated docker struct types in testing harness (#9549)
- chore(test): unskip previously skipped tests (#9537)
- chore(core): use Tick() instead of NewTicker() (#9548)
- @mlwelles made their first contribution in https://github.com/dgraph-io/dgraph/pull/9575
- @NAM-MAN made their first contribution in https://github.com/dgraph-io/dgraph/pull/9569
Full Changelog: https://github.com/dgraph-io/dgraph/compare/v25.1.0...v25.2.0
5.0.1
- Support
'by'parameter inForwardedheader (RFC 7239) #4019 - Support epoch millisecond values for datetime predicates in WebMVC #4005
- Enhance MVC CircuitBreaker: add support for 'not permitted' handling and resume-without-error behavior #4000
- Adds support for ApiVersionHolder #4044
- Gateway metrics require optional spring-boot-micrometer-tracing dependency since 5.0.0 #4006
- Usage of Jackson 2 modules in Spring Cloud Gateway MVC #4001
- Documentation mentions deprecated Hystrix in Gateway features #4041
- Update document on retrieving a particular route #2561
Thank you to all the contributors who worked on this release:
@dependabot[bot], @raccoonback, @rjuare8, and @spencergibb