Proto commits in dtprj/dongting

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