diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6066ddff5..5fdcde66e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,17 +16,6 @@ jobs: run: | make actions-test bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN - arm64-unit-test: - runs-on: self-hosted - steps: - - name: Install Go - uses: actions/setup-go@v2 - with: - go-version: 1.15.x - - name: Checkout code - uses: actions/checkout@v2 - - name: Test - run: make test race-unit-test: runs-on: ubuntu-18.04 steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 413267e2a..4c3261a5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Dragonboat v3.4 comes with many improvements. All v3.3.x users are recommended t ### New features -- Raft Pre-Vote support. +- Experimental Raft Pre-Vote support. ### Improvements diff --git a/README.CHS.md b/README.CHS.md index 693102d20..8811f5487 100644 --- a/README.CHS.md +++ b/README.CHS.md @@ -9,7 +9,6 @@ ## 项目新闻 ## * 2021-01-20 Dragonboat v3.3 已发布,请查看[CHANGELOG](CHANGELOG.md)获知所有更新情况。 -* 2020-03-05 Dragonboat v3.2 已发布,请查看[CHANGELOG](CHANGELOG.md)获知详情。 ## 关于 ## Dragonboat是一个高性能纯[Go](https://golang.org)语言实现的多组[Raft](https://raft.github.io/) [共识算法](https://en.wikipedia.org/wiki/Consensus_(computer_science))库。 diff --git a/README.md b/README.md index 1d44a02d6..8420dd1d9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ ## News ## * 2021-01-20 Dragonboat v3.3 has been released, please check [CHANGELOG](CHANGELOG.md) for all changes. -* 2020-03-05 Dragonboat v3.2 has been released, please check [CHANGELOG](CHANGELOG.md) for details. ## About ## Dragonboat is a high performance multi-group [Raft](https://raft.github.io/) [consensus](https://en.wikipedia.org/wiki/Consensus_(computer_science)) library in pure [Go](https://golang.org/). diff --git a/internal/raft/raft.go b/internal/raft/raft.go index c60066364..e1dcc92d2 100644 --- a/internal/raft/raft.go +++ b/internal/raft/raft.go @@ -538,7 +538,7 @@ func (r *raft) timeForElection() bool { return r.electionTick >= r.randomizedElectionTimeout } -func (r *raft) timeForHearbeat() bool { +func (r *raft) timeForHeartbeat() bool { return r.heartbeatTick >= r.heartbeatTimeout } @@ -629,7 +629,7 @@ func (r *raft) leaderTick() error { r.abortLeaderTransfer() } r.heartbeatTick++ - if r.timeForHearbeat() { + if r.timeForHeartbeat() { r.heartbeatTick = 0 if err := r.Handle(pb.Message{ From: r.nodeID, diff --git a/internal/transport/transport.go b/internal/transport/transport.go index 178fad9d4..e1ba4c09f 100644 --- a/internal/transport/transport.go +++ b/internal/transport/transport.go @@ -401,11 +401,14 @@ func (t *Transport) send(req pb.Message) (bool, failedSend) { if sq.rateLimited() { return false, rateLimited } + + sq.increase(req) + select { case sq.ch <- req: - sq.increase(req) return true, success default: + sq.decrease(req) return false, chanIsFull } }