OntoDB

Roadmap

What to build next

The shell already answers queries. The next code is the 24-byte triple key. After that, each feature is one check command.

scripts/status prints one line per slice, grouped by feature. A slice counts only after its tests pass with the DISABLED_ prefix removed. The shell smoke test and the explain smoke test already pass and are not part of the percentage. A fresh tree is 0 of 46.

scripts/check key builds and runs the triple-key slices, including tests that are still disabled, then prints the next id. scripts/check 0.2 is the same slice by id. The concurrency feature uses the ThreadSanitizer preset.

Already in place

Do not rebuild these. They are the baseline the features sit on.

Features

FeatureCheckDone when
Triple keyscripts/check keyThe 24-byte key round-trips and the prefix bounds match
Buffer poolscripts/check bufferPinned frames return to zero
B+ treescripts/check indexRandom insert matches a sorted vector
RDF storagescripts/check storageA clean restart sees the triples
Query executionscripts/check execution\set join selects a real operator
Optimizerscripts/check optimizerA rewritten plan returns the same rows
Bulk loadscripts/check loadAbout 100k LUBM triples load under a small pool
Concurrencyscripts/check concurrencyThe feature is green under TSan
Recoveryscripts/check recoveryscripts/crashtest --seeds 200 exits 0

Slice ids such as 1.4 and 8.6 stay in the test names and in not built yet (PLAN x.y). The feature name is the one you pass to scripts/check.

Left open

These have no stubs. Write the design next to the code, then a benchmark, then a writeup.

How to read ahead

The notes follow the feature order. You can read WAL and ARIES before the disk exists. You cannot check slice 8.3 until the buffer pool flushes the log before the page write.

When a page says Next, that is the slice to point scripts/check at. Delete DISABLED_ only after the test is honest. A disabled test that would have passed does not move scripts/status.