v3.6.13
- Ensure
SslExceptionsHandlerswallows all client SSL exceptions, not just handshake failures by @gavinbunney in https://github.com/Netflix/zuul/pull/2145 - Revert "Fix for connection leak issue with HTTP 1xx responses (#2137)" by @matthoffman in https://github.com/Netflix/zuul/pull/2147
- Allow subclasses to override
writeBufferedBodyContentby @gavinbunney in https://github.com/Netflix/zuul/pull/2148
Full Changelog: https://github.com/Netflix/zuul/compare/v3.6.12...v3.6.13
9.4.3
QuestDB 9.4.3 brings some key bug-fixes, along with parquet-native tables and new parquet-querying performance enhancements, with order-of-magnitude speedups for ORDER BY ... LIMIT queries.
For any questions or feedback, please join us on Slack or on Discourse.
See also our prettier release notes page.
- Two-bound
LIMIT nullsemantics changed, aligningLIMIT lo, hiwithLIMIT n:LIMIT null, nnow returns the first N rows (previously the full sorted set)LIMIT n, nullnow returns the empty result (previously all rows).LIMIT nullis unchanged, and returns the full result set.
EXPLAINplan output rewording for encodable sorts:- There was inconsistency in the rendering for 'encoding sorts'; this plan node will now render consistently as
Encode sort light. - If you assert any particular query plan shapes in your regression suite, you will need to update the assertions.
- There was inconsistency in the rendering for 'encoding sorts'; this plan node will now render consistently as
Tables can now store partitions in PARQUET format by default, rather than only NATIVE. Previously, you would need to:
- Run
ALTER TABLE ... CONVERT PARTITION ... TO PARQUETqueries to synchronously convert partitions in QuestDB OSS. - Enable
STORAGE POLICYto asynchronously convert partitions in QuestDB Enterprise.
CREATE TABLE trades (ts TIMESTAMP, price DOUBLE, sym SYMBOL)
TIMESTAMP(ts) PARTITION BY DAY FORMAT PARQUET WAL;
ALTER TABLE trades SET FORMAT PARQUET;
ALTER TABLE trades SET FORMAT NATIVE;
Please note that:
FORMAT PARQUETcan only be set on partitioned write-ahead-log (WAL) tables.- When applying
FORMAT PARQUETviaALTER TABLE, historical partitions will not be automatically converted. FORMAT NATIVEremains the default format for tables in QuestDB.- Out-of-order writes are more expensive when applied to parquet partitions.
There is a fine balance of memory budget versus CPU time when scanning and decoding parquet row groups. A fixed number of decode slots was an inflexible way to balance these two concerns.
Therefore, we have introduced a new memory-budget configuration and deprecated the old slot-based config:
- New:
cairo.sql.parquet.cache.memory.size- This is a per-cursor byte budget for decoded row groups (default 256 MB).
- Deprecated:
cairo.sql.parquet.frame.cache.capacity- This is still accepted, but not used.
The query engine has a number of optimisations based on the native-format data layout. We've revised the long top-K query path for parquet partitions, by removing a sorting tree and pruning projected columns earlier in the process. This is most valuable for queries over wide tables, with a significant sort plus limit workload.
This dramatically reduces unnecessary row-group decoding, and thus improves the scalability of this query shape for larger limits:
ILP/TCP is a mostly-deprecated ingestion path, though maintained for backwards compatibility. As part of this maintenance, we have fixed a bug which could cause stale data to be written to a table, affecting DECIMAL, LONG256 and implicit casts from BINARY to SYMBOL. This only impacted concurrent writes, so a straightforward single worker TCP stream was unaffected.
Thank you to our users who continue to use this feature and give us valuable feedback that helps us to keep it well-maintained.
With the upcoming QuestDB 10.0 release, we recommend planning an upgrade to our new ingestion API, which brings dramatically better performance and usability across the board.
- feat(sql): add
is_end_of_monthSQL function by @Dracylfrr in #7214 - feat(core): add periodic memory usage logging by @jerrinot in #7042
- feat(core): support parquet format table level by @ideoma in #7107
- feat(sql): add a memory-budgeted cache for Parquet random access by @puzpuzpuz in #7230
- perf(sql): speed up ORDER BY ... LIMIT N queries by @kafka1991 in #7222
- perf(sql): speed up parallel ORDER BY ... LIMIT N queries with encoded sort keys by @kafka1991 in #7241
- perf(sql): skip parquet decoding of rows that LIMIT discards by @kafka1991 in #7215
- perf(sql): push down filters into joins wrapped in views and subqueries by @ideoma in #7244
- perf(parquet): speed up partition-to-parquet conversion and reduce file size by @RaphDal in #7206
- fix(sql): fix internal error when a dotted name follows an operator by @bluestreak01 in #7260
- fix(core): fix NATIVE_INDEX_READER leak when a posting-index row cursor is closed after its reader by @bluestreak01 in #7256
- fix(sql): fix wrong results in splice, right and full outer joins with a left-table filter by @puzpuzpuz in #7225
- fix(core): fix unexpected logout during HTTP session rotation by @brunocalza in #7249
- fix(sql): fix internal error when an IN subquery contains a join, and handle declared variables in join ON clauses by @puzpuzpuz in #7211
- fix(core): fix snapshot restore accepting truncated parquet partitions when _pm sidecar exists by @bluestreak01 in #7243
- fix(core): fix POSTING-indexed symbol queries returning wrong rows or crashing by @bluestreak01 in #7253
- fix(wal): fix symbol value corruption when skipping replaced transactions across DDL by @jovfer in #7248
- fix(core): fix Parquet crashes on malformed files and data corruption on partial reads by @glasstiger in #7223
- fix(ilp): fix data corruption in concurrent ILP over TCP by @jerrinot in #7240
- fix(sql): fix wrong first/last results in parallel GROUP BY by @ideoma in #7224
- fix(core): fix posting index crash and wrong covered reads after rollback by @bluestreak01 in #7229
- fix(qwp): fix unresponsive network I/O under heavy QWP ingestion by @jerrinot in #7231
- fix(core): fix crash and native memory overrun in covering index out-of-order commits by @bluestreak01 in #7227
Full Changelog: 9.4.2...9.4.3
v1.47.0 🦇
We now support using the search personalization feature on federated search requests.
Like page/hitPerPage or limit/offset, the personalization option must be specified in the federation attribute to work properly. Otherwise, an error will be returned reminding you to move the attribute in federation.
By @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6414
- We now better support the tokenizer-related settings
- We improved the quality of the new settings indexer to enhance the engine's performance when changing the locales, the dictionary, synonyms, stop words, separator, and non-separator tokens.
- This makes the new settings indexer feature-complete, meaning that, unless you set the
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGSenvironment variable totrue, all settings tasks can now be handled by the new settings indexer, bringing a better scaling behavior, much faster cancellation, and a more precise progress view.
By @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6409
We expose more Prometheus metrics to improve observability, specifically to show more metrics on document throughput and ease debugging.
By @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6430
- Putting attributeRank/ wordPosition before words in the rankingRules list will no longer remove hits from the response, by @pjdurden in https://github.com/meilisearch/meilisearch/pull/6437
- Meilisearch will no longer ignore the
searchCutoffMsin some conditions when embedding documents, by @dureuill in https://github.com/meilisearch/meilisearch/pull/6447 - Meilisearch will no longer fail to proxy a search request with a filter containing a
'during remote federated search oruseNetwork: truesearch requests, by @dureuill in https://github.com/meilisearch/meilisearch/pull/6445
- CI: Prevent shell injection in GitHub Actions release workflows by @curquiza in https://github.com/meilisearch/meilisearch/pull/6420
Refactor the search pipeline to mutualize the code. The new implementation will always perform a federated search under the hood, and then the output will be transformed into the expected route's output.
Noticeable changes from the user perspective:
- Some error messages have been modified
- Small breaking change: a few error codes change, such as
MultiSearch<Error><-->Search<Error>
- Make it easier and less error-prone to declare a type that is used as a body parameter on a Meilisearch endpoint, by @dureuill in https://github.com/meilisearch/meilisearch/pull/6429
- Remove the now unused
vectorStoreBackendsetting from the settings, by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6399 - Replace custom hf-hub git dependency by the official one by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6442
- Update Python SDK test CI by @Strift in https://github.com/meilisearch/meilisearch/pull/6439
- Refactor the code to use the
MustStopProcessingtype everywhere by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6423
- @pjdurden made their first contribution in https://github.com/meilisearch/meilisearch/pull/6437
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.46.1...v1.47.0
4.34
-
S3
- s3: export per-bucket quota and read-only state metrics by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9923
- s3: validate copy source path segments by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9929
- [s3] validate indirect filer path inputs by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9931
- [s3]: preserve multipart copy checksums by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9948
- s3: give account-less identities a distinct owner instead of admin by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9962
- s3: give STS sessions a distinct owner account instead of admin by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9963
- s3tables: scope management authorization to the caller's identity by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9961
- s3: register account-less identities' synthesized account so ACL/owner ids resolve by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9971
-
Misc
- fix(tests): 32-bit build of EC e2e tests, type-check linux/386 in CI by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9922
- ci: run weed tests on linux/386 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9924
- fix(util): ignore comment only sql input by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9933
-
Shell
- shell: volume.tier.move can move volumes between data centers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9925
- shell: stop ec.encode/ec.rebuild from destroying live EC shards (no crash needed) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9939
-
Admin Server
- admin: configure maintenance tasks via admin.toml by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9926
- admin: native at-a-glance trend sparklines on the dashboard by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9957
- admin: fold dashboard sparklines into the existing cards (de-dup) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9964
- admin: add connected Mount Clients page and dashboard section by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9968
-
Volume Server
- feat(storage): sweep leftover empty EC .dat stubs on volume server startup by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9927
- fix(storage): never let an empty .dat delete healthy distributed EC shards by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9930
- fix(ec): crash-safe ecx-journal fold and shard rebuild (fsync before publish, no short-read-as-success) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9938
- fix(ec): never delete recoverable EC shards on startup/reconcile (the non-empty-.dat sibling of the stub bug) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9941
- [volume] preserve volume data mtime across tier moves by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9947
- fix(replication): verify-before-destroy in VolumeCopy, check.disk, and over-replication trim by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9943
- fix(vacuum): crash-safe compaction commit with a durable .cpc marker, fsync-before-rename, and a reload fence by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9944
- fix(tiering): never delete a shared remote object while replicas still reference it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9942
- fix(ec): make ec.decode write-path crash-safe and atomic by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9949
- fix(ec): persist EC source readonly mark and skip writable replicas on orphan cleanup by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9950
- [volume] preserve compression state during replication by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9946
- fix(ec): don't fabricate a stub .vif when mounting an EC volume by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9951
- fix(ec): group orphan-source completeness by encode generation (topology encode_ts_ns) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9952
- fix(ec): fence stale-worker EC shard cleanup by encode generation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9953
- fix(storage): delete/unmount every copy of a duplicate volume id by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9954
- fix(ec): remove shared EC index only when no shard remains node-wide by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9955
- fix(ec): recover EC shards with the volume's own ratio, not the build default by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9958
- refactor(ec_balance): make the balance planner per-volume ratio-capable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9960
-
Metrics
- metrics: overhaul Grafana dashboard for full metric coverage by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9956
- metrics: guard time()-based dashboard panels against unset gauges by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9965
- metrics: add per-bucket S3 panels and volume slot utilization to dashboard by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9969
- filer: keep metadata-subscription send gauge fresh on idle heartbeat by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9966
-
Helm Charts
- [helm]: configure JWT expiration by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9940
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.33...4.34
v3.6.12
- Fix for vulnerability where callers could see content meant for other callers if the origin returns an HTTP 1xx response #2137
Presto 0.298
See the release notes at https://prestodb.io/docs/current/release/release-0.298.html
v25.3.5
- fix(backup): reject incremental backups whose read_ts has regressed by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9707
- chore(deps): Upgrade go 1.26.4; add a openvex for false positive CVE report by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9735
- chore: remove unused buildvars.ComposeBuildDir Var by @mlwelles in https://github.com/dgraph-io/dgraph/pull/9704
- chore(ci): disable scheduled jepsen test runs by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9729
- docs(changelog): backfill v25.3.1-v25.3.4 and v24.1.6-v24.1.9 entries by @mlwelles in https://github.com/dgraph-io/dgraph/pull/9705
Full Changelog: https://github.com/dgraph-io/dgraph/compare/v25.3.4...v25.3.5
v25.3.5
- fix(backup): reject incremental backups whose read_ts has regressed by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9707
- chore(deps): Upgrade go 1.26.4; add a openvex for false positive CVE report by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9735
- chore: remove unused buildvars.ComposeBuildDir Var by @mlwelles in https://github.com/dgraph-io/dgraph/pull/9704
- chore(ci): disable scheduled jepsen test runs by @matthewmcneely in https://github.com/dgraph-io/dgraph/pull/9729
- docs(changelog): backfill v25.3.1-v25.3.4 and v24.1.6-v24.1.9 entries by @mlwelles in https://github.com/dgraph-io/dgraph/pull/9705
Full Changelog: https://github.com/dgraph-io/dgraph/compare/v25.3.4...v25.3.5
5.0.2
- Enable body filter codec encoding customization via CodecCustomizer #4151
- Adds StripContextPath filter #4089
- RewriteFunction nullability in Spring Boot 4 #4061
- AbstractProxyExchange takes into account MediaType parameters #3948
- docs(server-webflux): updating gateway actuator documentation as per … #4163
- Fix typos in DiscoveryLocatorProperties documentation, make terms consistent, remove already implemented TODO #4123
- Spring Cloud Gateway docs contain wrong configuration properties #4103
- Spring Cloud Docs has wrong references in "How It Works" section for Server MVC #4098
- [doc] Fix broken link to GatewayFilter #4073
- Documentation mismatch: Route configuration path incorrect for Spring Cloud Gateway Server WebFlux #4047
- Docs: Fix broken GitHub links in Server WebMvc "How It Works" docs #3928
- CONTRIBUTING references CLA, but this appears to have been replaced with DCO #3884
- Document TLS/SSL Configuration for Spring Cloud MVC Gateway #3654
- Better docs about naming convention in PredicateDefinition: Path receives pattern key and it works? #3523
Thank you to all the contributors who worked on this release:
@03hjain, @AahilRafiq, @RenanMarques, @Yuri-Costa09, @dependabot[bot], @garvit-joshi, @jerolba, @qnnn, and @ryanjbaxter
4.3.5
- MVC ProxyExchange does not provide observability of URI template #3458
- Add support for empty path prefixes #3201
- docs: add ReadBody route predicate factory documentation #4138
Thank you to all the contributors who worked on this release:
@dependabot[bot], @mhalbritter, @pachat-pacifique, and @ryanjbaxter