Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fast data access prototype #7

Merged
merged 24 commits into from
May 23, 2022
Merged

Fast data access prototype #7

merged 24 commits into from
May 23, 2022

Conversation

emilk
Copy link
Member

@emilk emilk commented May 22, 2022

A new data store which is homogeneous (same type at each type path) and supports batching for fast logging of a lot of data.

@emilk emilk marked this pull request as ready for review May 23, 2022 15:09
@emilk emilk merged commit 26639e9 into main May 23, 2022
@emilk emilk deleted the fast-data-access branch May 23, 2022 15:10
@emilk emilk mentioned this pull request Jan 24, 2023
emilk added a commit that referenced this pull request Jan 5, 2024
### What
In order to investigate #4415 I
wanted to reproduce it.

This PR adds a benchmark that inserts many rows using the same
timepoint, either in-order or shuffled.

I also fixed a "bug" in the existing insertion benchmarks, which
accidentally were _also_ measuring the time to call `DataTable::to_rows`
(and collect the result), which was about 10% of the measured time.

---

5950X pinned to core #7 / Arch:
```
datastore/num_rows=1000/num_instances=1/shuffled=false/insert_same_time_point/insert      1.00  1641.2±28.89µs 595.0 KElem/sec
datastore/num_rows=1000/num_instances=1/shuffled=true/insert_same_time_point/insert       1.00      3.0±0.04ms 328.4 KElem/sec
datastore/num_rows=10000/num_instances=1/shuffled=false/insert_same_time_point/insert     1.00     27.1±1.59ms 361.0 KElem/sec
datastore/num_rows=10000/num_instances=1/shuffled=true/insert_same_time_point/insert      1.00    162.5±1.23ms 60.1 KElem/sec
```

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using newly built examples:
[app.rerun.io](https://app.rerun.io/pr/4676/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/4676/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/4676/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4676)
- [Docs
preview](https://rerun.io/preview/75ba0c0685dbea827b473270b1b350e348e72974/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/75ba0c0685dbea827b473270b1b350e348e72974/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

---------

Co-authored-by: Clement Rey <cr.rey.clement@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant