toeverything / OctoBase

🐙 OctoBase is the open-source database behind AFFiNE, local-first, yet collaborative. A light-weight, scalable, data engine written in Rust.
https://octobase.dev
GNU Affero General Public License v3.0
1.37k stars 90 forks source link

feat: offload merge update in async #556

Closed darkskygit closed 1 year ago

vercel[bot] commented 1 year ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
octobase 🔄 Building (Inspect) Visit Preview Oct 26, 2023 4:38am
github-actions[bot] commented 1 year ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 401.7±14.77µs | 403.6±10.88µs | +0.47% | | codec/jwst decode var_uint (32 bit) | 357.0±13.45µs | 358.0±11.71µs | +0.28% | | codec/jwst decode var_uint (64 bit) | 353.2±13.45µs | 356.1±10.13µs | +0.82% | | codec/jwst encode var_int (32 bit) | 513.6±18.43µs | 521.4±14.00µs | +1.52% | | codec/jwst encode var_uint (32 bit) | 342.6±7.16µs | 347.2±9.05µs | +1.34% | | codec/jwst encode var_uint (64 bit) | 351.0±10.43µs | 349.5±7.57µs | -0.43% | | codec/lib0 decode var_int (64 bit) | 362.2±16.46µs | 364.0±9.68µs | +0.50% | | codec/lib0 decode var_uint (32 bit) | 312.9±10.43µs | 314.6±7.09µs | +0.54% | | codec/lib0 decode var_uint (64 bit) | 313.7±9.93µs | 316.0±9.71µs | +0.73% | | codec/lib0 encode var_int (64 bit) | 525.6±22.99µs | 523.1±16.41µs | -0.48% | | codec/lib0 encode var_uint (32 bit) | 353.3±10.13µs | 353.2±12.59µs | -0.03% | | codec/lib0 encode var_uint (64 bit) | 347.1±9.54µs | 352.9±10.40µs | +1.67% | | ops/array/jwst/insert | 321.0±10.46µs | 326.2±9.77µs | +1.62% | | ops/array/jwst/insert range | 462.3±16.74µs | 462.2±8.98µs | -0.02% | | ops/array/jwst/remove | 204.5±7.39µs | 205.5±5.82µs | +0.49% | | ops/array/yrs/insert | 96.4±3.75µs | 97.3±2.06µs | +0.93% | | ops/array/yrs/insert range | 132.6±2.93µs | 135.8±3.02µs | **+2.41%** | | ops/array/yrs/remove | 121.7±3.64µs | 132.5±4.60µs | **+8.87%** | | ops/map/jwst/get | 568.2±20.53ns | 576.0±19.72ns | +1.37% | | ops/map/jwst/insert | 7.2±0.32µs | 7.1±0.15µs | **-1.39%** | | ops/map/jwst/remove | 9.2±0.35µs | 9.3±0.32µs | **+1.09%** | | ops/map/yrs/get | 414.2±12.14ns | 407.7±13.36ns | -1.57% | | ops/map/yrs/insert | 6.1±0.14µs | 6.1±0.16µs | -0.00% | | ops/map/yrs/remove | 8.2±0.17µs | 8.2±0.16µs | -0.00% | | ops/text/jwst/insert | 166.8±4.34µs | 165.9±4.02µs | -0.54% | | ops/text/jwst/remove | 4.3±0.11µs | 4.3±0.09µs | -0.00% | | ops/text/yrs/insert | 47.6±1.37µs | 47.2±1.55µs | -0.84% | | ops/text/yrs/remove | 2.9±0.13µs | 2.9±0.10µs | -0.00% | | update/parse with jwst/basic.bin | 63.5±1.94µs | 62.9±1.51µs | -0.94% | | update/parse with jwst/database.bin | 61.3±1.72µs | 60.4±1.47µs | -1.47% | | update/parse with jwst/large.bin | 6.0±0.15ms | 5.9±0.14ms | **-1.67%** | | update/parse with jwst/with-subdoc.bin | 9.3±0.36µs | 9.2±0.24µs | **-1.08%** | | update/parse with yrs/basic.bin | 43.9±1.44µs | 44.9±1.34µs | +2.28% | | update/parse with yrs/database.bin | 45.7±1.87µs | 46.3±1.61µs | +1.31% | | update/parse with yrs/large.bin | 2.9±0.08ms | 2.9±0.07ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 7.3±0.17µs | 7.2±0.26µs | **-1.37%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 447.5±16.35µs | 473.3±13.29µs | **+5.77%** | | codec/jwst decode var_uint (32 bit) | 399.3±11.29µs | 407.6±11.91µs | +2.08% | | codec/jwst decode var_uint (64 bit) | 410.9±18.77µs | 443.5±39.62µs | **+7.93%** | | codec/jwst encode var_int (32 bit) | 490.7±17.44µs | 503.0±12.22µs | **+2.51%** | | codec/jwst encode var_uint (32 bit) | 344.1±15.93µs | 356.4±8.78µs | **+3.57%** | | codec/jwst encode var_uint (64 bit) | 334.8±14.77µs | 369.4±23.91µs | **+10.33%** | | codec/lib0 decode var_int (64 bit) | 337.1±13.66µs | 370.1±19.32µs | **+9.79%** | | codec/lib0 decode var_uint (32 bit) | 293.5±13.66µs | 311.8±11.64µs | **+6.24%** | | codec/lib0 decode var_uint (64 bit) | 288.2±9.95µs | 299.8±13.10µs | **+4.02%** | | codec/lib0 encode var_int (64 bit) | 494.9±16.76µs | 522.7±15.95µs | **+5.62%** | | codec/lib0 encode var_uint (32 bit) | 351.2±12.39µs | 383.0±26.25µs | **+9.05%** | | codec/lib0 encode var_uint (64 bit) | 344.2±16.19µs | 364.3±10.78µs | **+5.84%** | | ops/array/jwst/insert | 357.1±14.39µs | 351.1±14.48µs | -1.68% | | ops/array/jwst/insert range | 491.8±11.86µs | 506.5±28.09µs | **+2.99%** | | ops/array/jwst/remove | 207.2±6.18µs | 210.6±4.59µs | +1.64% | | ops/array/yrs/insert | 137.2±4.57µs | 134.9±3.58µs | -1.68% | | ops/array/yrs/insert range | 177.8±3.98µs | 187.6±6.29µs | **+5.51%** | | ops/array/yrs/remove | 190.8±5.43µs | 194.7±6.70µs | +2.04% | | ops/map/jwst/get | 590.3±15.17ns | 597.4±20.70ns | +1.20% | | ops/map/jwst/insert | 11.0±0.37µs | 12.2±0.34µs | **+10.91%** | | ops/map/jwst/remove | 11.3±0.23µs | 12.8±0.69µs | **+13.27%** | | ops/map/yrs/get | 427.1±17.19ns | 447.8±13.56ns | **+4.85%** | | ops/map/yrs/insert | 9.9±0.26µs | 10.4±1.28µs | **+5.05%** | | ops/map/yrs/remove | 12.4±0.28µs | 13.1±0.26µs | **+5.65%** | | ops/text/jwst/insert | 200.7±5.55µs | 202.2±7.51µs | +0.75% | | ops/text/jwst/remove | 4.9±0.14µs | 5.2±0.55µs | **+6.12%** | | ops/text/yrs/insert | 65.2±3.09µs | 62.2±2.35µs | **-4.60%** | | ops/text/yrs/remove | 4.5±0.19µs | 4.7±0.26µs | **+4.44%** | | update/parse with jwst/basic.bin | 102.9±2.77µs | 104.8±2.93µs | +1.85% | | update/parse with jwst/database.bin | 78.5±2.26µs | 81.5±2.18µs | **+3.82%** | | update/parse with jwst/large.bin | 4.9±0.20ms | 5.1±0.25ms | **+4.08%** | | update/parse with jwst/with-subdoc.bin | 14.5±0.92µs | 14.9±0.33µs | **+2.76%** | | update/parse with yrs/basic.bin | 85.6±3.47µs | 83.4±2.18µs | **-2.57%** | | update/parse with yrs/database.bin | 66.0±2.60µs | 59.7±1.98µs | **-9.55%** | | update/parse with yrs/large.bin | 4.1±0.17ms | 4.1±0.16ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 14.1±0.36µs | 13.4±1.00µs | **-4.96%** |