Skip to content

Commit

Permalink
Remove sendgrid (#1860)
Browse files Browse the repository at this point in the history
  • Loading branch information
kim authored Oct 16, 2024
1 parent ce3d6ed commit 820ace1
Show file tree
Hide file tree
Showing 9 changed files with 0 additions and 98 deletions.
15 changes: 0 additions & 15 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,6 @@ rustyline = { version = "12.0.0", features = [] }
scoped-tls = "1.0.1"
scopeguard = "1.1.0"
second-stack = "0.3"
sendgrid = "0.21"
serde = { version = "1.0.136", features = ["derive"] }
serde_json = { version = "1.0.87", features = ["raw_value"] }
serde_path_to_error = "0.1.9"
Expand Down
6 changes: 0 additions & 6 deletions crates/client-api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use spacetimedb::energy::{EnergyBalance, EnergyQuanta};
use spacetimedb::host::{HostController, UpdateDatabaseResult};
use spacetimedb::identity::Identity;
use spacetimedb::messages::control_db::{Database, HostType, Node, Replica};
use spacetimedb::sendgrid_controller::SendGridController;
use spacetimedb_client_api_messages::name::{DomainName, InsertDomainResult, RegisterTldResult, Tld};

pub mod auth;
Expand All @@ -27,7 +26,6 @@ pub trait NodeDelegate: Send + Sync {
fn gather_metrics(&self) -> Vec<prometheus::proto::MetricFamily>;
fn host_controller(&self) -> &HostController;
fn client_actor_index(&self) -> &ClientActorIndex;
fn sendgrid_controller(&self) -> Option<&SendGridController>;

/// Return a JWT decoding key for verifying credentials.
fn public_key(&self) -> &DecodingKey;
Expand Down Expand Up @@ -252,10 +250,6 @@ impl<T: NodeDelegate + ?Sized> NodeDelegate for Arc<T> {
fn private_key(&self) -> &EncodingKey {
(**self).private_key()
}

fn sendgrid_controller(&self) -> Option<&SendGridController> {
(**self).sendgrid_controller()
}
}

pub fn log_and_500(e: impl std::fmt::Display) -> ErrorResponse {
Expand Down
1 change: 0 additions & 1 deletion crates/core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ regex.workspace = true
rustc-demangle.workspace = true
rustc-hash.workspace = true
scopeguard.workspace = true
sendgrid.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_path_to_error.workspace = true
Expand Down
1 change: 0 additions & 1 deletion crates/core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ pub mod execution_context;
pub mod host;
pub mod module_host_context;
pub mod replica_context;
pub mod sendgrid_controller;
pub mod startup;
pub mod subscription;
pub mod util;
Expand Down
63 changes: 0 additions & 63 deletions crates/core/src/sendgrid_controller.rs

This file was deleted.

7 changes: 0 additions & 7 deletions crates/standalone/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ use spacetimedb::energy::{EnergyBalance, EnergyQuanta};
use spacetimedb::host::{DiskStorage, HostController, UpdateDatabaseResult};
use spacetimedb::identity::Identity;
use spacetimedb::messages::control_db::{Database, Node, Replica};
use spacetimedb::sendgrid_controller::SendGridController;
use spacetimedb::stdb_path;
use spacetimedb::worker_metrics::WORKER_METRICS;
use spacetimedb_client_api_messages::name::{DomainName, InsertDomainResult, RegisterTldResult, Tld};
Expand Down Expand Up @@ -172,12 +171,6 @@ impl spacetimedb_client_api::NodeDelegate for StandaloneEnv {
fn private_key(&self) -> &EncodingKey {
&self.private_key
}

/// Standalone SpacetimeDB does not support SendGrid as a means to
/// reissue authentication tokens.
fn sendgrid_controller(&self) -> Option<&SendGridController> {
None
}
}

impl spacetimedb_client_api::ControlStateReadAccess for StandaloneEnv {
Expand Down
2 changes: 0 additions & 2 deletions docker-compose-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ services:
environment:
RUST_BACKTRACE: 1
ENV: release
SENDGRID_API_KEY:
SENDGRID_SENDER:
# Turn on core dumps, hopefully.
ulimits:
core:
Expand Down
2 changes: 0 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ services:
SPACETIMEDB_TRACY: 1
RUST_BACKTRACE: 1
ENV: dev
SENDGRID_API_KEY:
SENDGRID_SENDER:
networks:
- spacetimedb_default

Expand Down

2 comments on commit 820ace1

@github-actions
Copy link

@github-actions github-actions bot commented on 820ace1 Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Callgrind benchmark results

Callgrind Benchmark Report

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). Callgrind emulates a CPU to collect the below estimates.

Measurement changes larger than five percent are in bold.

In-memory benchmarks

callgrind: empty transaction

db total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw 5386 5386 0.00% 5428 5462 -0.62%
sqlite 5575 5575 0.00% 6013 5975 0.64%

callgrind: filter

db schema indices count preload _column data_type total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str no_index 64 128 1 u64 75579 75579 0.00% 75997 76081 -0.11%
stdb_raw u32_u64_str no_index 64 128 2 string 118076 118076 0.00% 118620 118648 -0.02%
stdb_raw u32_u64_str btree_each_column 64 128 2 string 24095 24095 0.00% 24519 24567 -0.20%
stdb_raw u32_u64_str btree_each_column 64 128 1 u64 23063 23063 0.00% 23429 23449 -0.09%
sqlite u32_u64_str no_index 64 128 2 string 144663 144663 0.00% 146209 146053 0.11%
sqlite u32_u64_str no_index 64 128 1 u64 124013 124013 0.00% 125237 125205 0.03%
sqlite u32_u64_str btree_each_column 64 128 1 u64 131340 131340 0.00% 132744 132864 -0.09%
sqlite u32_u64_str btree_each_column 64 128 2 string 134462 134462 0.00% 136148 136184 -0.03%

callgrind: insert bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 64 128 900634 900421 0.02% 919292 924107 -0.52%
stdb_raw u32_u64_str btree_each_column 64 128 1047882 1050416 -0.24% 1108328 1119976 -1.04%
sqlite u32_u64_str unique_0 64 128 398284 398284 0.00% 416870 413300 0.86%
sqlite u32_u64_str btree_each_column 64 128 983611 983611 0.00% 1027969 1022231 0.56%

callgrind: iterate

db schema indices count total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 152706 152706 0.00% 152792 152764 0.02%
stdb_raw u32_u64_str unique_0 64 15731 15731 0.00% 15817 15785 0.20%
sqlite u32_u64_str unique_0 1024 1067233 1067233 0.00% 1070597 1070511 0.01%
sqlite u32_u64_str unique_0 64 76179 76179 0.00% 77261 77195 0.09%

callgrind: serialize_product_value

count format total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
64 json 47182 47182 0.00% 49736 49770 -0.07%
64 bsatn 25716 25716 0.00% 27892 27858 0.12%
16 bsatn 8117 8117 0.00% 9375 9341 0.36%
16 json 12078 12078 0.00% 13880 13914 -0.24%

callgrind: update bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 1024 20747294 20751010 -0.02% 21356164 21422270 -0.31%
stdb_raw u32_u64_str unique_0 64 128 1308681 1310896 -0.17% 1383079 1386866 -0.27%
sqlite u32_u64_str unique_0 1024 1024 1802083 1802089 -0.00% 1811315 1811175 0.01%
sqlite u32_u64_str unique_0 64 128 128429 128429 0.00% 131183 131185 -0.00%
On-disk benchmarks

callgrind: empty transaction

db total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw 5396 5396 0.00% 5442 5480 -0.69%
sqlite 5617 5617 0.00% 6131 6085 0.76%

callgrind: filter

db schema indices count preload _column data_type total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str no_index 64 128 1 u64 75589 75589 0.00% 76003 76087 -0.11%
stdb_raw u32_u64_str no_index 64 128 2 string 118070 118107 -0.03% 118598 118651 -0.04%
stdb_raw u32_u64_str btree_each_column 64 128 2 string 24105 24105 0.00% 24521 24569 -0.20%
stdb_raw u32_u64_str btree_each_column 64 128 1 u64 23073 23073 0.00% 23435 23459 -0.10%
sqlite u32_u64_str no_index 64 128 1 u64 125940 125934 0.00% 127420 127386 0.03%
sqlite u32_u64_str no_index 64 128 2 string 146584 146584 0.00% 148358 148218 0.09%
sqlite u32_u64_str btree_each_column 64 128 2 string 136584 136584 0.00% 138680 138772 -0.07%
sqlite u32_u64_str btree_each_column 64 128 1 u64 133426 133426 0.00% 135328 135364 -0.03%

callgrind: insert bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 64 128 849849 849927 -0.01% 898393 903613 -0.58%
stdb_raw u32_u64_str btree_each_column 64 128 997990 996977 0.10% 1058554 1035961 2.18%
sqlite u32_u64_str unique_0 64 128 415821 415821 0.00% 433689 430275 0.79%
sqlite u32_u64_str btree_each_column 64 128 1021862 1021862 0.00% 1065348 1059774 0.53%

callgrind: iterate

db schema indices count total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 152716 152716 0.00% 152790 152762 0.02%
stdb_raw u32_u64_str unique_0 64 15741 15741 0.00% 15815 15787 0.18%
sqlite u32_u64_str unique_0 1024 1070301 1070301 0.00% 1074107 1074085 0.00%
sqlite u32_u64_str unique_0 64 77951 77951 0.00% 79293 79231 0.08%

callgrind: serialize_product_value

count format total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
64 json 47182 47182 0.00% 49736 49770 -0.07%
64 bsatn 25716 25716 0.00% 27892 27858 0.12%
16 bsatn 8117 8117 0.00% 9375 9341 0.36%
16 json 12078 12078 0.00% 13880 13914 -0.24%

callgrind: update bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 1024 19446414 19441634 0.02% 20131854 20164854 -0.16%
stdb_raw u32_u64_str unique_0 64 128 1262079 1262862 -0.06% 1335217 1339556 -0.32%
sqlite u32_u64_str unique_0 1024 1024 1809662 1809644 0.00% 1818154 1818190 -0.00%
sqlite u32_u64_str unique_0 64 128 132555 132555 0.00% 135445 135407 0.03%

@github-actions
Copy link

@github-actions github-actions bot commented on 820ace1 Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Criterion benchmark results

Criterion benchmark report

YOU SHOULD PROBABLY IGNORE THESE RESULTS.

Criterion is a wall time based benchmarking system that is extremely noisy when run on CI. We collect these results for longitudinal analysis, but they are not reliable for comparing individual PRs.

Go look at the callgrind report instead.

empty

db on disk new latency old latency new throughput old throughput
sqlite 💿 410.6±1.74ns 412.9±2.50ns - -
sqlite 🧠 406.4±2.48ns 408.1±1.31ns - -
stdb_raw 💿 626.6±1.10ns 651.6±0.98ns - -
stdb_raw 🧠 626.6±1.07ns 651.4±1.79ns - -

insert_1

db on disk schema indices preload new latency old latency new throughput old throughput

insert_bulk

db on disk schema indices preload count new latency old latency new throughput old throughput
sqlite 💿 u32_u64_str btree_each_column 2048 256 584.9±2.13µs 587.7±0.80µs 1709 tx/sec 1701 tx/sec
sqlite 💿 u32_u64_str unique_0 2048 256 149.4±0.40µs 147.4±0.69µs 6.5 Ktx/sec 6.6 Ktx/sec
sqlite 💿 u32_u64_u64 btree_each_column 2048 256 468.4±0.67µs 467.9±0.68µs 2.1 Ktx/sec 2.1 Ktx/sec
sqlite 💿 u32_u64_u64 unique_0 2048 256 136.6±3.24µs 135.3±0.59µs 7.1 Ktx/sec 7.2 Ktx/sec
sqlite 🧠 u32_u64_str btree_each_column 2048 256 447.1±1.51µs 448.6±0.75µs 2.2 Ktx/sec 2.2 Ktx/sec
sqlite 🧠 u32_u64_str unique_0 2048 256 120.5±0.42µs 121.5±1.41µs 8.1 Ktx/sec 8.0 Ktx/sec
sqlite 🧠 u32_u64_u64 btree_each_column 2048 256 367.9±0.28µs 365.2±0.51µs 2.7 Ktx/sec 2.7 Ktx/sec
sqlite 🧠 u32_u64_u64 unique_0 2048 256 104.5±0.51µs 103.6±0.35µs 9.3 Ktx/sec 9.4 Ktx/sec
stdb_raw 💿 u32_u64_str btree_each_column 2048 256 569.4±111.38µs 643.6±28.29µs 1756 tx/sec 1553 tx/sec
stdb_raw 💿 u32_u64_str unique_0 2048 256 506.7±23.80µs 451.1±49.86µs 1973 tx/sec 2.2 Ktx/sec
stdb_raw 💿 u32_u64_u64 btree_each_column 2048 256 390.9±7.90µs 381.8±6.37µs 2.5 Ktx/sec 2.6 Ktx/sec
stdb_raw 💿 u32_u64_u64 unique_0 2048 256 313.5±15.49µs 350.7±15.76µs 3.1 Ktx/sec 2.8 Ktx/sec
stdb_raw 🧠 u32_u64_str btree_each_column 2048 256 312.5±1.29µs 309.1±0.25µs 3.1 Ktx/sec 3.2 Ktx/sec
stdb_raw 🧠 u32_u64_str unique_0 2048 256 242.7±0.14µs 238.7±0.29µs 4.0 Ktx/sec 4.1 Ktx/sec
stdb_raw 🧠 u32_u64_u64 btree_each_column 2048 256 247.8±0.07µs 245.2±0.14µs 3.9 Ktx/sec 4.0 Ktx/sec
stdb_raw 🧠 u32_u64_u64 unique_0 2048 256 221.2±0.24µs 219.8±0.26µs 4.4 Ktx/sec 4.4 Ktx/sec

iterate

db on disk schema indices new latency old latency new throughput old throughput
sqlite 💿 u32_u64_str unique_0 22.3±0.15µs 23.2±0.39µs 43.8 Ktx/sec 42.1 Ktx/sec
sqlite 💿 u32_u64_u64 unique_0 21.1±0.08µs 21.5±0.45µs 46.4 Ktx/sec 45.5 Ktx/sec
sqlite 🧠 u32_u64_str unique_0 20.0±0.23µs 20.2±0.19µs 48.8 Ktx/sec 48.3 Ktx/sec
sqlite 🧠 u32_u64_u64 unique_0 19.2±0.07µs 19.2±0.26µs 50.8 Ktx/sec 50.8 Ktx/sec
stdb_raw 💿 u32_u64_str unique_0 4.7±0.00µs 4.8±0.00µs 206.8 Ktx/sec 204.0 Ktx/sec
stdb_raw 💿 u32_u64_u64 unique_0 4.6±0.00µs 4.7±0.00µs 211.2 Ktx/sec 209.8 Ktx/sec
stdb_raw 🧠 u32_u64_str unique_0 4.7±0.00µs 4.8±0.00µs 206.3 Ktx/sec 204.1 Ktx/sec
stdb_raw 🧠 u32_u64_u64 unique_0 4.6±0.00µs 4.7±0.00µs 211.2 Ktx/sec 209.6 Ktx/sec

find_unique

db on disk key type preload new latency old latency new throughput old throughput

filter

db on disk key type index strategy load count new latency old latency new throughput old throughput
sqlite 💿 string index 2048 256 68.5±0.15µs 67.8±0.12µs 14.3 Ktx/sec 14.4 Ktx/sec
sqlite 💿 u64 index 2048 256 65.1±0.41µs 66.9±0.30µs 15.0 Ktx/sec 14.6 Ktx/sec
sqlite 🧠 string index 2048 256 65.2±0.16µs 64.4±0.08µs 15.0 Ktx/sec 15.2 Ktx/sec
sqlite 🧠 u64 index 2048 256 59.4±0.13µs 61.0±0.12µs 16.4 Ktx/sec 16.0 Ktx/sec
stdb_raw 💿 string index 2048 256 4.8±0.00µs 4.9±0.00µs 201.5 Ktx/sec 197.7 Ktx/sec
stdb_raw 💿 u64 index 2048 256 4.8±0.00µs 4.8±0.00µs 201.6 Ktx/sec 203.9 Ktx/sec
stdb_raw 🧠 string index 2048 256 4.8±0.00µs 5.0±0.00µs 201.4 Ktx/sec 197.3 Ktx/sec
stdb_raw 🧠 u64 index 2048 256 4.8±0.00µs 4.8±0.00µs 201.7 Ktx/sec 203.9 Ktx/sec

serialize

schema format count new latency old latency new throughput old throughput
u32_u64_str bflatn_to_bsatn_fast_path 100 3.3±0.04µs 3.3±0.01µs 29.3 Mtx/sec 29.3 Mtx/sec
u32_u64_str bflatn_to_bsatn_slow_path 100 3.4±0.00µs 3.4±0.01µs 28.1 Mtx/sec 28.0 Mtx/sec
u32_u64_str bsatn 100 2.2±0.00µs 2.4±0.00µs 42.8 Mtx/sec 39.1 Mtx/sec
u32_u64_str bsatn 100 40.5±0.07ns 40.5±0.10ns 2.3 Gtx/sec 2.3 Gtx/sec
u32_u64_str json 100 5.0±0.09µs 5.7±0.02µs 19.0 Mtx/sec 16.7 Mtx/sec
u32_u64_str json 100 7.3±0.07µs 7.3±0.06µs 13.0 Mtx/sec 13.1 Mtx/sec
u32_u64_str product_value 100 1018.1±7.92ns 1016.6±6.67ns 93.7 Mtx/sec 93.8 Mtx/sec
u32_u64_u64 bflatn_to_bsatn_fast_path 100 1161.0±3.04ns 1133.2±1.18ns 82.1 Mtx/sec 84.2 Mtx/sec
u32_u64_u64 bflatn_to_bsatn_slow_path 100 2.8±0.00µs 2.8±0.00µs 34.5 Mtx/sec 34.1 Mtx/sec
u32_u64_u64 bsatn 100 1540.7±13.85ns 1773.9±24.73ns 61.9 Mtx/sec 53.8 Mtx/sec
u32_u64_u64 bsatn 100 39.4±0.04ns 39.7±0.15ns 2.4 Gtx/sec 2.3 Gtx/sec
u32_u64_u64 json 100 3.3±0.06µs 3.1±0.01µs 28.8 Mtx/sec 30.8 Mtx/sec
u32_u64_u64 json 100 5.0±0.06µs 5.1±0.00µs 19.1 Mtx/sec 18.7 Mtx/sec
u32_u64_u64 product_value 100 1013.5±1.50ns 1013.3±1.39ns 94.1 Mtx/sec 94.1 Mtx/sec
u64_u64_u32 bflatn_to_bsatn_fast_path 100 959.0±1.68ns 925.4±10.53ns 99.4 Mtx/sec 103.1 Mtx/sec
u64_u64_u32 bflatn_to_bsatn_slow_path 100 2.8±0.00µs 2.8±0.00µs 34.5 Mtx/sec 34.1 Mtx/sec
u64_u64_u32 bsatn 100 1538.6±13.13ns 1756.7±30.60ns 62.0 Mtx/sec 54.3 Mtx/sec
u64_u64_u32 bsatn 100 943.7±2.71ns 943.2±2.39ns 101.1 Mtx/sec 101.1 Mtx/sec
u64_u64_u32 json 100 3.4±0.03µs 3.9±0.01µs 27.9 Mtx/sec 24.7 Mtx/sec
u64_u64_u32 json 100 5.1±0.08µs 5.3±0.01µs 18.7 Mtx/sec 18.1 Mtx/sec
u64_u64_u32 product_value 100 1016.4±0.53ns 1017.5±0.57ns 93.8 Mtx/sec 93.7 Mtx/sec

stdb_module_large_arguments

arg size new latency old latency new throughput old throughput
64KiB 107.1±8.24µs 101.7±8.12µs - -

stdb_module_print_bulk

line count new latency old latency new throughput old throughput
1 44.8±4.37µs 58.2±4.87µs - -
100 600.3±6.86µs 591.9±6.90µs - -
1000 5.4±0.18ms 4.3±0.96ms - -

remaining

name new latency old latency new throughput old throughput
special/db_game/circles/load=10 289.7±2.67µs 298.0±2.41µs - -
special/db_game/circles/load=100 289.6±2.32µs 300.2±4.17µs - -
special/db_game/ia_loop/load=10 0.0±0.00ns 0.0±0.00ns - -
special/db_game/ia_loop/load=100 0.0±0.00ns 0.0±0.00ns - -
sqlite/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 53.7±0.07µs 55.1±0.34µs 18.2 Ktx/sec 17.7 Ktx/sec
sqlite/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 46.1±0.14µs 46.8±0.19µs 21.2 Ktx/sec 20.9 Ktx/sec
sqlite/🧠/update_bulk/u32_u64_str/unique_0/load=2048/count=256 39.5±0.43µs 41.8±0.29µs 24.7 Ktx/sec 23.4 Ktx/sec
sqlite/🧠/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 34.7±0.11µs 36.7±0.20µs 28.1 Ktx/sec 26.6 Ktx/sec
stdb_module/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 1275.0±13.05µs 1297.0±22.60µs 784 tx/sec 771 tx/sec
stdb_module/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 1056.4±6.72µs 1034.8±8.87µs 946 tx/sec 966 tx/sec
stdb_raw/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 644.2±12.93µs 611.2±40.03µs 1552 tx/sec 1636 tx/sec
stdb_raw/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 497.5±8.67µs 486.5±7.67µs 2010 tx/sec 2.0 Ktx/sec
stdb_raw/🧠/update_bulk/u32_u64_str/unique_0/load=2048/count=256 375.4±0.31µs 375.3±0.72µs 2.6 Ktx/sec 2.6 Ktx/sec
stdb_raw/🧠/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 339.5±0.21µs 335.2±0.38µs 2.9 Ktx/sec 2.9 Ktx/sec

Please sign in to comment.