Skip to content

Releases: ctripcorp/crdt-module

release-1.0.10

04 Feb 14:31
db6f84b
Compare
Choose a tag to compare

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

release-1.0.9

04 Feb 14:31
06d0358
Compare
Choose a tag to compare

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

release-1.0.8

09 Nov 10:57
Compare
Choose a tag to compare

================================================================================

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

release-1.0.7

11 Sep 11:34
Compare
Choose a tag to compare
================================================================================
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 accelerate by optimizing vector-clock's serialize/deserialize function
* [opt] rdb dump/load accelerate 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 retrieving data from normal(open-source) redis server master, that stream would be doubled by the origin op and crdt op.
* [bugfix] GC could cause a data inconsis when setting K on a non-tombstone site will propagate it to a tombstone site 

release-1.0.6

29 Aug 13:01
Compare
Choose a tag to compare

XRedis-CRDT 1.0.6 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

release-1.0.5

08 Aug 14:11
f0939a8
Compare
Choose a tag to compare

XRedis-CRDT 1.0.5 Release Note

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.

release-1.0.3

09 Jun 08:15
5ac178b
Compare
Choose a tag to compare

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.