These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
| Commit: | 5b85aad | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat(incompatible): add raftClusterId check to prevent misconfigured processes from flushing raft data
| Commit: | 1c7e7aa | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor(incompatible): remove raft ping rpc and use query status rpc for raft ping, remove RaftGroupConfig.raftPingCheck
| Commit: | 3adc1b8 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: rename QueryStatusResp lastError -> firstError
| Commit: | ff65c4f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
fix(incompatible): raft safety for config change: track persistedCommitIndex, reject vote for candidate with stale applied config, check old config members applied and persisted prepare log before commit joint consensus commitIndex is persisted to the status file asynchronously and may fall back after restart, so a node with stale applied config may organize an election with the old config quorum and cause split brain. - track persistedCommitIndex: the commitIndex known to be durable in status file or snapshot - vote rule: never vote for a candidate whose lastConfigChangeIndex is older, pre-vote included (VoteReq field 7) - before commit joint consensus, wait rwQuorum of old config members to apply and persist the prepare log (QueryStatusResp field 17), re-querying transiently not ready members - the prepare request waits members ready before it returns, so a following commit request passes the ready check immediately: readiness is monotonic - bump persistedCommitIndex when snapshot recovery advances commitIndex also fix: - StatusManager reads commitIndex with parseInt, which fails when commitIndex exceeds int range - ApplyManager waitApply flag: a satisfied waiter clears the shared flag, so other parked waiters miss the apply finish signal; replaced with a waiter count
| Commit: | 4d5a9af | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor(rpc incompatible): revert groupId from Packet header, use getGroupId from body Remove redundant groupId field from Packet wire protocol (IDX_GROUP_ID=9), which was introduced in 69635b911. The body is always decoded before process() is called, so routing without decoding body provides no benefit. The header groupId was 100% redundant with body groupId and caused the IDX_GROUP_ID shadowing bug fixed in 0b3838bb. Restore abstract getGroupId(ReadPacket<T>) in RaftProcessor, implemented by all 11 subclasses to extract groupId from the decoded body.
| Commit: | c105cff | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor(rpc incompatible): remove LogItem, append rpc use raft log format
| Commit: | 69635b9 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat(rpc incompatible): add groupId to Packet
| Commit: | ef311a7 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add lastError for QueryStatusResp
| Commit: | 4652978 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add last config change index to query status
| Commit: | 98d7c17 | |
|---|---|---|
| Author: | huangli | |
feat: add RAFT_ADMIN_LIST_NODES/RAFT_ADMIN_LIST_GROUPS commands
| Commit: | 967242a | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add flag to QueryStatusResp
| Commit: | 0cf6c0b | |
|---|---|---|
| Author: | huangli | |
feat: add KvNode.flag
| Commit: | 5d22320 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add ttl support in server side
| Commit: | ae1ea99 | |
|---|---|---|
| Author: | huangli | |
feat: add ttlMillis field to KvReq and KvReqCallback
| Commit: | de70cd6 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add uuid for NioClient
| Commit: | 41a6b84 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add createArrayList(int suggestedSize) to prevent client attack
| Commit: | d908212 | |
|---|---|---|
| Author: | huangli | |
refactor: KvReq encode/decode
| Commit: | bc86fce | |
|---|---|---|
| Author: | huangli | |
chore: add size field
| Commit: | da2d8ef | |
|---|---|---|
| Author: | huangli | |
refactor: add log_size for append req, define constants
| Commit: | 8c76d35 | |
|---|---|---|
| Author: | huangli | |
chore: uint32 -> int32
| Commit: | 2145455 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: use WatchManager.sync() instead of add/remove/syncAll
| Commit: | ea8660c | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add KvStatusResp
| Commit: | e5fa3b8 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add syncAllWatch
The documentation is generated from this commit.
| Commit: | 1d7c53d | |
|---|---|---|
| Author: | huangli | |
feat: add lastApplyTimeToNowMillis
| Commit: | 7dffe9c | |
|---|---|---|
| Author: | huangli | |
feat: add nodeId/apply_lag_nanos to QueryStatusResp
| Commit: | fc012b6 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add WatchProcessor
| Commit: | bbc0883 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add WatchManager
| Commit: | de4936f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add WatchReq/WatchNotifyPushReq
| Commit: | 7818221 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add raftIndex to write ops return value in KvClient
| Commit: | 1865f98 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: use int32 instead of uint32 in protobuf
| Commit: | 08f5d52 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: KvResp
| Commit: | 2e368f4 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add AdminGroupAndNodeProcessor
| Commit: | ec82877 | |
|---|---|---|
| Author: | huangli | |
refactor: simplification
| Commit: | a933b8a | |
|---|---|---|
| Author: | huangli | |
refactor: raft ping
| Commit: | 3c56645 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: node ping
| Commit: | 7f65c6b | |
|---|---|---|
| Author: | huangli | |
test: add admin config change to AdminClient
| Commit: | da4f1ec | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add admin config change
| Commit: | 41e4935 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add raft servers config in QueryStatusResp
| Commit: | c4ad636 | |
|---|---|---|
| Author: | huangli | |
feat: add AdminTransferLeaderProcessor
| Commit: | 340dced | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: raft ping static check include host and port
| Commit: | 3d727e6 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor & test & fix: dtkv gc
| Commit: | 2bf5d5e | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: add size for list encode in KvReq and KvResp
| Commit: | 3933281 | |
|---|---|---|
| Author: | huangli | |
refactor: remove reserved key in KvNode proto
| Commit: | dd69964 | |
|---|---|---|
| Author: | huangli | |
test & fix: KvNode/KvResult/KvResp encode/decode
| Commit: | bf39a15 | |
|---|---|---|
| Author: | huangli | |
feat: re-implements DtKV, part 12
| Commit: | 9d9b4bb | |
|---|---|---|
| Author: | huangli | |
feat: re-implements DtKV, part 11
| Commit: | 8f257c1 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: re-implements DtKV, part 6
| Commit: | 859cf8f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: re-implements DtKV, part 3
| Commit: | ca85937 | |
|---|---|---|
| Author: | huangli | |
feat: add bizCode field to Packet
| Commit: | 9b531c7 | |
|---|---|---|
| Author: | huangli | |
perf & refactor: cache AppendReq.Callback and AppendResp.Callback
| Commit: | 0f3a39f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: rename Frame -> Packet
| Commit: | f39aebe | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add handshake def
| Commit: | a3880c4 | |
|---|---|---|
| Author: | huangli | |
chore: remove useless file
| Commit: | e39dd35 | |
|---|---|---|
| Author: | huangli | |
chore: fix proto field name
| Commit: | ba9c30f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add SnapshotInfo
| Commit: | 8cc6beb | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: process member info of InstallSnapshotReq, don't send more request before first install request finished.
| Commit: | ed216e0 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
refactor: add AbstractAppendFrame, remove InstallSnapshotResp
| Commit: | 5c8bd0e | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: update InstallSnapshotReq add 4 fields
| Commit: | c92d6f3 | |
|---|---|---|
| Author: | huangli | |
feat: add next_write_pos field for install snapshot req
| Commit: | 70c2542 | |
|---|---|---|
| Author: | huangli | |
feat: add query status processor
| Commit: | 4337a9f | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
chore: update rpc proto def
| Commit: | 546d088 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add PutProcessor
| Commit: | 278efb6 | |
|---|---|---|
| Author: | huangli | |
feat: add GetProcessor
| Commit: | d63dcd9 | |
|---|---|---|
| Author: | huangli | |
chore: rename proto file
| Commit: | 8ea9ab1 | |
|---|---|---|
| Author: | huangli | |
feat: add extra for Frame
| Commit: | fd059a2 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
fix: index match algorithm
| Commit: | 09f541c | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: add biz type support, add RaftCodecFactory
| Commit: | 4b970bf | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
feat: WriteFrame supports use a smaller buffer to encode.
| Commit: | 7be8a92 | |
|---|---|---|
| Author: | huangli | |
feat & refactor: support biz header
| Commit: | e599d53 | |
|---|---|---|
| Author: | huangli | |
chore: fix test code compile error
| Commit: | 22323a3 | |
|---|---|---|
| Author: | huangli | |
impl of DefaultRaftLog, part 31, not finished. add LogItem.timestamp
| Commit: | eb58944 | |
|---|---|---|
| Author: | huangli | |
transfer leadership, part 2, add transfer leadership rpc
| Commit: | 290b05d | |
|---|---|---|
| Author: | huangli | |
raft ping check observers
| Commit: | 4e50163 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
rename
| Commit: | 9989e9b | |
|---|---|---|
| Author: | huangli | |
multi raft, part 6. not finished
| Commit: | bcabcc4 | |
|---|---|---|
| Author: | huangli | |
multi raft, part 5. not finished
| Commit: | 97df906 | |
|---|---|---|
| Author: | huangli | |
multi raft, part 3. not finished
| Commit: | 1c599f9 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
multi raft, part 1. not finished
| Commit: | ab52dcb | |
|---|---|---|
| Author: | huangli | |
separate raft ping and node ping, part 1, not finished.
| Commit: | 6bc77ef | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
raft snapshot support
| Commit: | 7666f26 | |
|---|---|---|
| Author: | huangli | |
pre vote support
| Commit: | e6d9c51 | |
|---|---|---|
| Author: | huangli | |
fix readBytes may be invoked multiple times with begin==true
| Commit: | 8944dfc | |
|---|---|---|
| Author: | huangli | |
implements raft thread read
| Commit: | df25ed4 | |
|---|---|---|
| Author: | huangli | |
server check timeout before process request; check timeout before write a response.
| Commit: | bf0c568 | |
|---|---|---|
| Author: | huangli | |
add timout field in Frame; drop request before IO write if timeout
| Commit: | 66487da | |
|---|---|---|
| Author: | huangli | |
raft implementation 6, not finished.
| Commit: | bb1a0da | |
|---|---|---|
| Author: | huangli | |
raft implementation 4, not finished.
| Commit: | d358538 | |
|---|---|---|
| Author: | huangli | |
raft implementation 2, not finished.
| Commit: | 371c3af | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
raft implementation 1, not finished.
| Commit: | cc3fb61 | |
|---|---|---|
| Author: | huangli | |
rename
| Commit: | 1173ff2 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
raft leader election skeleton
| Commit: | c94a6bf | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
raft init connection
| Commit: | 6fd18ef | |
|---|---|---|
| Author: | huangli | |
fix typo
| Commit: | 759ca83 | |
|---|---|---|
| Author: | huangli | |
change Frame.seq to fix32 type
| Commit: | 810f709 | |
|---|---|---|
| Author: | huangli | |
PbParser supports fixed32/fixed64
| Commit: | 58e2a48 | |
|---|---|---|
| Author: | huangli | |
| Committer: | huangli | |
zero copy during network read. part 3
| Commit: | 6051aa3 | |
|---|---|---|
| Author: | huangli | |
add author
| Commit: | e3ab15f | |
|---|---|---|
| Author: | huangli | |
frame encode
| Commit: | 56469e2 | |
|---|---|---|
| Author: | huangli | |
implements RpcPbCallback
| Commit: | d74499c | |
|---|---|---|
| Author: | huangli | |
NioServer channel read skeleton