Skip to content

RonDB Feature Store REST API Benchmarks#

BenchmarkSimple with feature_store endpoint#

The feature_store endpoint is similar to the pkread endpoint. But instead of querying a specific table we are querying a feature view. This feature view consists of one or several feature groups. Each feature group is stored in a RonDB table. However the definition of the feature view is also stored in RonDB in metadata tables. These tables are cached in the REST API server. Thus the performance of the feature_store endpoint is very similar to the performance of the pkread endpoint.

The cache lookup is making a lookup in a local hash table to find the metadata description. This means that the feature_store request is a bit more compact compared to the pkread request.

BenchmarkSimple benchmark means that the feature view fetches data from only one feature group. Thus it performs a single key lookup.

Benchmark Throughput Median latency 99% latency Batch Threads CPU
Benchmark Simple 22712/s 0.04 ms 0.16 ms 1 1 40%
Benchmark Simple 37062/s 0.05 ms 0.08 ms 1 2 80%
Benchmark Simple 52783/s 0.07 ms 0.18 ms 1 4 164%
Benchmark Simple 73257/s 0.09 ms 0.32 ms 1 8 268%
Benchmark Simple 128182/s 0.12 ms 0.25 ms 1 16 580%
Benchmark Simple 181318/s 0.16 ms 0.47 ms 1 32 820%
Benchmark Simple 212656/s 0.25 ms 0.94 ms 1 64 930%

BenchmarkBatchJoin with feature_store endpoint#

BenchmarkBatchJoin is a bit more complex feature view with the feature view making 2 key lookups in two feature groups (RonDB tables).

Benchmark Throughput Median latency 99% latency Batch Threads CPU
Benchmark BatchJoin 17544/s 0.06 ms 0.08 ms 1 1 52%
Benchmark BatchJoin 26791/s 0.071 ms 0.12 ms 1 2 98%
Benchmark BatchJoin 40126/s 0.1 ms 0.18 ms 1 4 202%
Benchmark BatchJoin 61825/s 0.12 ms 0.24 ms 1 8 400%
Benchmark BatchJoin 101700/s 0.15 ms 0.29 ms 1 16 650%
Benchmark BatchJoin 141879/s 0.21 ms 0.57 ms 1 32 820%
Benchmark BatchJoin 159827/s 0.34 ms 1.17 ms 1 64 900%

BenchmarkBatchSimple with batchfeaturestore endpoint#

Benchmark Throughput rows/sec Median latency 99% latency Batch Threads CPU
Benchmark BatchSimple 22038/s 0.04 ms 0.06 ms 1 1 48%
Benchmark BatchSimple 36396/s 0.05 ms 0.07 ms 2 1 55%
Benchmark BatchSimple 58417/s 0.07 ms 0.09 ms 4 1 65%
Benchmark BatchSimple 84365/s 0.09 ms 0.12 ms 8 1 72%
Benchmark BatchSimple 110229/s 0.14 ms 0.18 ms 16 1 80%
Benchmark BatchSimple 123150/s 0.25 ms 0.32 ms 32 1 86%
Benchmark BatchSimple 134622/s 0.47 ms 0.54 ms 64 1 90%
Benchmark BatchSimple 180084/s 0.70 ms 0.79 ms 128 1 93%
Benchmark Throughput rows/sec Median latency 99% latency Batch Threads CPU
Benchmark BatchSimple 324091/s 0.18 ms 0.32 ms 4 16 290%
Benchmark BatchSimple 483860/s 0.50 ms 0.78 ms 4 64 345%
Benchmark BatchSimple 511033/s 0.75 ms 1.14 ms 4 100 360%
Benchmark BatchSimple 783054/s 0.30 ms 0.62 ms 16 16 940%
Benchmark BatchSimple 1240156/s 0.80 ms 1.57 ms 16 64 1260%
Benchmark BatchSimple 1257849/s 1.15 ms 2.31 ms 16 100 1170%
Benchmark BatchSimple 978498/s 0.51 ms 0.78 ms 32 32 1160%
Benchmark BatchSimple 1283009/s 0.81 ms 1.09 ms 32 64 1310%
Benchmark BatchSimple 1920970/s 1.52 ms 5.48 ms 32 100 2000%