Release 2.0.0
Release Note
NOTE: 2.0.0 is backward-compatible only, which means servers upgraded to this version can't rollback to previous versions.
To see the detailed release information, please refer to #536.
The following are the highlights in this release:
Duplication
Duplication is the solution of Pegasus for intra-cluster data copying in real-time. We currently limit our master-master duplication for 'PUT' and 'MULTI_PUT' only. See this document for more details:
https://pegasus-kv.github.io/administration/duplication.
Backup Request
Backup Request is a way to eliminate tail latency by sacrificing minor data consistency, fallback reading from a random secondary when the primary read failed to finish at the expected time.
See the discussion here: #251.
RocksDB Meta CF
Pegasus currently has a hacked version of RocksDB that stores a few metadata in the manifest file, which makes our RocksDB incompatible with the official version. In this version, we exploit an additional column family (called 'Meta CF') to store those metadata.
To finally get rid of the legacy RocksDB, you must first upgrade the ReplicaServer to 2.0.0.
Bloom Filter Optimization
This time we support metrics for the utilization of bloom filters in Pegasus. And for critical scenarios, we provide configurations for performance tuning on bloom filters.
See #522, #521.
Cold-Backup FDS Limit
This feature adds throttling on download and upload during cold-backup.
See XiaoMi/rdsn#443.
Adding Node Optimization
We previously suffer from the effect brought by data migration when adding one or more nodes into a cluster. In some latency-critical scenarios (here we mostly focus on read-latency) this (3~10 times increase in latency) usually implies the service briefly unavailable.
In 2.0.0 we support a strategy that the newly added nodes do not serve read requests until most migrations are done. Although the new nodes still participate in write-2PC and the overall migration workload doesn't decrease, the read latency significantly improved thanks to this job.
Be aware that this feature requires merely pegasus-tools to be 2.0.0, you don't have to upgrade the server to 2.0.0. See #528.