Comments (3)
One thing that would be nice to have is some form of continuous benchmarking, so we can track changes in performance over time and have some feedback about improvements or deterioration.
There are helpers like:
https://github.com/marketplace/actions/continuous-benchmark
that could be useful to that extent.
from raft.
We have this https://github.com/canonical/go-dqlite/actions/workflows/daily-benchmark.yml , which is a bit rudimentary and we don't assert results as the results can vary pretty wildly from run to run. We think this is because we don't control the runner on which the tests run and don't know what else is running on the physical system while we use it. Ideally we want to run benchmarks on the same physical machine every day, so that we get comparable results. Cole and me have some dedicated hardware to do that, but we still need to set the benchmarking up.
Will check out the link, thanks.
from raft.
We have this https://github.com/canonical/go-dqlite/actions/workflows/daily-benchmark.yml , which is a bit rudimentary
Ah I didn't know about that. Seems a good starting point.
and we don't assert results as the results can vary pretty wildly from run to run.
Right, using Github Actions to run the benchmarks is of course sub-optimal, but given enough runs it should give an idea of the trend (improvement or regression). It couldn't reliably be used for assertions.
We think this is because we don't control the runner on which the tests run and don't know what else is running on the physical system while we use it.
Most probably that's the reason.
Ideally we want to run benchmarks on the same physical machine every day, so that we get comparable results. Cole and me have some dedicated hardware to do that, but we still need to set the benchmarking up.
That'd be better than using Github Actions runners indeed. I believe it's possible to tell Github Actions to use an external runner.
Will check out the link, thanks.
I didn't look at it in detail, but I'd expect that it should be possible to combine it with the benchmark code that we already run in the go-dqlite workflow you linked and get graphs out of it.
from raft.
Related Issues (20)
- missing getrandom on centos 7 HOT 1
- [question] Usage of raft_add, raft_remove, and raft_assign HOT 2
- [question] When is the first leader elected? HOT 2
- recvAppendEntries: Assertion `r->state == RAFT_FOLLOWER || r->state == RAFT_CANDIDATE` failed HOT 9
- [question] Forwarding request to leader HOT 8
- Potential use-after-free in handling of raft_transfer HOT 5
- Fix the 32-bit CI HOT 1
- can't build on m1 mac (`<linux/xxxxx.h>` is missing) HOT 3
- v1.x RFC: pull based approach HOT 5
- raft_start(): io: closed segment xxx is past last snapshot xxx HOT 4
- [question] Understanding how to add new servers HOT 15
- ./configure fails when no external dependency is found HOT 4
- Assertion: src/uv_truncate.c:168: UvTruncate: Assertion `index < uv->append_next_index' failed. HOT 3
- src/replication.c:457: getRequest: Assertion `req->type == type' failed. HOT 3
- src/log.c:87: refsTryInsert: Assertion `next_slot->term != term' failed. HOT 9
- Jepsen: Another truncate-related assertion failure
- [suggestion] add lock/unlock function pointers to raft_io (and use them) HOT 1
- `uvOsFallocateEmulation` taking too long time HOT 1
- CI: `xfs` test failures 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 raft.