Relational (PostgreSQL)
vs
Graph (RDF triplestore).
Decision: Relational vs Graph (RDF):
| Relational (PostgreSQL) | Graph (RDF) | |
|---|---|---|
| Average report, today | ~6 seconds | ~1.6 hours |
| Average report at 6 TB | ~30 seconds | ~12 hours |
| Hardware at 6 TB | one ordinary server | a 14-server cluster |
| Ontology | remains accessible with Relational (PostgreSQL) | |
| Relational (PostgreSQL) ✓ recommended |
Graph (RDF triplestore) ✗ rejected at scale |
||
|---|---|---|---|
| Average report, todayat 600 GB | ✓about 6 seconds | ✗about 1.6 hours; 3 of 7 tasks need more than a day | details → |
| Average report at 6 TBthe 3-year horizon | ✓about 30 seconds | ✗about 12 hours; 5 of 7 tasks need a day or more | details → |
| Servers needed todayat 600 GB | ✓one standard server, $10.5k | ✗already two servers with 1.4 TB of memory, $58.7k | details → |
| Servers at 6 TB | ✓still one server, $33.6k | ✗a 14-server cluster, $527.7k | details → |
| Disk for the same dataat 6 TB | ✓21 TB | ✗91 TB - the graph form stores the same data 4.4x bigger | details → |
Bars are to scale within each panel - the blue bar is real, it is just that small. An everyday report that takes hours is a report nobody runs.
CSV stays exactly where it belongs - the raw archive coming off the instruments (best compression, byte-reproducible). JSON-LD stays the exchange format for sending data between laboratories. Neither is a working database, so neither was a candidate. SQLite is excellent for a single user up to ~600 GB but does not scale to the shared 6 TB horizon.
And the ontology? It survives intact: semantic, ontology-style access is provided as a virtual layer on top of PostgreSQL (e.g. Ontop OBDA) - the graph view without the graph database's cost.