Comments (3)
@jintianfan Raft 论文中出现 “Figure 8”的场景是因为选举时,日志高度用的是 ComittedIndex,而DLedger 用的是 endIndex(也即当前日志高度,包含所有已经 Committed 的 Entry,可能包含部分未 Committed Entry),详情参考 DLedgerLeaderElector 的 handleVote 方法。
在这种选举标准下, “Figure 8” 中的 S5 是不可能被选为 Leader 的,而一旦一个 Entry 被复制到了 a majority of servers, 则永远不会被覆盖。
from dledger.
@jintianfan Truncate 是在与 当前 Leader 进行比对之后进行操作的。假设选举是可靠的,那么当前 Leader 就包含了所有有效的 Entry,作为 Follower,与当前 Leader 不一致的 Entry 都应该被丢弃,然后与Leader对齐。
from dledger.
@dongeforever 根据endIndex最打选择领导,
假如 一个客户端发起请求请求,三个主机 A (Leader),B(Follower), C(Follower),
Committed 只提交了 A,B ,但是主机C 没有提交,
1 在领导选举,节点B 选择新领导,在同任期情况下,针对此时Committed索引,可以复制到其他节点过充中,
因为是标记commited了,是否还需要继续地业务进行判断
(从客户端角度来说),业务返回成功,还是失败呢?
问题是:对于刚刚标记commited B(只复制A B,C没有请看下),复制到其他节点过(c)中,是否还考虑对业务返回操作成功(发现切换情况下)?
因为标记commited,不清楚是全部写入,还是部分写入
from dledger.
Related Issues (20)
- Complete snapshot implementation HOT 1
- Upgrade rocketmq version to 5.1.0
- Fix the bug because of enqueueing an unchecked commit task
- DLedger RPC Service thread stuck
- Recover data file failed,code=414,name=DISK_ERROR,desc=] pos 0 != 222296456325 HOT 2
- Support Jepsen Test to verify linearizability when open statemchine mode
- Missing detection of disk availability when sending heartbeats. HOT 2
- Support Register-Model server based on DLedger
- Add a switch to enable/disable snapshot feature
- Update quick-start in README
- batch append missing flow control
- Support Jepsen test based on Register-Model
- Add TPS and latency report in benchmark command
- Add DLedger Entry Type
- Support upper layer write entry and get response data when entry is applied
- Support fast advance commit index by appending no-op entry
- Support metrics
- Failed to generate java doc
- Optimize DLedgerLeaderElector.maintainAsCandidate Lock
- fix committedIndex after truncate HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dledger.