Skip to content

Commit 70a7ce0

Browse files
stockholmuxmadolsonzuiderkwasthpatroPingXie
authored
Valkey 9.0.0-rc1 release notes and version.h bump (#2476)
As per step 2 of the release checklist #2408 for 9.0.0-rc1 --------- Signed-off-by: Kyle J. Davis <[email protected]> Co-authored-by: Madelyn Olson <[email protected]> Co-authored-by: Viktor Söderqvist <[email protected]> Co-authored-by: Harkrishn Patro <[email protected]> Co-authored-by: Ping Xie <[email protected]> Co-authored-by: Wen Hui <[email protected]>
1 parent 6c2e4f9 commit 70a7ce0

File tree

2 files changed

+210
-14
lines changed

2 files changed

+210
-14
lines changed

00-RELEASENOTES

Lines changed: 207 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,212 @@
1-
Hello! This file is just a placeholder, since this is the "unstable" branch
2-
of Valkey, the place where all the development happens.
1+
Valkey 9.0 release notes
2+
========================
33

4-
There is no release notes for this branch, it gets forked into another branch
5-
every time there is a partial feature freeze in order to eventually create
6-
a new stable release.
4+
Upgrade urgency levels:
75

8-
Usually "unstable" is stable enough for you to use it in development environments
9-
however you should never use it in production environments. It is possible
10-
to download the latest stable release here:
6+
| Level | Meaning |
7+
|----------|---------------------------------------------------------------------|
8+
| LOW | No need to upgrade unless there are new features you want to use. |
9+
| MODERATE | Program an upgrade of the server, but it's not urgent. |
10+
| HIGH | There is a critical bug that may affect a subset of users. Upgrade! |
11+
| CRITICAL | There is a critical bug affecting MOST USERS. Upgrade ASAP. |
12+
| SECURITY | There are security fixes in the release. |
1113

12-
https://valkey.io/download/
14+
Valkey 9.0.0-rc1 - August 14, 2025
15+
----------------------------------
1316

14-
More information is available at https://valkey.io
17+
Upgrade urgency LOW: This is the first release candidate of Valkey 9.0.0, with
18+
performance improvements, atomic slot migrations, hash field expiration, and numbered databases in cluster mode,
19+
as well as a whole host of new items as listed below.
1520

16-
Happy hacking!
21+
### New Features
22+
* Client Commands Extended Filtering by @sarthakaggarwal97 (#1466)
23+
* Add multi-database support to cluster mode by @xbasel (#1671)
24+
* Support BYPOLYGON option for GEOSEARCH by @KarthikSubbarao (#1809)
25+
* Introduce MPTCP by @pizhenwei (#1811)
26+
* Add sentinel_total_tilt to sentinel INFO sentinel by @carlosfu (#1904)
27+
* Add support for automatic client authentication via TLS certificate fields by @omanges (#1920)
28+
* Add --hotkeys-count option for valkey-cli by @hwware (#1933)
29+
* Introduce atomic slot migration by @murphyjacob4 (#1949)
30+
* Introduce MPTCP for replica by @pizhenwei (#1961)
31+
* Add DELIFEQ command by @LinusU (#1975)
32+
* Allow dynamic modification of io-threads num by @ayush933 (#2033)
33+
* Introduce HASH items expiration by @ranshid (#2089)
34+
* Add SAFE option to SHUTDOWN to reject shutdown in unsafe situations by @enjoy-binbin (#2195)
35+
* Support negative filtering for client command filters by @soloestoy (#2378)
36+
37+
### New Configs
38+
* Auto-failover on shutdown unified config by @zuiderkwast (#2292)
39+
40+
### Logging and Tooling Improvements
41+
* Add node pfail and fail count to cluster info metrics by @hpatro (#1910)
42+
* Introduce support for lttng based tracing by @artikell (#2070)
43+
44+
### Performance/Efficiency Improvements
45+
* Optimize bitcount command by SIMD by @chzhoo (#1741)
46+
* Save RDB file to disk using a background thread on replica(s) (#1784)
47+
* Improve replication stability by prioritizing replication traffic in the replica by @xbasel (#1838)
48+
* Optimize hyperloglog commands with ARM NEON SIMD instructions by @xbasel (#1859)
49+
* Optimize BITCOUNT using ARM NEON SIMD by @xbasel (#1867)
50+
* Optimize string-to-integer performance using AVX512 by @zhulipeng (#1944)
51+
* Improve system responsiveness by limiting number of new cluster link connections per cycle by @hpatro (#2009)
52+
* Optimize hash table performance using SIMD by @zhulipeng (#2030)
53+
* Improve performance of network operations by directly writing responses to clients by @xbasel (#2078)
54+
* Allow shrinking hashtables in low memory situations by @Fusl (#2095)
55+
* Optimize string2ll with load-time CPU feature check using IFUNC resolver by @zhulipeng (#2099)
56+
* Optimize WATCH by equalStringObjects early length check by @vitahlin (#2107)
57+
* Optimize GEORADIUS command performance with pre-allocated buffer by @chzhoo (#2116)
58+
* Improve zcount performance by combing range element ranks calculation with range elements search to @SoftlyRaining (#2129)
59+
* Optimize scan/sscan/hscan/zscan commands by replacing list with vector by @chzhoo (#2160)
60+
61+
### Cluster
62+
* Trigger manual failover on SIGTERM / shutdown to cluster primary by @enjoy-binbin (#1091)
63+
* Add CLUSTER FLUSHSLOT command by @wuranxx (#1384)
64+
* Allow replicas to become primaries without data by using CLUSTER REPLICATE NO ONE by @skolosov-snap (#1674)
65+
* Add cluster bus port out of range error message for CLUSTER MEET command by @hwware (#1686)
66+
* Add cluster-manual-failover-timeout to configure the timeout for manual failover by @enjoy-binbin (#1690)
67+
68+
### Module
69+
* Add new module API flag to bypass command validation by @sungming2 (#1357)
70+
71+
### Bug Fixes
72+
* Avoid shard id update of replica if it doesn't match with primary shard id by @hpatro (#573)
73+
* Change "Redis ver." to "Valkey ver." in LOLWUT output by @sarthakaggarwal97 (#1559)
74+
* Fix temp file leak during replication error handling by @enjoy-binbin (#1721)
75+
* Fix raxRemove crash at memcpy() due to key size exceeds max Rax size by @VoletiRam (#1722)
76+
* Respect process umask when creating data files by @kronwerk (#1725)
77+
* Fix error "SSL routines::bad length" when connTLSWrite is called second time with smaller buffer by @zori-janea (#1737)
78+
* cmd's out bytes need count deferred reply by @soloestoy (#1760)
79+
* Enable TCP_NODELAY by default in incoming and outgoing connections by @sungming2 (#1763)
80+
* Ignore stale gossip packets that arrive out of order by @enjoy-binbin (#1777)
81+
* Remove unicode optimization in Lua cjson library by @rjd15372 (#1785)
82+
* Save config file and broadcast PONG message on configEpoch change by @enjoy-binbin (#1813)
83+
* Fix engine crash on module client blocking during keyspace events by @yairgott (#1819)
84+
* Fix bug where invalidation messages were getting sent to closing clients by @madolson (#1823)
85+
* Fix ACL LOAD crash on replica since the primary client don't has a user by @bogdanp05 (#1842)
86+
* Fix RANDOMKEY infinite loop during CLIENT PAUSE by @li-benson (#1850)
87+
* Improve clarity of errors for GEO commands when member does not exist by @chx9 (#1943)
88+
* Fix panic in primary when blocking shutdown after previous block with timeout by @murphyjacob4 (#1948)
89+
* fix cluster slot stats assertion during promotion of replica by @Fusl (#1950)
90+
* Fix incorrect lag reported in XINFO GROUPS by @nesty92 (#1952)
91+
* Fix crash during TLS handshake with I/O threads by @uriyage (#1955)
92+
* Disallow sending REPLY ON / OFF / SKIP inside a multi-exec transaction by @sarthakaggarwal97 (#1966)
93+
* Fix random element in skewed sparse hash table by @zuiderkwast (#2085)
94+
* Allow mixing quoted and unquoted inline args by @Fusl (#2098)
95+
* Only mark the client reprocessing flag when unblocked on keys by @ranshid (#2109)
96+
* CLIENT UNBLOCK should't be able to unpause paused clients by @enjoy-binbin (#2117)
97+
* Fix memory corruption in sharded pubsub unsubscribe by @uriyage (#2137)
98+
* Detect SSL_new() returning NULL in outgoing connections by @zuiderkwast (#2140)
99+
* Correctly handle large cluster bus extensions which may have resulted in dropped cluster packets by @madolson (#2144)
100+
* Converge divergent shard-id persisted in nodes.conf to primary's shard ID by @hpatro (#2174)
101+
* Fix replica can't finish failover when config epoch is outdated by @enjoy-binbin (#2178)
102+
* Fix CLUSTER SLOTS/NODES showing wrong port after updating port/tls-port by @enjoy-binbin (#2186)
103+
* Fix use-after-free when active expiration triggers hashtable to shrink by @gusakovy (#2257)
104+
* Redact user data when a module crashes for not handling I/O errors enabled by @YueTang-Vanessa (#2274)
105+
* Generate a new shard_id when the replica executes CLUSTER RESET SOFT by @enjoy-binbin (#2283)
106+
* Fix missing response when AUTH returns an error inside a transaction by @enjoy-binbin (#2287)
107+
* Fix memory leak when shrinking a hashtable without entries by @yzc-yzc (#2288)
108+
* Fix MEMORY USAGE to consider embedded keys by @yulazariy (#2290)
109+
* Fix replicas claiming to still have slots after manual failover by @enjoy-binbin (#2301)
110+
* Prevent bad memory access when NOTOUCH client gets unblocked by @uriyage (#2347)
111+
* Fix large allocations crashing Valkey during active defrag by @Fusl (#2353)
112+
113+
### Build and Tooling
114+
* Support for RDB analysis reports by @artikell (#1743)
115+
* Implement RPS control for valkey-benchmark by @artikell (#1761)
116+
* valkey-cli: ensure output ends with a newline if missing when printing reply by @xbasel (#1782)
117+
* Drop lua object files on clean by @secwall (#1812)
118+
* Check both arm64 and aarch64 for ARM based system architecture by @eifrah-aws (#1829)
119+
* Add --sequential option to valkey-benchmark to support populating entire keyspace by @SoftlyRaining (#1839)
120+
* Support environment variable VALKEYCLI_AUTH alongside REDISCLI_AUTH in valkey-cli by @HiranmoyChowdhury (#1995)
121+
* Add MGET test to valkey-benchmark by @zuiderkwast (#2015)
122+
* Add support to send multiple arbitrary commands to valkey-benchmark by @zuiderkwast (#2057)
123+
* Support RDMA for valkey-cli and benchmark by @pizhenwei (#2059)
124+
* Support MPTCP for valkey-cli and benchmark by @pizhenwei (#2067)
125+
* Allow valkey-benchmark to support multiple random (or sequential) placeholders by @SoftlyRaining (#2102)
126+
* Change default values of valkey-cli to use valkey naming, and added fallback to old values by @avifenesh (#2334)
127+
* Fix duplicate Acks for RDMA events and fix extremely large max latency for RDMA benchmark (#2430)
128+
129+
### Behavior Change
130+
* Move auth check to the front, before command exist/arity/protected check by @enjoy-binbin (#1475)
131+
* Include command fullname in error message when returning errors in multi-execs by @enjoy-binbin (#2286)
132+
* Add STALE command flag to SCRIPT-EXISTS, SCRIPT-SHOW and SCRIPT-FLUSH by @enjoy-binbin (#2419)
133+
134+
### Contributors
135+
* Ran Shidlansik @ranshid
136+
* Binbin @enjoy-binbin
137+
* Jacob Murphy @murphyjacob4
138+
* Madelyn Olson @madolson
139+
* YueTang-Vanessa @YueTang-Vanessa
140+
* cxljs @cxljs
141+
* Sarthak Aggarwal @sarthakaggarwal97
142+
* amanosme @amanosme
143+
* Hanxi Zhang @hanxizh9910
144+
* Seungmin Lee @sungming2
145+
* uriyage @uriyage
146+
* Katie Holly @Fusl
147+
* Nicky-2000 @Nicky-2000
148+
* Allen Samuels @allenss-amazon
149+
* yzc-yzc @yzc-yzc
150+
* zhaozhao.zz @soloestoy
151+
* asagegeLiu @asagege
152+
* nitaicaro @nitaicaro
153+
* Matthew @utdrmac
154+
* Omkar Mestry @omanges
155+
* Viktor Söderqvist @zuiderkwast
156+
* kukey @kukey
157+
* Harkrishn Patro @hpatro
158+
* Avi Fenesh @avifenesh
159+
* Amit Nagler @naglera
160+
* Josh Soref @jsoref
161+
* youngmore1024 @youngmore1024
162+
* Rain Valentine @SoftlyRaining
163+
* skyfirelee @artikell
164+
* Wen Hui @hwware
165+
* yulazariy @yulazariy
166+
* Yakov Gusakov @gusakovy
167+
* charsyam @charsyam
168+
* Simon Baatz @gmbnomis
169+
* Thalia Archibald @thaliaarchi
170+
* chzhoo @chzhoo
171+
* xbasel @xbasel
172+
* Stav Ben-Tov @stav-bentov
173+
* wuranxx @wuranxx
174+
* Ayush Sharma @ayush933
175+
* chx9 @chx9
176+
* KarthikSubbarao @KarthikSubbarao
177+
* Hüseyin Açacak @huseyinacacak-janea
178+
* アンドリー・アンドリ @odaysec
179+
* Ping Xie @PingXie
180+
* Lipeng Zhu @zhulipeng
181+
* Linus Unnebäck @LinusU
182+
* Vitah Lin @vitahlin
183+
* kronwerk @kronwerk
184+
* Vadym Khoptynets @poiuj
185+
* muelstefamzn @muelstefamzn
186+
* zhenwei pi @pizhenwei
187+
* George Padron @DoozkuV
188+
* Björn Svensson @bjosv
189+
* aradz44 @aradz44
190+
* Hiranmoy Das Chowdhury @HiranmoyChowdhury
191+
* Yair Gottdenker @yairgott
192+
* Roshan Khatri @roshkhatri
193+
* nesty92 @nesty92
194+
* carlosfu @carlosfu
195+
* Arthur Lee @arthurkiller
196+
* Shai Zarka @zarkash-aws
197+
* Sergey Kolosov @skolosov-snap
198+
* Nathan Scott @natoscott
199+
* lucasyonge @lucasyonge
200+
* WelongZuo @WelongZuo
201+
* Jim Brunner @JimB123
202+
* jeon1226 @jeon1226
203+
* Benson-li @li-benson
204+
* Meinhard Zhou @MeinhardZhou
205+
* Nikhil Manglore @Nikhil-Manglore
206+
* Bogdan Petre @bogdanp05
207+
* eifrah-aws @eifrah-aws
208+
* Ricardo Dias @rjd15372
209+
* secwall @secwall
210+
* Anastasia Alexandrova @nastena1606
211+
* Marek Zoremba @zori-janea
212+
* VoletiRam @VoletiRam

src/version.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
* similar. */
55
#define SERVER_NAME "valkey"
66
#define SERVER_TITLE "Valkey"
7-
#define VALKEY_VERSION "255.255.255"
8-
#define VALKEY_VERSION_NUM 0x00ffffff
7+
#define VALKEY_VERSION "9.0.0"
8+
#define VALKEY_VERSION_NUM 0x00090000
99
/* The release stage is used in order to provide release status information.
1010
* In unstable branch the status is always "dev".
1111
* During release process the status will be set to rc1,rc2...rcN.
1212
* When the version is released the status will be "ga". */
13-
#define VALKEY_RELEASE_STAGE "dev"
13+
#define VALKEY_RELEASE_STAGE "rc1"
1414

1515
/* Redis OSS compatibility version, should never
1616
* exceed 7.2.x. */

0 commit comments

Comments
 (0)