Releases: Tencent/phxpaxos
Releases · Tencent/phxpaxos
Release 1.1.3
Release 1.1.2
Features
- Support multi thread for tcp io
Enhancement
-
Multiple groups are initialized in parallel
-
Rewrite Time::MsSleep with std::thread
-
Rewrite SerialLock and Queue with condition_variable_any
-
More initialization checks
Bug fixes
- Node::RunNode fail will cause a memory leak
Release 1.1.1
1.1.0 版本提交的代码出现了点小错误,如使用了上一版本代码的请立即更新此版本,抱歉。
Features
- Batch propose.
- Learn faster.
- bugfix.
此版本带来了一个新的特性,提供一个批量提交接口,但是形式上和单次提交接口一致,由内部自动完成批量逻辑,从而大幅降低写盘次数以及网络通信次数,提高吞吐。该接口已在微信生产环境稳定执行超过万亿次。
修复了一个重大BUG,某些编译环境下会导致单调时间获取不正确,从而使得设置了CLOCK_MONOTONIC的condition工作不正常,表现为运行卡死,Master无法选举等。如出现类似现象的,建议立即更新此版本。
Release 1.0.2
Features
- Purely based on Paxos Made Simple by Lamport.
- Transfering message in a async mechanism architecture.
- Using
fsync
to guarantee the correctness in every IO write operations. - Latency of a successful
Propose
is one RTT and one IO write. - Using P2P stream protocol to learn paxos log.
- Cleaning
Checkpoint
andPaxosLog
automatically. - Pulling
Checkpoint
across nodes automatically. - Supporting more than one state-machines in a single PhxPaxos Instance.
- Supporting recover checkpoint by snapshot+paxoslog automatically.
- Implementing Master election as a state-machine embedded in PhxPaxos
- Implementing reconfiguration as a state-machine embedded in PhxPaxos
- Using signature algorithm embedded in PhxPaxos to recognise invalid hosts.
- Using checksum to verifying the data consistency of increment data in realtime.
- Implementing Network, Stroage, Monitor, Logging module as a plugin, they can be implemented customly
- Supporting overload protection in a self-adaption way.