You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Let other people use the actions runner after we're done with it
Specifically, we chmod the git repo directory to a+rw after we touch it in the callgrind benchmarks action.
This is needed because the callgrind benchmarks run as root in a docker container. Github Actions tries to reuse the resulting directory (and I guess stores it on the host?) afterwards, but now the git repo is owned by root and can't be modified, which causes other benchmarks to break.
This issue was pointed out by @coolreader18.
(Note: we can't just chown the git repo, because we're inside a docker image, so who would we chown to?)
Remove residual references to moved code in the benchmarks & callgrind benchmarks actions.
I pulled out the markdown-report[-callgrind] commands from the benches/summarize bin in my last callgrind PR -- they've moved to another repo -- but there were residual references to them in these ymls, despite the resulting reports not being used. I'm not sure why that didn't cause errors for that PR, but the residual references are gone now.
These benchmarks were run using callgrind,
an instruction-level profiler. They allow comparisons between sqlite (sqlite), SpacetimeDB running through a module (stdb_module),
and the underlying SpacetimeDB data storage engine (stdb_raw).
Of these, sqlite is the least noisy, stdb_raw is intermediate, and stdb_module is the noisiest. This is due to uncontrollable nondeterminism,
such as thread ordering and filesystem interactions.
Note: there are currently a minimal number of stdb_module benchmarks, pending a fix for an unfortunate interaction between callgrind and sled.
Their benchmark numbers are correct, just expensive to collect.
Legend:
preload: number of rows pre-loaded into the database.
count: number of rows touched by a transaction.
index types:
unique: a single, unique index on the id column.
non_unique: non-unique, no indexes.
btrees: non-unique, separate btree index on every column. (Not a multi-column index!)
schemas:
person(id: u32, name: String, age: u64) is a small row containing a string.
location(id: u32, x: u64, y: u64) is a small row containing some ints.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Changes
This fixes two things:
Let other people use the actions runner after we're done with it
Specifically, we chmod the git repo directory to a+rw after we touch it in the callgrind benchmarks action.
This is needed because the callgrind benchmarks run as root in a docker container. Github Actions tries to reuse the resulting directory (and I guess stores it on the host?) afterwards, but now the git repo is owned by root and can't be modified, which causes other benchmarks to break.
This issue was pointed out by @coolreader18.
(Note: we can't just chown the git repo, because we're inside a docker image, so who would we chown to?)
Remove residual references to moved code in the benchmarks & callgrind benchmarks actions.
I pulled out the
markdown-report[-callgrind]commands from thebenches/summarizebin in my last callgrind PR -- they've moved to another repo -- but there were residual references to them in these ymls, despite the resulting reports not being used. I'm not sure why that didn't cause errors for that PR, but the residual references are gone now.This issue was pointed out by @cloutiertyler.