Skip to content

release-1.0.3

Compare
Choose a tag to compare
@NickNYU NickNYU released this 09 Jun 09:51
· 937 commits to master since this release
cca98e7

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.