Skip to content

Benchmark · Measured synthetic shipping query · Same-host tuned comparison · Resident memory

8DB cross-modal queries | 30× faster than SurrealDB

Ownership, time, location and sustained heat in one answer: 10.8 ms for 8DB, 332.5 ms for tuned SurrealDB.

Published
Updated
Reading time8 minutes
Cross-modalTime seriesGraphSpatialBenchmarks

A temperature spike is only the start of the question. Which ship produced it? Who owns that ship? Where was it, and did the heat persist long enough to matter?

We put that complete question to 8DB and SurrealDB. Using 8DB’s typed time-series APIs, the answer took a median 10.8 ms, compared with 332.5 ms for SurrealDB 3.2.4 using its recommended record-range layout. That is approximately 31× faster in this test, with both systems returning the same ships and every qualifying timestamp.

The same typed 8DB service also used about 74% less observed resident memory: 213 MiB versus 831 MiB at the recorded post-query checkpoint. Faster answers and a smaller running footprint make a more useful combination than speed alone.

This was a synthetic, resident-memory shipping workload on the same workstation, with each server restricted to the same four logical CPUs. Timings include an HTTP request and the complete decoded JSON answer. 8DB used custom Rust composition over native operations; SurrealDB used SurrealQL. Data preparation was outside the timer, and neither path required durable completion or authentication.

Complete shipping-query latency: 8DB typed time series 10.8 ms; SurrealDB record ranges 332.5 ms.

Twenty timed requests per engine in this comparison, with exact-answer checks. The fixture contains 743,999 readings; the selected company’s full-month window covers up to 74,399. These are repeated engineering measurements on a shared workstation, not a production latency guarantee.

One answer, several kinds of data

The query asks: which ships owned through a company’s subsidiaries had at least four consecutive hourly readings above 85°C, inside a selected North Sea rectangle, during July?

The graph identifies the ships. Time narrows their readings. Location determines whether each observation qualifies. The sequence test distinguishes sustained heat from isolated spikes.

The fresh campaign used 1,000 ships and a month of hourly observations. We deliberately removed a reading, placed one temperature exactly on the threshold and moved one location just outside the boundary. Both systems had to preserve those distinctions. A missing hour cannot silently become part of a continuous overheating sequence.

Across five fresh-process runs, we checked 1,360 timed requests against an independent answer calculation, plus 150 additional query cases evaluated on both engines. Later corrections created and removed overheating sequences, and both systems returned the revised answers correctly.

We tuned both sides

SurrealDB is a useful comparator because it also combines multiple data models and supports embedded deployment. It can express this complete question without inventing an application pipeline across several separate databases.

We tested filtering, server-side sequence calculation, secondary indexes, explicit query plans and alternative layouts. Its own documentation recommends record IDs organized around time-series ranges. Using that approach reduced its full-month query from roughly 599 ms to 330 ms in the relevant earlier comparisons. That faster layout became the final reference.

On 8DB, a simple change proved valuable: read temperature first. If a ship cannot have a qualifying hot sequence, there is no need to fetch its location samples. For candidates, retrieve the coordinates and complete the original test.

In a separate randomized experiment on the same fixture, the typed path improved from 26.8 ms with two workers and no pruning to 9.8 ms with four workers and pruning. We also tested those changes separately: adding workers helped, and avoiding unnecessary location reads helped further. Every answer remained exact.

That is a practical benefit of composing native operations: the order in which the database examines different kinds of data can remove work from the complete question.

Two useful 8DB execution choices

We also measured a faster route for prepared data.

Full-month shipping query8DBTuned SurrealDB in the paired runComparison
Typed time-series route, with selective location reads10.8 ms332.5 msAbout 31× faster
Prepared immutable-page route1.95 ms329.5 msAbout 169× faster

Separate fresh-process runs, each with 20 timed requests per engine. Both rows return the complete shipping answer. The prepared route uses a specialized flat-leaf and learned-index layout; the typed route uses named series and Gorilla-encoded chunks. Preparation is excluded from both query timers.

For stable, prepared data, the specialized layout is exceptionally fast in this workload. The richer typed route adds catalogs, codecs and correction support while retaining a substantial advantage over the tested SurrealDB implementation.

A smaller running footprint

The tuned typed 8DB service used approximately 213 MiB resident memory, versus 831 MiB for SurrealDB at the recorded post-query checkpoint: about 74% less, or roughly 618 MiB less for this service and fixture. This includes each process’s runtime and retained allocations, rather than just its index. It excludes the client and operating-system cache, and it is not a tested minimum-memory requirement.

Observed process memory after the query run: 8DB 213 MiB, SurrealDB 831 MiB, about 74% lower for 8DB.

Same tuned typed-route comparison. Whole-process resident memory at the recorded checkpoint, including runtime and retained allocations; client and operating-system cache excluded. This is an observed footprint, not a proven minimum device-memory requirement.

For a service competing with other workloads for RAM, a smaller footprint can create headroom. For embedded applications, it can widen the range of devices worth evaluating. Those are practical reasons to test hosting density and constrained-device deployment next; this workstation measurement does not establish an instance-size saving or Apple Watch compatibility.

Useful answers as the data changes

The typed route also passed three late-correction checks: creating a hot sequence, breaking an existing one at the exact threshold, and removing a newly created sequence. SurrealDB passed those checks too. The useful combination is the measured speed and memory advantage alongside correct revised answers, rather than a fast result that only works on immutable input. These checks demonstrate correction handling; crash recovery requires a different experiment.

Where energy and durability fit

Avoiding unnecessary location reads reduced execution work in our randomized tuning experiment. That gives us a concrete energy hypothesis: less active processing and less retained data could reduce energy per useful answer, particularly where memory and battery capacity are constrained. We did not measure power or joules here, and a 31× latency improvement does not imply 31× lower energy. Idle power, radio activity, synchronization and the rate of incoming work all matter.

The next energy comparison should count the complete job, including background work and synchronization. On a watch-and-phone workload, that means measuring both devices so a saving on one cannot hide extra consumption on the other. Reduced transfers could also matter more than query speed, but that remains a separate test.

Durability deserves its own comparison too: the same acknowledged-write guarantee, recovery after failure, and time until the recovered data is queryable. This campaign selected memory-resident paths on both engines. Its speed and memory results belong to that operating mode; they do not characterize either engine's durable mode. No SSD-wear saving was measured.

These measurements suggest a useful choice between execution layouts. They do not yet establish that 8DB’s automatic settings select the best route for every workload. The worker counts and pruning policy here were explicitly selected and tested.

Where this places us

8DB has a strong measured lead over SurrealDB for this combined shipping question. The size of that lead depends on the work: simple two-hop ownership lookup was much closer, at roughly 0.84 ms versus 1.15 ms in the prepared-route service. The largest advantage appeared when the query combined relationships with many temporal observations and a sequence condition.

AlternativeWhy it belongs in the comparisonEvidence for this complete shipping query
8DBNative graph composition, prepared ranges and typed time seriesMeasured on both execution routes
SurrealDBIntegrated records, relationships, time-series ranges and embedded optionsMeasured and tuned; the direct comparator here
Neo4jEstablished graph querying and relationship traversalNo matched performance run in this campaign
PostgreSQLSQL joins, recursive queries and window functionsNo matched performance run in this campaign
ArangoDBIntegrated graph and document queryingNo matched performance run in this campaign

Capability references: SurrealDB deployment models, Neo4j Cypher, PostgreSQL window functions, ArangoDB features. Unmeasured alternatives are not assigned estimated speeds or a fabricated ranking.

For applications that repeatedly connect ownership, observations and conditions, this is an encouraging result. The opportunity is faster answers inside one integrated data layer. Whether that also reduces total operating cost, energy or data movement depends on the deployed workflow and deserves its own measurement.

Beyond this query

8DB is an omnimodal database. This test connects several native capabilities; it is one example of the broader system. Our time-series ingestion comparison and key-value benchmark examine different workloads and completion boundaries.

The earlier Nightmare campaign recorded 0.623 ms of in-process query execution over a prepared synthetic corpus of 87.6 million readings, of which 74,400 were selected. That remains a historical result. The new comparison uses a smaller corpus, a different workstation and a complete HTTP/JSON request boundary, so the two timings should not be treated as a regression or a like-for-like progression.

The next tests will expand the corpus and query mix, then measure durable, governed and disconnected-operation workflows. This campaign already gives us a concrete answer to the first competitive question: 8DB can combine these data types into an exact operational answer substantially faster than the tuned SurrealDB path we tested.

Bring us a question that crosses relationships, time and observations. We’ll help identify what a fair complete-answer benchmark should measure.

Method note: September 18, 2026; AMD Ryzen 9 9950X3D host, WSL Ubuntu 24.04, four allowed logical CPUs per server. Pinned SurrealDB 3.2.4 release and fingerprinted 8DB release library. No claim of general GIS superiority, universal database leadership, measured energy savings or power-loss-safe completion follows from this memory-resident test.

Continue the technical conversation

Where could this help your work?

Bring a research question, a database workload or an application you want to build. Let’s connect the ideas in this article to an evaluation that matters to your team.

Discuss this work

Continue reading

The next layer of the argument.

Benchmark

Database Performance in Context

8DB graph lookups | 64× Neo4j’s recorded throughput

218,000 lookups per second for 8DB. A best recorded 3,410 for Neo4j. Both on an M1 laptop. A separate one-hop test also put 8DB ahead, reaching 23,300 queries per second.

12 min readHistorical service comparisons · Simplified queries · Different clients and returned-data contractsRead article
Benchmark

Database Performance in Context

8DB spatial | 14.7 ms vs. 140–13,140 ms for GIS tools

Six million locations, recorded GIS-tool comparisons, competitor timeouts and the broader opportunity of an omnimodal spatial engine.

5 min readHistorical kernel and query-path timings · Different measurement boundaries · Selected SpatialBench workloadsRead article
Benchmark

Database Performance in Context

8DB storage | Keep working when the connection disappears

16,384 records captured offline. 16,512 verified after delivery and reopening. Explore what protected local storage can do for an application that must keep working.

7 min readVendor-run telemetry rehearsal · Separate historical storage tests · Larger recovery campaign unfinishedRead article