8.10.0
This is the General Availability release of Redis 8.10 in Redis Open Source.
- Compact hashes - a new hash encoding that reduces memory usage by storing hash field names just once for keys that share a schema
- New command:
HIMPORT- high-throughput compact hash bulk insertion - TLS peer certificate-based server-to-server authentication
- New commands:
LMOVEM,BLMOVEM- move multiple elements between lists - New command:
SUNIONCARD- get the cardinality of the union of multiple sets - New command:
SDIFFCARD- get the cardinality of the difference between sets - New command:
BACKUP- node-side implementation for backup and restore based on multi-part AOF (MP-AOF) XREAD,XREADGROUP- newMAXCOUNTandMAXSIZEarguments to cap the cumulative reply entries and size- New command:
FT.ALIASLIST- get all aliases for the index - Stemmer support for Malay and Tagalog languages
- JSONPath extensions
- New commands:
TS.NRANGE,TS.NREVRANGE- Query a range across multiple time series; group results by timestamp - New command:
TS.READ- optionally blocking read - New command:
TS.QUERYLABELS- Get a list of labels and label-values - New command:
TS.MRANGE,TS.MREVRANGE- newEXCLUDEEMPTYargument to exclude series with no reported samples - Performance improvements
- Alpine and Debian Docker images - https://hub.docker.com/_/redis
- Install using snap - see https://github.com/redis/redis-snap
- Install using brew - see https://github.com/redis/homebrew-redis
- Install using RPM - see https://github.com/redis/redis-rpm
- Install using Debian APT - see https://github.com/redis/redis-debian
- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat), 26.04 (Resolute Raccoon)
- Rocky Linux 8.10, 9.7, 10.1
- AlmaLinux 8.10, 9.7, 10.1
- Debian 12.13 (Bookworm), Debian 13.4 (Trixie)
- Alpine 3.23
- macOS 14.8.4 (Sonoma), 15.7.4 (Sequoia), 26.3 (Tahoe) - for both Intel and ARM
- #15513 Prevented a division-by-zero error when active defragmentation thresholds are configured with equal or reversed value
- #15453 Clients blocked on
BLPOP,BLMOVE, orBLMOVEMcould remain blocked afterSORTwithSTOREreplaced the target key with a list - #15499 Memory usage reported for compressed replication clients could be lower than the actual memory consumed
- #15518 notify modules when node's own ip/port changes
- #15539 Loading an AOF file with an RDB preamble could fail when active defragmentation was enabled
- RediSearch/RediSearch#10528 Crash in the numeric range tree when background garbage collection encounters an empty leaf during active indexing on a numeric field. (MOD-16877)
- RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now reject an empty string as a field name, preventing a crash loop in the fork-GC on indexes with an empty TAG field. (MOD-17034)
- RediSearch/RediSearch#10488 FT.INFO reports a negative num_records after garbage collection on indexes that include an INDEXMISSING field. (MOD-16940)
- RediSearch/RediSearch#10568 Cluster FT.AGGREGATE fails with SEARCH_FIELD_DUP when a GROUPBY contains multiple REDUCE COLLECT calls over the same field differing only in option-keyword casing. (MOD-16365)
- RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now return an error when a field name is an empty string; previously such schemas were accepted silently. (MOD-17034)
- RediSearch/RediSearch#10522 coord_total_query_warnings_timeout double-counts timeout warnings for FT.SEARCH queries that use a hybrid (vector + filter) execution path. (MOD-15973)
2026-07-29, Version 24.18.1 'Krypton' (LTS), @juanarbol
This is a security release.
- (CVE-2026-56846) http2: retain header memory in session accounting (Matteo Collina) – High
- (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) – High
- (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) – High
- (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) – Medium
- (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) – Medium
- (CVE-2026-58041) sqlite: invalidate tag store iterators on statement reset (Matteo Collina) – Medium
- (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) – Medium
- (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) – Medium
- (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) – Low
- (CVE-2026-58039) permission: check final report output path (RafaelGSS) – Low
- (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) – Low
- deps: update llhttp to 9.4.3 (Paolo Insogna)
- deps: update undici to 7.29.0 (Node.js GitHub Bot)
- [
6cb0475751] - deps: update llhttp to 9.4.3 (Paolo Insogna) nodejs-private/node-private#935 - [
bcfe21d3dc] - deps: update undici to 7.29.0 (Node.js GitHub Bot) #64713 - [
9d0d36cffd] - (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) nodejs-private/node-private#929 - [
8a008fb523] - (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) nodejs-private/node-private#922 - [
a77c7f7354] - (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) nodejs-private/node-private#921 - [
34ed88a069] - (CVE-2026-56846) http2: retain header memory in session accounting (Matteo Collina) #63752 - [
95ba2cfde7] - (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) nodejs-private/node-private#904 - [
fcbdbe47ea] - (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) nodejs-private/node-private#930 - [
ea26c12b56] - (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) nodejs-private/node-private#911 - [
9a6b7e343a] - (CVE-2026-58039) permission: check final report output path (RafaelGSS) nodejs-private/node-private#926 - [
6c0c990880] - (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) nodejs-private/node-private#927 - [
af9ff0490c] - (CVE-2026-58041) sqlite: invalidate tag store iterators on statement reset (Matteo Collina) nodejs-private/node-private#896 - [
05f541b5c0] - (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) nodejs-private/node-private#931
2026-07-29, Version 22.23.2 'Jod' (LTS), @marco-ippolito
This is a security release.
- (CVE-2026-56846) http2: retain header memory in session accounting (Matteo Collina) – High
- (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) – High
- (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) – High
- (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) – Medium
- (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) – Medium
- (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) – Medium
- (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) – Medium
- (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) – Low
- (CVE-2026-58039) permission: check final report output path (RafaelGSS) – Low
- (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) – Low
- deps: update llhttp to 9.4.3 (Paolo Insogna)
- deps: update undici to 6.28.0 (Node.js GitHub Bot)
- [
4b12ac38a1] - deps: update llhttp to 9.4.3 (Paolo Insogna) nodejs-private/node-private#935 - [
3fd0aa51d0] - deps: update undici to 6.28.0 (Node.js GitHub Bot) #64714 - [
22efc051a3] - (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) nodejs-private/node-private#929 - [
c8525ac3a6] - (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) nodejs-private/node-private#932 - [
daa6d25e3d] - (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) nodejs-private/node-private#921 - [
f14d78b9e0] - (CVE-2026-56846) http2: retain header memory in session accounting (Matteo Collina) #63752 - [
51123159fe] - (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) nodejs-private/node-private#934 - [
acaf4266b2] - (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) nodejs-private/node-private#930 - [
440329f624] - (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) nodejs-private/node-private#911 - [
ed18b9cc07] - (CVE-2026-58039) permission: check final report output path (RafaelGSS) nodejs-private/node-private#926 - [
0566c3cccd] - (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) nodejs-private/node-private#927 - [
0d072480c3] - (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) nodejs-private/node-private#931
2026-07-29, Version 26.5.1 (Current), @RafaelGSS
This is a security release.
- (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) – High
- (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) – High
- (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) – Medium
- (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) – Medium
- (CVE-2026-58041) sqlite: invalidate tag store iterators on statement reset (Matteo Collina) – Medium
- (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) – Medium
- (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) – Medium
- (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) – Low
- (CVE-2026-58039) permission: check final report output path (RafaelGSS) – Low
- (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) – Low
- deps: update llhttp to 9.4.3 (Paolo Insogna)
- deps: update undici to 8.9.0 (Node.js GitHub Bot)
- [
af0bf96877] - deps: update llhttp to 9.4.3 (Paolo Insogna) nodejs-private/node-private#935 - [
0354678355] - deps: update undici to 8.9.0 (Node.js GitHub Bot) #64712 - [
dbeeaeec13] - (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) nodejs-private/node-private#929 - [
064d339f56] - (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) nodejs-private/node-private#922 - [
23b94c843a] - (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) nodejs-private/node-private#921 - [
c7ec3dc0b9] - (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) nodejs-private/node-private#904 - [
8f666925b1] - (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) nodejs-private/node-private#930 - [
ad99d075b1] - (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) nodejs-private/node-private#911 - [
61222008b7] - (CVE-2026-58039) permission: check final report output path (RafaelGSS) nodejs-private/node-private#908 - [
3cb607dfc4] - (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) nodejs-private/node-private#924 - [
d08fde8a16] - (CVE-2026-58041) sqlite: invalidate tag store iterators on statement reset (Matteo Collina) nodejs-private/node-private#896 - [
b3fbb6e11f] - (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) nodejs-private/node-private#931
milvus-3.0.0
Release note is coming...
2.29.0 (2026-07-28)
This release contains performance improvements and bug fixes since the 2.28.3 release. We recommend that you upgrade at the next available opportunity.
Release Highlights
- Chunk exclusion for DML operations drastically improves the performance of
UPDATEandDELETEstatements on hypertables. By acquiring exclusive locks only on the specific chunks being modified rather than the entire hypertable, this enhancement eliminates massive lock contention and keeps high-concurrency workloads running smoothly without unnecessary slowdowns. - Intelligent row-by-row decompression enables the query planner to decompress data row-by-row rather than in large batches when an operation prioritizes a fast initial response (such as queries with
LIMITclauses). This dramatically reduces memory overhead and query latency, ensuring lightning-fast performance when you only need to retrieve a small subset of records from your compressed hypertables.
Important: PostgreSQL 15 Support Removed TimescaleDB 2.29.0 removes support for PostgreSQL 15. This release supports PostgreSQL 16, 17, and 18. If you are still running PostgreSQL 15, upgrade PostgreSQL before upgrading to TimescaleDB 2.29.0.
Backward-Incompatible Changes
- #10041 Remove support for PostgreSQL 15
Features
- #9315 Speed up
DMLoperations on hypertables by using the optimized TimescaleDB hypertable expansion code instead of the generic PostgreSQL inheritance hierarchy expansion - #9534 Speed up expression evaluation in the columnar pipeline by caching common subexpressions
- #9684 Add
_timescaledb_functions.decompress_batch()SQL function - #9732 Speed up some queries with small
LIMITby switching to row-by-row query execution pipeline - #9917 Decompress less data in
DMLon compressed hypertables by accounting for prepared statement parameters - #9957 Add
compact_chunk()function - #10048 Support concurrent refresh policies on hierarchical continuous aggregates
- #10081 Add
samplerateargument to_timescaledb_functions.estimate_uncompressed_size() - #10100 Skip classifying compressed relations to speed up planning
- #10118 Don't track compressed relations as separate chunk
- #10119 Reduce memory usage of
INSERTqueries using direct compress and spanning multiple chunks - #10163 Add a compaction policy for unordered chunks
- #10204 Don't create separate hypertable catalog entry for hypertables with compression
- #10217 Initial placeholder version of granular refresh API
- #10225 Add
config_mergeparameter toalter_job()for mergingjsonbinto the existing job configuration - #10226 Add
recompress_unorderedcolumnstore policy option - #10231 Use
regclassfor storing relation reference in chunk table - #10237 Add helper functions for decoding hypertable status
- #10240 Add the
tsdb.direct_compressstorage parameter that allows enabling direct compress for a given hypertable independent of global settings - #10266 Add
max_batchestocompact_chunk() - #10299 Add
continuous_aggs_tenant_trackingandhypertable_cagg_settingscatalogs
Bugfixes
- #10013 Make ownership error messages on continuous aggregates consistent
- #10052 Result of
MIN/MAXaggregate functions in columnar aggregation pipeline possibly inconsistent with plain PostgreSQL result - #10071 Prune the real-time branch of hierarchical continuous aggregates at any nesting depth
- #10143 Fix division by zero when planning
time_bucketwith zero width - #10199 Fix
initial_starthandling inbuild_job_info - #10213 Cache sort pathkeys per hypertable
- #10221 Fix incremental refresh skipping the last bucket
- #10278 Drop
job_errorsview inbgw_job_stat_historymigration - #10280
RETURNINGclause returned no rows forINSERTusing direct compress - #10281 Disable direct compress when the destination table has an exclusion constraint so the constraint is still enforced
- #10282 Only count directly compressed rows toward the command tag when the
INSERTsets it - #10286 Propagate
VACUUMon a chunk to the compressed relation when running on the chunk directly - #10302 Fix useless-join removal and self-join elimination for hypertables
- #10313 Allow running
ALTER EXTENSION timescaledb UPDATEinside a transaction block - #10315 Fix overlap detection with running max
- #10324 Fix stale index entries after
rebuild_sparse_index()on compressed chunks
GUCs
timescaledb.enable_hypertable_expansion_for_dml: allow using the optimized TimescaleDB hypertable expansion code forUPDATEandDELETEinstead of the generic PostgreSQL inheritance hierarchy expansion. On by default.
Thanks
- @FrancescEthon and @ManuelEthon for reporting an issue with incremental refresh skipping the last bucket
- @h0rn3t for reporting a problem with
VACUUMnot propagating to the compressed relation - @igor2x for reporting an issue with locking during DML statements on hypertables
- @MaximeEthon for reporting an issue with prepared statement parameters in DML decompression
- @proddata for reporting a problem when upgrading from 2.15.3 to 2.28.2
- @tureba for reporting and fixing stale sparse-index entries after rebuild
- @viniciusrsouza for reporting an issue with hierarchical continuous aggregates
v4.1.3
- Revert to previous parsePath logic by @jguerra in https://github.com/Netflix/zuul/pull/2202
Full Changelog: https://github.com/Netflix/zuul/compare/v4.1.2...v4.1.3
v4.1.2
- build(deps): bump gradle-wrapper from 9.2.1 to 9.6.1 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2180
- build(deps): bump org.apache.logging.log4j:log4j-core from 2.25.1 to 2.26.1 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2178
- build(deps): bump org.apache.logging.log4j:log4j-slf4j2-impl from 2.25.2 to 2.26.1 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2179
- build(deps): bump com.google.guava:guava from 33.3.0-jre to 33.6.0-jre by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2177
- Bump jackson version and regenerate locks by @jguerra in https://github.com/Netflix/zuul/pull/2188
- build(deps): bump com.netflix.eureka:eureka-client from 2.0.4 to 2.0.6 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2192
- build(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.20.0 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2189
- build(deps): bump com.uber.nullaway:nullaway from 0.13.7 to 0.13.8 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2193
- build(deps): bump org.slf4j:slf4j-api from 2.0.16 to 2.0.18 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2191
- build(deps): bump com.palantir.javaformat:gradle-palantir-java-format from 2.94.0 to 2.96.0 by @dependabot[bot] in https://github.com/Netflix/zuul/pull/2196
- Extract parse path to helper by @jguerra in https://github.com/Netflix/zuul/pull/2195
- regenerate locks by @jguerra in https://github.com/Netflix/zuul/pull/2201
- Retry on CLOSE_NOTIFY_CONNECTION by @fool1280 in https://github.com/Netflix/zuul/pull/2198
Full Changelog: https://github.com/Netflix/zuul/compare/v4.1.1...v4.1.2
superset-helm-chart-0.22.4
Apache Superset is a modern, enterprise-ready business intelligence web application
v1.51.0 👽
-
Add filter condition to DSRs by @dureuill in https://github.com/meilisearch/meilisearch/pull/6505
Dynamic search rules (DSR) can now declare a new
filtercondition: it contains a singlevalueskey, whose value is a JSON object. The keys of thisvaluesJSON object are the facet names (e.g.,color,genres, ...), while their values are the values that a filter must resolve to for these facets, so that the rule is active.Example of sending a DSR with a filter condition
Example of search query that enables the DSR above
{ "filter": "(category = shirt AND color = red) OR (category = jeans AND color = blue)" }Note that the filter only needs to have one branch resolving to all the facet values declared in the rule for the rule to be active.
Dynamic search rules returned by
GET /dynamic-search-rules/{:ruleUid}andPOST /dynamic-search-rulescontain an additionallastUpdatedAtfield.This field is automatically updated with the
enqueuedAtvalue of the last task that modified the rule.POST /dynamic-search-rulesnow lists rules in descendinglastUpdatedAtorder, meaning that the most recently updated rules will be listed first.New environment variables are defined to control the behavior of the DSR fuel:
MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_FUEL(in range 0..4294967296): controls how many filter constraint combinations Meilisearch will attempt to resolve at search time before giving up and applying partial rules.MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_OR_FUEL(in range 0..65536): controls how many filter disjunctions Meilisearch will build when turning a filter to its canonical shapeMEILI_EXPERIMENTAL_DSR_FUEL_FILTER_AND_FUEL(in range 0..65536): controls how many filter conjunctions Meilisearch will build in total when turning a filter to its canonical shapeMEILI_EXPERIMENTAL_DSR_FUEL_FILTER_DEPTH_FUEL(in range 0..256): controls the maximum recursive depth that Meilisearch allows when turning a filter to its canonical shape
-
Speed up search requests by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6528 Improves Meilisearch search speed by avoiding unnecessary internal work. We drastically reduced the number of times we retrieve data from disk to a single time across the whole search pipeline. This improvement will have the greatest effect on datasets with a large number of distinct fields across documents. We have seen search speeds up to 5.4x on a dataset with more than 14k different fields.
-
Stabilize dumpless upgrade by @curquiza in https://github.com/meilisearch/meilisearch/pull/6486
⚠️ Breaking change following the stabilization of an experimental feature⚠️ The flag
—-experimental-dumpless-upgradeis renamed—-upgrade-db, keeping the exact same behavior. -
Remove unused experimental features by @curquiza in https://github.com/meilisearch/meilisearch/pull/6489
⚠️ Breaking change: removing the following experimental features⚠️ - Replication parameters: removing
--experimental-replication-parametersbecause outdated. We now have another way to handle replication. - Import dumps with old document indexer fallback: removing
--experimental-no-edition-2024-for-dumps. This flag existed to prevent bugs related to our new indexer, which is now stable. - No snapshot compression: removing
--experimental-no-snapshot-compactionbecause it's not useful anymore.
- Replication parameters: removing
- Make sure legacy attribute patterns work by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6531
- Missing support for the shorthand filterable attributes syntax
- Add missing logs in multisearch by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6529
- Docs: Fix stale pre-v1.0 supported versions statement by @vishnujayvel in https://github.com/meilisearch/meilisearch/pull/6524
- Bump sigstore/cosign-installer from 4.1.1 to 4.1.2 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6427
- Bump actions/github-script from 7 to 9 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6425
- Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6428
- @vishnujayvel made their first contribution in https://github.com/meilisearch/meilisearch/pull/6524