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
+ --------------------------------------------------------------------------------
3
11
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.
7
12
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.
11
23
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)
13
30
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)
15
41
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)
0 commit comments