-
Notifications
You must be signed in to change notification settings - Fork 3
/
CRDT-RELEASENOTES
194 lines (176 loc) · 13.3 KB
/
CRDT-RELEASENOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
XRedis-CRDT 1.0 release notes
=======================
--------------------------------------------------------------------------------
Upgrade urgency levels:
LOW: No need to upgrade unless there are new features you want to use.
MODERATE: Program an upgrade of the server, but it's not urgent.
HIGH: There is a critical bug that may affect a subset of users. Upgrade!
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
--------------------------------------------------------------------------------
================================================================================
================================================================================
XRedis-CRDT 1.0.22 Released Sun Jun 23 10:32:40 AM CST 2024
* [feature] crdt.zincrby, crdt.counter add protocol attributes (data results) to support migration of crdt data to ordinary redis
================================================================================
* [hotfix] Fixed the problem of returning an error when the time is a negative number in the setex command
================================================================================
XRedis-CRDT 1.0.20 Released Thu Jan 25 11:13:23 CST 2024
================================================================================
Upgrade urgency HIGH:Compared with the previous version, there are some improvements, mainly:
* [hotfix] Use the hdel command to delete non-existent keys. The generated tombstone cannot be gc
================================================================================
XRedis-CRDT 1.0.19 Released Tue May 30 20:29:27 CST 2023
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [feature] The time used by the tombstone generated by the deletion that occurs when it expires is the expiration time (not the time when the deletion was performed)
* [feature] Execution of user commands triggers expiration, and execution of synchronous commands does not trigger expiration
================================================================================
XRedis-CRDT 1.0.18 Released Fri May 19 13:51:15 CST 2023
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [feature] The master that writes data last has priority over expiration (other masters are delayed)
* [feature] Execute user commands to trigger expiration, and execute synchronous commands to delay expiration
* [hotfix] Take the maximum when the expiration conflicts
================================================================================
XRedis-CRDT 1.0.17 Released Mon Mar 13 13:53:17 CST 2023
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [hotfix] statck overflow (counter type value set big string)
* [feature] random select proxy
* [hotfix] exec (config get *) command return string
================================================================================
XRedis-CRDT 1.0.16 Released Wed Nov 2 10:57:54 CST 2022
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [feature] support the offline gid function
================================================================================
XRedis-CRDT 1.0.15 Released Fri Apr 1 15:31:09 CST 2021
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [feature] xpipe-proxy can be used to connect other peer instances
* [feature] expire hist_rate 25%->10%
================================================================================
XRedis-CRDT 1.0.14 Released Mon Jul 26 15:31:09 CST 2021
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [bugfix] When the master and peer are disconnected, perform incremental synchronization after slave switching, master crash
* [feature] The exists command code is updated to 4.0.12
================================================================================
================================================================================
XRedis-CRDT 1.0.13 Released Mon May 10 14:02:54 CST 2021
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
* [fix] When the slave restarts and performs incremental synchronization with the master, it may cause data loss
* [feature] Peerof will be delayed after restarting redis
================================================================================
================================================================================
XRedis-CRDT 1.0.12 Released Mon Apr 19 11:46:48 CST 2021
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [feature] when the memory exceeds maxmemory, tombstone is removed first
* [feature] Master-slave and master-peer limit simultaneous execution of full synchronization
* [fix] when restarting crdt-redis server, if the rdb of ordinary redis is loaded, the loading is skipped
================================================================================
================================================================================
XRedis-CRDT 1.0.11 Released Thu Feb 4 14:31:37 CST 2021
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [feature] Increase the data return function, when the local computer room accidentally loses data, the local computer room data can be restored through other computer rooms
* [feature] add hsetnx and hexists command
================================================================================
================================================================================
XRedis-CRDT 1.0.10 Released Thu Feb 4 14:31:37 CST 2021
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
Major things:
* [bugfix] redis-server crash when the zrange command uses wrong parameters
================================================================================
XRedis-CRDT 1.0.9 Released Sun Dec 13 23:42:49 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [feature] add kv object supports counter related commands
* [feature] add data structure of sorted set scores
* [feature] add data structure of set
================================================================================
XRedis-CRDT 1.0.8 Released Mon Nov 9 17:40:18 CST 2020
================================================================================
Upgrade urgency HIGH: Compared with the previous version, there are some improvements, mainly:
Major things:
* [bugfix] master and slave or master and master synchronization fail When copying binary data memory, copy to \0 even if there is more data
* [bugfix] redis-server crash when use the wrong gid after del and hset conflict is resolved
================================================================================
XRedis-CRDT 1.0.7 Released Fri Sep 11 19:29:37 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [feature] multi/exec supported for crdt circumstance.
* [opt] rdb dump/load accelarate by optimizing vector-clock's serialize/deserialize function
* [opt] rdb dump/load accelarate by optimizing CRC64 algorithm
* [opt] value/tombstone is now a non co-exist peer
* [bugfix] master-master full sync would lead to a data inconsis.(previous mechanism will ignore crdt objects with diff gid. however, same key merge during one full sync before the other, would cause a skipping crdt object due to the gid is not its own)
* [bugfix] fix the issue when we're retriving data from normal(open-source) redis server master, that stream would be doubled by the origin op and crdt op.
================================================================================
XRedis-CRDT 1.0.6 Released Sat Aug 29 21:04:25 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [bugfix] redis-server crash when load non-crdt hash object(encoding=obj_encoding_ht)
* [bugfix] redis-server crash when hashtombstone and kv value merge
* [opt] master_is_crdt default is true
================================================================================
XRedis-CRDT 1.0.5 Released Sat Aug 8 20:59:30 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* [bugfix] a out-of-bound memory access will happen when loading RDB file.
* [opt] master-master psync: an enhanced partial sync implementation is now allowed for master-master replication while master-slave switching.
* slave now is able to record offsets for peer-masters replication.
* PSYNC2.0 also works for master-master replication.
* [opt] shrink down conflict by reducing simutenously expiration.
* [opt] seeking for peer-master is theoretically faster than before.
* [opt] better performance for master-master replication stream offset calculation.
================================================================================
XRedis-CRDT 1.0.4 Released Tue Jun 9 15:58:31 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* fix free crdtServer backlog bug when slave turning into master
* speed up set, mset and hset command
* added namespace attribute to limit the scope of peer replication
* add module memory statistics
================================================================================
XRedis-CRDT 1.0.3 Released Tue Jun 9 15:58:31 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* crdtServer and server now shares a same repl_id and repl_id2
* reduce log by ignoring expire conflict when merge
* crdt slave now will consider it as master if its master is norm redis
The last change includes a little tricky change that, though we consider the crdt redis slave as a master(when its master is a original redis),
there's still a piece of special logic for stable expire data.
Which, as a consequnce, redis will create another global dict to store keys when receiving expire commands as a slave,
and the dict will never be freed once the redis turning into a master.
In this circumstance, we surely will cause a mem leak, as we're actually transfering the RDB into commands, to make original redis'
RDB compitable for CRDT ones, thus, expire command is executing on crdt server which will consider itself as a slave previously.
Finally, the fix is simple, we make crdt redis thought it was a master when it's actually a slave of an original redis.
================================================================================
XRedis-CRDT 1.0.1 Released Tue Jun 2 16:50:51 CST 2020
================================================================================
Upgrade urgency LOW: Compared with the previous version, there are some improvements, mainly:
Major things:
* Support non-crdt redis syncing data to crdt redis as master.
* Support loading RDB files with non-crdt data and crdt data.
* Optimize kv data structure to shrink down mem use.
* Support for expire functionalities under CRDT mode.
* Optimize vector clock to decrease mem use.
================================================================================
XRedis-CRDT 1.0.2 Released Thu Nov 14 11:17:40 CST 2019
(should be version 0.0.2 updated by Tue Jun 2 16:50:51 CST 2020)
================================================================================
This version aim to address the issue, that a crash would happen due to networking writing when full sync with peers.
Root cause of this issue, is because the author(which is me) stupidly considered the write work as an "must-be" stuff. The idea comes from the piece of code that I copied from 'cluster.c', which, after serious struggling understanding the proposal of the original code, that I finally figure it out, was actually writing into a rio wrapped 'sds'. Of course, it'll work, as if a writing failure with mem means Redis is predictable not working any more.
CRITICAL: Redis would crash during peer full sync.
Chen Zhu