Skip to content

Commit dc846cf

Browse files
authored
Valkey release 8.1.0-rc1 (#1713)
This is the PR for 8.1.0 release. It includes: 1. Release note changes 2. version changes --------- Signed-off-by: Ran Shidlansik <[email protected]>
1 parent c5ae37f commit dc846cf

File tree

2 files changed

+140
-14
lines changed

2 files changed

+140
-14
lines changed

00-RELEASENOTES

Lines changed: 137 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,142 @@
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 8.1 release notes
2+
========================
3+
--------------------------------------------------------------------------------
4+
Upgrade urgency levels:
5+
LOW: No need to upgrade unless there are new features you want to use.
6+
MODERATE: Program an upgrade of the server, but it's not urgent.
7+
HIGH: There is a critical bug that may affect a subset of users. Upgrade!
8+
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
9+
SECURITY: There are security fixes in the release.
10+
--------------------------------------------------------------------------------
311

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.
712

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:
13+
================================================================================
14+
Valkey 8.1.0 RC1 - Released Thu 11 Feb 2025
15+
================================================================================
16+
Upgrade urgency LOW: This is the first release candidate of Valkey 8.1, with
17+
performance improvements, extended observability and cluster improvements and different bug fixes.
18+
It includes a new implementation of the Valkey dictionary which is more memory and cache efficient,
19+
better performance for encryption in transit, reduced replication overhead by offloading work to I/O threads,
20+
faster failover support in cluster mode, major improvements to the active defrag process to reduce the impact on command processing,
21+
different API changes for improved usability and ability to track large requests and replies.
22+
Valkey now supports new new check-and-set feature for native STRINGs.
1123

12-
https://valkey.io/download/
24+
API and Interface changes
25+
=========================
26+
* Introduce cancel argument to bgsave command (#757)
27+
* Add conditional update support to the `SET` command using `IFEQ` argument (#1324)
28+
* Add more filters to `CLIENT LIST` (#1401)
29+
* Add `availability_zone` to the HELLO response (#1487)
1330

14-
More information is available at https://valkey.io
31+
Observability and Monitoring changes
32+
====================================
33+
* Extend `LATENCY LATEST` to add sum / cnt stats (#1570)
34+
* Add `paused_actions` and `paused_timeout_milliseconds` for `INFO CLIENTS` (#1519)
35+
* Add paused_reason to `INFO CLIENTS` (#1564)
36+
* Added `COMMANDLOG` to record slow executions and large requests/replies (#1294)
37+
* Fix cluster info sent stats for message with light header (#1563)
38+
* Add latency stats around cluster config file operations (#1534)
39+
* Add new flag in `CLIENT LIST` for import-source client (#1398)
40+
* Show client capabilities in `CLIENT LIST` / `CLIENT INFO` (#1698)
1541

16-
Happy hacking!
42+
Performance/Efficiency Improvements - Core
43+
==========================================
44+
* Introduce a new memory efficient hash table to store keys (#1186)
45+
* Accelerate hash table iterator with prefetching (#1501)
46+
* Accelerate hash table iterator with value prefetching (#1568)
47+
* Replace dict with new hashtable: hash datatype (#1502)
48+
* Replace dict with new hashtable for sets datatype (#1176)
49+
* Replace dict with new hashtable: sorted set datatype (#1427)
50+
* Free strings during BGSAVE/BGAOFRW to reduce copy-on-write (#905)
51+
* Create an empty lua table with specified initial capacity as much as possible (#1092)
52+
* Move prepareClientToWrite out of loop for HGETALL command (#1119)
53+
* Improved hashing algorithm for Lua tables (#1168)
54+
* Replace dict with new hashtable for sets datatype (#1176)
55+
* Do security attack check only when command not found to reduce the critical path. (#1212)
56+
* Trim free space from inline command argument strings to avoid excess memory usage (#1213)
57+
* Increase the max number of io threads to 256. (#1220)
58+
* Refactor of ActiveDefrag to reduce latencies (#1242)
59+
* Integrate fast_float to optionally replace strtod (#1260)
60+
* Improvements for TLS with I/O threads (#1271)
61+
* Optimize PFCOUNT, PFMERGE command by SIMD acceleration (#1293)
62+
* Optimize sdscatrepr by batch processing printable characters (#1342)
63+
* Optimize ZRANK to avoid path comparisons (#1389)
64+
* Move clientCron onto a separate timer (#1387)
65+
* Client struct: lazy init components and optimize struct layout (#1405)
66+
* Offload reading the replication stream to IO threads (#1449)
67+
* Skip CRC checksumming during diskless full sync with TLS enabled. (#1479)
68+
69+
New/Modified configurations
70+
===========================
71+
* Deprecate `io-threads-do-reads`, which has no effect since io threads will now always do reads. (#1138)
72+
* Introduce `import-mode` config to avoid expiration and eviction during data syncing (#1185)
73+
* Introduce new `rdb-version-check` config which allows for relaxed RDB version verification (#1604)
74+
* Deprecate `dynamic-hz`, since server cron jobs are handled dynamically by default (#1387)
75+
* Introduce `log-format` and `log-timestamp-format` to control the log format (#1022)
76+
* Introducing `active-defrag-cycle-us` for more fine-grinned control of memory defragmentation run time (#1242)
77+
* Introduce new configurations to control the new `COMMANDLOG` reporting thresholds (#1294)
78+
79+
Build and Packaging changes
80+
=================================
81+
* Introduce CMake build system for valkey (#1196)
82+
* RDMA builtin support (#1209)
83+
* Fix Valkey binary build workflow, version support changes. (#1429)
84+
* Remove Valkey specific changes in jemalloc source code (#1266)
85+
86+
Module Improvements
87+
===================
88+
* Add API UpdateRuntimeArgs for updating the module arguments during runtime (#1041)
89+
* Add support for MustObeyClient Module API (#1582)
90+
* Adds support for scripting engines as Valkey modules (#1277, #1497)
91+
92+
Cluster improvements
93+
====================
94+
* Do election in order based on failed primary rank to avoid voting conflicts (#1018)
95+
* Make replica `CLUSTER RESET` flush async based on `lazyfree-lazy-user-flush` (#1190)
96+
* Trigger the election as soon as possible when doing a forced manual failover (#1067)
97+
* Make manual failover reset the on-going election to promote failover (#1274)
98+
* Brocast a PONG to all node in cluster when role changed (#1295)
99+
* Manual failover vote is not limited by two times the node timeout (#1305)
100+
* Automatic failover vote is not limited by two times the node timeout (#1356)
101+
102+
Behavior Changes
103+
================
104+
* Streams use an additional 8 bytes to track their internal size (#688)
105+
* Take hz into account in activerehashing to avoid CPU spikes (#977)
106+
* Incr `expired_keys` if the expiration time is already expired (#1517)
107+
* Fix replica not able to initiate election in time when epoch fails (#1009)
108+
* Make `FUNCTION RESTORE FLUSH` flush async based on `lazyfree-lazy-user-flush` (#1254)
109+
* Allow `MEMORY MALLOC-STATS` and `MEMORY PURGE` during loading phase (#1317)
110+
* Use `DEEPBIND` flag when loading external modules in order to avoid symbol conflicts (#1703)
111+
112+
113+
Logging and Tooling Improvements
114+
================================
115+
* Remove the restriction that cli --cluster create requires at least 3 primary nodes (#1075)
116+
* Add short client info log to CLUSTER MEET / FORGET / RESET commands (#1249)
117+
* Support for reading from replicas in valkey-benchmark (#1392)
118+
* valkey-cli will now re-select previously selected database after reconnect (#1694)
119+
* valkey-cli will now auto-exit from subscribed mode when there are no more active subscriptions (#1432)
120+
121+
Bug Fixes
122+
=========
123+
* Mark the node as FAIL when the node is marked as NOADDR and broadcast the FAIL (#1191)
124+
* [Bug Fix] Optimize RDB Load Performance and Fix Cluster Mode Resizing (#1199)
125+
* Log as primary role (M) instead of child process (C) during startup (#1282)
126+
* Fix empty primary may have dirty slots data due to bad migration (#1285)
127+
* RDMA: Fix dead loop when transfer large data (20KB) (#1386)
128+
129+
We appreciate the efforts of all who contributed code to this release!
130+
131+
Karthik Subbarao (KarthikSubbarao), Xuyang WANG (Nugine), Yury Fridlyand (Yury-Fridlyand), Ben Totten (bentotten), Danish Mehmood (danish-mehmood),
132+
Eran Ifrah (eifrah-aws), gmbnomis, kronwerk, Stefan Mueller (muelstefamzn), Ran Shidlansik (ranshid), secwall, Tal Shachar (talxsha),
133+
Uri Yagelnik (uriyage), Basel Naamna (xbasel), Alan Scherger (flyinprogrammer), Amit Nagler (naglera), Binbin (enjoy-binbin),
134+
Caiyi Wu (Codebells), Guillaume Koenig (knggk), Harkrishn Patro (hpatro), Jacob Murphy (murphyjacob4), Jim Brunner (JimB123), Josef Šimánek (simi),
135+
Jungwoo Song (bluayer), Karthick Ariyaratnam (karthyuom), Lipeng Zhu (lipzhu), Madelyn Olson (madolson), Masahiro Ide (imasahiro), Melroy van den Berg (melroy89),
136+
Mikhail Koviazin (mkmkme), Nadav Gigi (NadavGigi), Nadav Levanoni (nadav-levanoni), Nikhil Manglore (Nikhil-Manglore), Parth Patel (parthpatel), Pierre (pieturin),
137+
Ping Xie (PingXie), Qu Chen (QuChen88), Rain Valentine (SoftlyRaining), Ray Cao (RayaCoo), Ricardo Dias (rjd15372), Romain Geissler (Romain-Geissler-1A),
138+
Roman Gershman (romange), Roshan Khatri (roshkhatri), Rueian (rueian), Sarthak Aggarwal (sarthakaggarwal97), Seungmin Lee (sungming2), Shai Zarka (zarkash-aws),
139+
Shivshankar (Shivshankar-Reddy), Sinkevich Artem (ArtSin), Stav Ben-Tov (stav-bentov), Thalia Archibald (thaliaarchi), Vadym Khoptynets (poiuj),
140+
Viktor Söderqvist (zuiderkwast), Viktor Szépe (szepeviktor), Vu Diep (vudiep411), Wen Hui (hwware), Yanqi Lv (lyq2333), Zvi Schneider (zvi-code),
141+
bodong.ybd (yangbodong22011), chx9 (chx9), otheng (otheng03), skyfirelee (artikell), xingbowang (xingbowang), zhaozhao.zz (soloestoy), zhenwei pi(pizhenwei),
142+
zixuan zhao (azuredream), 烈香 (hengyoush), 风去幽墨 (fengquyoumo)

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 "8.1.0"
8+
#define VALKEY_VERSION_NUM 0x00080100
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)