{
  "statistic": "median",
  "meta": {
    "statistic_note": "Times: median of 25 warm runs per cell; spread: interquartile range (q1\u2013q3), min\u2013max recorded.",
    "baseline": "citygml",
    "dataset_labels": {
      "rotterdam_delfshaven": {
        "role": "corpus",
        "title": "Rotterdam"
      },
      "vienna_102081": {
        "role": "corpus",
        "title": "Vienna"
      },
      "nyc_da13_buildings": {
        "role": "corpus",
        "title": "New York"
      },
      "zurich_building_lod2": {
        "role": "corpus",
        "title": "Zurich"
      },
      "tokyo": {
        "role": "corpus",
        "title": "Tokyo (Chiyoda)"
      },
      "montreal": {
        "role": "corpus",
        "title": "Montr\u00e9al"
      },
      "3dbag_n1000000": {
        "role": "slice",
        "title": "3DBAG (Netherlands)",
        "nominal_objects": 1000000
      }
    },
    "slice_dataset": "3dbag_n1000000",
    "sources": {
      "read": "formats/short/results",
      "sizes": "formats/short/results/sizes.csv",
      "bloom": "formats/short/bloom_results"
    },
    "caveats_read": [
      "**Counting granularity differs by scenario, not just by format.**\nCityParquet's `count`/`full-read` count **one row per CityObject** \u2014\nparents _and_ children each get a row \u2014 and `cityjson` matches that grain\n(its `CityObjects` map is flat: a `Building` and its `BuildingPart`s are\nsibling entries linked only by `parents`/`children`). `cityjsonseq`,\n`flatcitybuf` and `citygml` instead count top-level **features/members**\nfor `count` and the `full-read` `result_count` (a CityJSONSeq/FCB feature\nbundles one top-level CityObject with all its children inline, exactly as\na CityGML `cityObjectMember` nests its `BuildingPart`s). So the `count`\nand `full-read` rows split into **two grains**:\n\n| grain                                                      | formats                                 |\n| ---------------------------------------------------------- | --------------------------------------- |\n| one row per **CityObject** (children counted separately)   | `cityparquet`, `cityjson`               |\n| one row per **top-level feature/member** (children inline) | `citygml`, `cityjsonseq`, `flatcitybuf` |\n\nThe `full-read` totals the coordinator compares (`objects`, `geometries`,\n`semantic_faces`) are per CityObject in every format; only its\n`result_count` keeps the feature grain. `bbox-query`, `attr-filter`,\n`attr-stats` and `id-lookup` are **CityObject-granular in every format**\n\u2014 `citygml`/`cityjsonseq`/`flatcitybuf` flatten to per-CityObject\nmatching for these four scenarios (`flatcitybuf` because that is what its B+-tree\nattribute index naturally returns per entry: `fcb_core` indexes every\nvalue of a feature's `city_objects` map, not only the root object, so on\nVienna an indexed `attr-filter` returns 600 entries from 307 features,\nand the raw-accessor walks of Caveat 32 count the same way; the two\nparsing formats by explicit choice, to match) \u2014 so these four are\ndirectly comparable across every format; the `count` and `full-read`\n`result_count` are not.\nEmpirically: `lod3_railway.city.json` is 121 CityObjects / 38 top-level\nfeatures; `delft.city.jsonl`'s `object_type == \"BuildingPart\"` count is\n1116 CityObjects (out of 2231 total CityObjects / 1115 features);\n`railway_lod3_fragment.gml` is 6 CityObjects / 4 members. Each of those is\nasserted in the runners' own tests, not merely claimed here.\n\n**What \"an object's bbox intersects the window\" means, in every format.**\nAn object's box is the min/max over every vertex referenced by a geometry\nin its **subtree** \u2014 its own geometries and every descendant's, reached\nthrough `children` \u2014 so a `Building` with no geometry of its own matches a\nwindow its `BuildingPart`s intersect, and a `CityObjectGroup` matches\nthrough its members. This is the subtree union the CityParquet `bbox`\ncolumn stores (the specification's \"Spatial metadata\"), and every runner\ncomputes the same union: `cityjson` over the shared vertices, `citygml`\nand `cityjsonseq` over each feature's own vertices, and `flatcitybuf`\nfor every CityObject of each feature its R-tree hits. Every format\ntherefore returns the identifiers of the same matching CityObjects, and\nthe coordinator compares their digest (Caveat 2). A box intersects the\nwindow when it overlaps it on every axis, edges included. An object with\nno geometry anywhere in its subtree has no box and matches nothing.\n\nThe CityParquet `bbox` column also covers an object's declared\n`geographicalExtent`, which no runner reads (FlatCityBuf's R-tree holds\nthe boxes `fcb ser` computed), so on a dataset that declares one the\ncolumn can reach beyond the vertex box. On this corpus Zurich and\nMontr\u00e9al declare one on every object. Montr\u00e9al's reaches beyond the\nvertex box in `x`/`y` on 1,544 objects, by at most 1.5 \u00b5m. Zurich's\nreaches beyond it on 108,396 objects, by at most its 1 mm quantisation.\nThe untied windows guarantee only that every edge lies more than one\nquantisation step from every `bbox` edge (Caveat 21), which for Zurich is\nthe same 1 mm, so the guarantee alone does not keep a window edge out of\nthe band between an object's vertex box and its `bbox`. The coordinator's\ncheck does: a window edge inside that band would make `cityjson`\ndisagree with `cityparquet`, and the run would fail. On the current\nZurich artefacts no window edge is closer than 3 mm to a `bbox` edge.",
      "**Selectivity's denominator is the CityObject total, for every format.**\nThe four CityObject-granular scenarios (`bbox-query`/`attr-filter`/\n`attr-stats`/`id-lookup`) divide by the **dataset-global CityObject\ntotal** \u2014 the same number as CityParquet's own `count` \u2014 as a single\nshared denominator across every format, so their selectivity is always\nin `(0, 1]` and directly comparable format to format. `count` and\n`full-read` carry no selectivity.\n\n**A count that disagrees fails the run.** Once every format has run, the\ncoordinator checks each row's `result_count` at its own counting level.\n`count` and `full-read` must equal the CityParquet table's CityObjects or\nits features (root objects, `id == feature_id`); each `bbox-*` window\nmust select exactly the CityObjects whose box intersects it as the\nCityParquet `bbox` column says (the reference count is in the parameter\nsidecar, `windows[].objects`); `attr-filter` must match the predicate's\n`matched`. Beyond the counts, the coordinator compares what each format\nRETURNED (Caveat 42). `attr-stats` and each `id-*` probe have no reference and must\nagree across every format. A disagreeing row is tagged `count-mismatch`\nin `notes`, the CSV is written anyway, and the coordinator exits\nnon-zero naming the scenario, the formats and the counts; a clean run\nprints `cross-format consistency OK` on stderr.",
      "**`full-read` returns the same thing from every format, by different\nwork.** Every format returns every record with all its fields in its\nnative form, and every format visits every coordinate as a real\ncoordinate: CityGML streams its members through the library's CityGML\nreader, which decodes every `gml:pos`/`posList`, resolves every\n`xlink:href` surface reference and rebuilds a feature-local vertex pool;\nplain CityJSON parses one whole document and resolves every boundary leaf\nthrough its shared vertex array and `transform`; CityJSONSeq parses every\nline and resolves each feature's own vertices through the header\n`transform`; FlatCityBuf converts its stored integer vertices to real\ncoordinates; CityParquet walks its Arrow arrays and WKB in place. Each is\nthat format's own full-read cost, reported per format and never\nnormalised into a shared unit of work. The coordinator checks that the\nfive agree on the CityObjects, geometries, semantic faces and extent they\nvisited (Caveat 42).",
      "**FlatCityBuf's `bbox-query` is 2D.** Its spatial R-tree indexes x/y\nonly; the query window's z component is silently dropped when querying\nFCB (the window itself is still constructed with a full z range, as it\nis for every other format, but FCB's own index simply has no z\ndimension to test against). The index's hits are therefore a superset\nof the matches, never a subset, and the runner's own 3D test of every\nCityObject in a hit feature removes the extra ones, so FlatCityBuf's\n`result_count` equals every other format's.\n\nThe R-tree also indexes FEATURES, not CityObjects: its entry is a\nfeature's 2D box. The runner therefore reads each hit feature once and\ntests every CityObject in it against that object's own 3D subtree box,\nso the returned CityObjects agree with every other format, but a hit\nfeature's non-matching CityObjects (and every feature whose 2D box\nintersects while no 3D box does) are read and tested as well. That\nextra reading is the cost of a per-feature 2D index, and it is inside\nFlatCityBuf's timing.",
      "**DuckDB over CityParquet is measured by the database comparison, not\nhere \u2014 and an ad-hoc DuckDB query over a package needs one setting.**\nThis family times each format through its own reader in a\n`cityparquet-readbench` child. DuckDB reading the same Hilbert-ordered\npackage is a query engine rather than a format, so\n`benchmark/databases/README.md` measures it beside cjdb and 3DCityDB,\nwith its own query suite, thread configurations and count cross-check.\nIts rows are not a sixth format and must not be set beside this\nfamily's rows as if they were.\nDuckDB reads the package with `read_parquet()` straight over a\n`cityparquet-rs`-written package \u2014 full geometry, every LoD column.\n**However**: the package's WKB geometry columns carry GeoParquet \"geo\"\nfile metadata, and DuckDB's spatial extension (autoloaded) eagerly\ntries to decode them into its own native `GEOMETRY` type the instant a\nquery references the column \u2014 even a bare `SELECT` with no function\napplied \u2014 and that native decode does not support the multi-surface/\nsolid WKB shapes our LoD1.2/LoD1.3/LoD2 geometries use, failing with\n`Invalid Input Error: Unsupported geometry type in WKB`. The database\nfamily sets `enable_geoparquet_conversion=false` on every connection\n(`benchmark/databases/src/citybench/systems/duckdb_cp.py`,\n`citybench/params.py`), which makes\nthose columns read back as plain `BLOB`. **Anyone running an ad-hoc\nDuckDB query against a `cityparquet-rs` package that touches a geometry\ncolumn needs the same setting**, or will hit the identical error. The\nLoD0 footprint is the exception: it is written with Parquet's own\nGEOMETRY logical type, which DuckDB decodes to `GEOMETRY` whatever the\nsetting.",
      "**A DuckDB memory figure and a format memory figure measure different\nprocesses.** Here `peak_heap_bytes` and `peak_rss_bytes` belong to one\nfresh `cityparquet-readbench` child per sample (see the CSV contract\nabove). The database comparison reports no `peak_heap_bytes` for DuckDB,\nand its `peak_rss_bytes` samples the process executing the query \u2014 for\nDuckDB the harness's own Python process, which hosts the engine\nin-process, keeps one connection across the scenario sequence and so\ncarries the interpreter, the engine's idle baseline and memory retained\nfrom earlier scenarios (the `peak_rss_bytes` scope caveat in\n`benchmark/databases/README.md`). Quote each within its own family; a\nratio between the two is a ratio of different scopes.",
      "**Warm vs cold \u2014 never silently mixed.** The headline numbers everywhere\nin this document and in `benchmark/runs/formats/results/*.csv` are warm-cache\nstatistics (the summaries' median by default, the mean under\n`--statistic mean`); the single `cold`-tagged row per format (see \"Warm vs cold\"\nabove) is a distinct, separately-reported measurement, always\n`full-read` only, never averaged into or compared unlabelled against the\nwarm rows.",
      "**Sub-millisecond deltas are noise; single-threaded reads are pinned.**\nAs in `benchmark/formats/README.md`'s own methodology, deltas under roughly 10 ms at\n`repeat = 7` are within scheduler/filesystem-cache noise and are not\ncited as a finding by themselves. That threshold applies to a run at\n`repeat = 7`; the default is 25, and a run at 25 samples is read against\nits own spread (the interquartile range under\nthe median default), not against this figure. Every format's reads here run\nsingle-threaded (no Parquet multi-threaded row-group decode) \u2014 a\ndeliberate, disclosed choice so timing differences reflect the\nformat/mechanism, not thread-count parallelism a production deployment\nmight or might not enable. Parallel query execution is measured in the\ndatabase comparison, whose rows carry `threads=single` or\n`threads=parallel`.",
      "**`id-lookup` is FOUR rows per format, and the three hit rows are not\ncomparable across formats as raw times.** A single target made the\npublished number a function of where that one id happened to sit in the\nfile \u2014 a property of the sample, not of the format. Each format is now\nmeasured against four targets, tagged in `notes`:\n\n| tag        | target                                 |\n| ---------- | -------------------------------------- |\n| `id-10pct` | the id at 10% of the canonical order   |\n| `id-50pct` | the id at 50%                          |\n| `id-90pct` | the id at 90%                          |\n| `id-miss`  | an id verified absent from the dataset |\n\nThe **canonical order is the CityJSONSeq stream**, because\n`readbench_prepare.sh` cuts the FlatCityBuf and CityParquet artefacts\nfrom that one file. Each probe is verified present in both the\nCityParquet table and the CityGML artefact before it is used; a probe that\nfails verification is replaced by the nearest feature that passes and the\nrow carries `id-substituted`.\n\n**Every format now takes the best mechanism its encoding affords**, which\nis the change that makes the column mean one thing:\n\n- `cityjsonseq` and `citygml` stop at the hit. CityGML did not\n  before, because its skipped-member guard (Caveat 12) is only\n  authoritative at EOF; that guard now rides on the **untimed `count`\n  pass** the coordinator runs per format per dataset before any scenario,\n  whose failure aborts the run, so a document with unmapped members still\n  cannot reach a published row. An `id-lookup` **miss** drains by\n  necessity and still consults the guard directly.\n- `cityjson` cannot exit early in principle: a whole-document CityJSON\n  must be parsed in one piece before any object is addressable, so its\n  four rows are near-identical and position-independent.\n- `flatcitybuf` tries its B+-tree first and falls back to a full walk;\n  see the new Caveat 19 for why the fallback is structural.\n- `cityparquet` applies `id` as a `RowFilter`, which evaluates the whole\n  id column regardless of position.\n\n**`id-miss` is the row to compare across formats.** It is position-free,\nand it is what actually separates a format carrying an id index from one\nthat does not.",
      "**The timing columns are end-to-end read latency, not isolated query compute.** The\ntimed window is the whole per-format `run()` call, which INCLUDES opening\nthe file, reading Parquet/FlatCityBuf metadata or the CityJSONSeq header,\nand (for CityParquet full-read/id-lookup) a metadata open \u2014 not only the\nquery kernel. This is deliberate and consistent across every format (each\npays its own open+read), and it is what a caller issuing a one-shot query\nagainst a file actually experiences; but it means a sub-millisecond\nthe time for a metadata-only scenario (`count`) is dominated by file-open,\nnot query work. Interpret the numbers as end-to-end single-query latency,\nnot a pure in-memory kernel micro-benchmark.",
      "**FlatCityBuf index assumptions and compression scope (known limitations).** The\nFlatCityBuf runner uses FCB's native indexes (`select_query` for bbox,\n`select_attr_query` for the attribute filter), which requires the `.fcb`\nto carry a spatial index (default) and an attribute index (`fcb ser -A`,\nwhich `readbench-prepare` always passes; `id` is never indexed, Caveat\n19). If the attribute index cannot answer, the runner falls back to a\nfull walk and **says so in the CSV `notes`**: `no-attr-index` when the\ncolumn carries no B+-tree at all, `attr-index-failed` when the index\nquery errored, returned a hit list longer than the file's feature\ncount, or, over HTTP, returned no hits. The second case is a known\ntruncation in `fcb_core` 0.7.6: its attribute-index iterator stops\nafter as many entries as the file has features, while the index holds\none entry per matching CityObject, so a predicate that matches more\nCityObjects than there are features would otherwise lose matches\nsilently. The third is a defect in the same library's HTTP index\nreader, which answers no hits for a key that names 4,096 or more\nfeatures (see \"FlatCityBuf's HTTP attribute index drops every key that\nnames 4,096 or more features\" later in this section), so the HTTP arm\nverifies an empty answer by the full walk; a walk that also finds\nnothing is a verified empty result. An index-vs-scan measurement is\ntherefore never mislabelled. That fallback is a raw-flatbuffer walk, not a\nCityJSON conversion \u2014 see Caveat 32. No artefact is read through an\nexternal compression layer: `citygml`, `cityjson` and `cityjsonseq` are\nread as uncompressed text and `flatcitybuf` as an uncompressed file, so\ntheir sizes and read times are those of the uncompressed files, while\nCityParquet's only compression is the Parquet page\ncompression its writer applies by default. A gzipped text file is not\none of the five formats, and no number here describes one. External review\n(Codex, 2026-07-08) confirmed the query primitives, bbox prune + row-level\nfilter, and allocator placement correct; its two flagged \"dictionary\"\ncriticals were verified FALSE POSITIVES \u2014 `TypedDictionaryArray::value(i)`\nresolves the row's key, and an `attr-filter(object_type)` run\nover 2231 rows with ~4 distinct types would have panicked at row 4 had the\nalleged raw-index reading been real.",
      "**`citygml` measures THIS REPOSITORY'S reader, not CityGML's ceiling.**\nThis is the single most important caveat on the `citygml` row, and it cuts\nboth ways.\n\nThe row answers exactly one question: _what does it cost to answer this\nquery against the format the data actually ships in, using the same\ncodebase as every other row?_ It is **not** a claim about what CityGML\ncould achieve in principle. A different parser \u2014 a streaming SAX filter\ntuned to one query, an XML database with a pre-built index, a commercial\nCityGML engine \u2014 would give different numbers, and nothing measured here\nbounds them. What _is_ structural rather than implementation-specific is\nthe absence of an index: a published `.gml` carries no offsets, no object\ndirectory and no spatial or attribute tree, so _any_ reader must traverse\nthe document to answer any of the six scenarios. The constant factor is\nours; the linear term is the format's.\n\nTwo further disclosures about that row, neither folded silently into it:\n\n- **The appearance pre-pass is skipped.** `FeatureReader::open` re-reads\n  the whole document up front to index CityModel-level appearance; not one\n  of the six scenarios consults appearance, so the runner uses\n  `open_without_appearance`. On a real 117 MB PLATEAU tile that pre-pass\n  was ~35\u201345% of `count`'s elapsed time and ~20\u00d7 its peak heap \u2014 both\n  published CSV columns, and both measuring this harness rather than\n  CityGML. Leaving it in would have inflated the `citygml` row with work\n  no scenario asks for.\n- **The row describes this reader's supported profile of CityGML** \u2014 see\n  Caveat 16 for which modules that rules out of the corpus, and why a\n  document exercising the gap is refused outright rather than measured.",
      "**`cityjson` and `cityjsonseq` resolve coordinates differently in\n`full-read`.** Both resolve every boundary leaf into a real-world\ncoordinate, but `cityjson` resolves it through the one document-level\n`vertices` array and `transform`, while `cityjsonseq` resolves it\nthrough the feature's own local vertices and the header `transform`. On\nthe `lod3_railway` fixture `cityjson` performs **245,137 leaf\nresolutions against 73,554 unique vertices** (the leaves outnumber the\nvertices more than threefold, so this is not a per-vertex pass that\ncould be hoisted).\n\nThat work is measured, not assumed. _Within the `cityjson` runner_, on\nthe same fixture and machine, `full-read` costs roughly a fifth more\nelapsed time than `count` in release mode \u2014 median of 9 runs, 0.199 s\nfor `count` against 0.243 s for `full-read` \u2014 so the leaf resolution is\nreal work rather than something the optimiser elides, and\n`std::hint::black_box` pins that rather than trusting it to stay true.\n(That ~20% is a `cityjson`-internal figure, **not** the\n`cityjson`-vs-`cityjsonseq` gap; the cross-format gap also carries the\nwhole-document-vs-line-oriented parse difference.)\n\nThe two rows therefore do the same job, return the same totals (Caveat\n42), and differ in where their vertices live: a shared, document-level\narray against a feature-local one. A `cityjson`-vs-`cityjsonseq`\n`full-read` delta measures that layout and the parse difference, not a\ndifference in what is visited.",
      "**Conversion provenance: the chain runs FORWARDS ONLY, and nothing\nderives from CityParquet.** Every measured artefact is derived from the\npublished source document by `benchmark/scripts/readbench_prepare.sh`, in one\ndirection:\n\n```\nCityGML --citygml-tools 2.5.0 to-cityjson--> CityJSON --cjseq 0.3.1 cat--> CityJSONSeq\n                                                 |                    |--fcb ser -A---------> FlatCityBuf\n                                                 |                    |--cityparquet convert --no-lod0-> CityParquet\n                                                 |\n                                                 |--citygml-tools from-cityjson -v 2.0--> CityGML\n                                                    (only when the source is not itself CityGML)\n```\n\nEach artefact derives from the one before it, and **FlatCityBuf and\nCityParquet derive from the SAME CityJSONSeq bytes** \u2014 that is what makes\ntheir comparison fair. `cityparquet export` could emit the CityJSON\nartefacts and it would be convenient, but **deriving a competitor's input\nfrom the format under test would favour that format**, so it is never\ndone. **CityGML is the one artefact derived backwards**, and the next\ncaveat is entirely about what that costs. The `cityjson` artefact is the\nCityJSON stage without its optional whitespace (Caveat 40).\n\n**One corpus source derives from CityParquet: Montr\u00e9al.** By the\nauthor's decision, the Montr\u00e9al CityJSON was exported from this project's\nown published CityParquet packages of three boroughs (the derivation is\nin `corpus_urls.txt`). The chain above still runs forwards from that\nCityJSON, so within a run every artefact, CityParquet included, derives\nfrom the same document; but the document itself passed through\nCityParquet first, so whatever the CityParquet encoding could not hold\nis absent from every Montr\u00e9al artefact. A Montr\u00e9al number compares the\nformats on what survived that round trip, not on the city's published\noriginal.\n\n**CityGML synthesis \u2014 the one backwards hop, and its cost.** Where the\nsource document is not itself CityGML, the `citygml` artefact is produced\nby `citygml-tools from-cityjson -v 2.0 --no-pretty-print` from the\nCityJSON stage. This REVERSES an earlier rule of this benchmark, which\nreported such an artefact as \"not derivable\" and skipped it on the grounds\nthat a round-trip product is not the source data. Three things about that\nreversal, in the order a sceptical reader will raise them:\n\n- **Why it changed.** This benchmark's claim is a comparison BETWEEN\n  formats, so a dataset that produces four artefacts and skips the fifth\n  does not weaken the comparison, it removes the baseline from it. Under\n  the retired corpus the skipped ones were precisely the datasets a reader\n  recognises \u2014 3DBAG, Rotterdam, Vienna, NYC and Zurich all ship as\n  CityJSON. Nor is the published `.gml` beside a `.city.json` usually a\n  way out: of the nine on cityjson.org, six are CityGML **1.0** and two\n  are **3.0**, and this reader accepts only 2.0 (verified 2026-08-23; the\n  per-file versions are tabulated in `benchmark/formats/corpus_urls.txt`).\n- **What it costs.** The `citygml` row measures **citygml-tools'\n  serialisation**, not a published file. State this beside any CityGML\n  number quoted from this corpus. Two things bound the cost. First, size:\n  on Rotterdam the synthesised document is **14.0 MB** against a published\n  original of **16.5 MB** \u2014 the same magnitude, so a \"CityGML is bulky\"\n  finding is not an artefact of the synthesis. Second, formatting:\n  `--no-pretty-print` is a measurement decision, not a tidiness one. The\n  same content serialises to **18.8 MB** indented and **14.0 MB** compact,\n  so indentation alone would move the row by a third. Compact is the\n  conservative choice \u2014 it gives the baseline this benchmark argues\n  against its **best** case, so no size or parse-time gap can be dismissed\n  as whitespace.\n- **What it cannot preserve, and how the corpus avoids it.** CityGML 2.0\n  has only integer LoDs. 3DBAG carries LoD 0, 1.2, 1.3 and 2.2, and\n  `citygml-tools from-cityjson -v 2.0` writes the LoD 1.3 solid as\n  `lod1Solid` and drops the LoD 1.2 one, so a CityGML artefact\n  synthesised from it would carry less geometry than the other four. The\n  3DBAG slice is therefore cut **without LoD 1.2**\n  (`fcb-slice --drop-lod 1.2`, which `just fetch-3dbag`\n  passes): all five artefacts hold the same LoD 0, 1.3 and 2.2. The drop\n  keeps every CityObject and removes the vertices only LoD 1.2 used, so\n  no format carries orphan coordinates;\n  `benchmark/readbench/tests/drop_lod.rs` checks that every object then\n  carries at most one geometry per integer LoD, which is what CityGML 2.0\n  can hold. A source with two fractional LoDs at one integer level needs\n  the same treatment before its `citygml` row is content-equivalent to\n  the others. Two geometries at the SAME LoD on one object are a\n  different matter, and the whole corpus is normalised against them\n  before any artefact is built (Caveat 41).\n\nThe synthesised artefact is verified after it is written, not trusted:\n`readbench_prepare.sh` re-reads it for a 2.0 declaration and for a\n`gml:id` on every top-level member (Caveat 15's check, on the other side\nof the conversion), and refuses it on either failure.\n\n**Losslessness is asserted, not assumed.** The prepare script counts\ntop-level objects at each hop \u2014 CityGML members by a tag-oriented `awk`\npass, CityJSON via `jq`, CityJSONSeq by counting `CityJSONFeature` lines,\nFCB via `fcb info` \u2014 and reports any drift across a conversion, because a\nCityGML row and a CityParquet row are only comparable where the\nconversion between them was lossless. Drift is **reported, not fatal**:\nreal CityGML routinely carries ADE content citygml-tools skips, and that\nis evidence for the write-up rather than a reason to abort. **A run whose\nstderr carried a `conversion loss:` warning must have that warning\nreproduced beside any number quoted from it.**\n\nNo drift check runs across the **synthesis** hop, and running one would be\nwrong: CityGML nests a `BuildingPart` inside its parent `Building` where\nCityJSON lists both at top level, so the counts legitimately differ \u2014 on\na 3DBAG tile, 1,110 top-level GML members against 2,221 CityObjects.\nComparing them would report a 50 % \"loss\" that did not happen.",
      "**A known INPUT RESTRICTION: CityGML input whose objects lack `gml:id`\nis refused outright.** citygml-tools mints a **fresh random UUID** for any\ntop-level object with no `gml:id` \u2014 a different one on every run. Two\nconsequences, both fatal to a fair measurement:\n\n- The derived artefacts are **not reproducible**: re-running the chain\n  produces different ids for the same objects.\n- The id the coordinator samples out of the derived CityJSONSeq is\n  **absent from the `.gml` entirely**, so `citygml`'s `id-lookup` scores a\n  **miss** (`result_count = 0`) beside every other format's **hit**. That\n  is a _different query_, not a slower one, and nothing downstream catches\n  it \u2014 the coordinator's cross-format self-consistency check covers\n  `attr-filter` only, never `id-lookup`.\n\n`benchmark/scripts/readbench_prepare.sh` therefore refuses such a document whenever\n`citygml` is in the format set \u2014 in its preflight for a CityGML input,\nbefore anything is written, and immediately after writing for a\nsynthesised one (Caveat 14). Real example, measured 2026-08-16: **Riga's\npublished `atgazene_lod2.gml` has 703 top-level objects and 703 of them\ncarry no `gml:id`** (identity lives in a `gen:intAttribute` named\n`OBJECTID`).\n\n**No entry of the current corpus trips this check**, and none can trip it\naccidentally: every source is CityJSON, where an object's key is what\nbecomes the `gml:id`. The check is retained and exercised by\n`scripts/tests/readbench_prepare_test.sh` precisely because it is not\nexpected to fire \u2014 an unexercised guard is one that stops working at the\nnext citygml-tools upgrade without anyone noticing.",
      "**Corpus restrictions \u2014 what can be measured is narrower than what can be\nconverted.** The filters below are recorded per entry in\n`benchmark/formats/corpus_urls.txt`, including for the two cityjson.org datasets they\nexclude:\n\n- **Single-family datasets only.** The coordinator derives every query\n  parameter (bbox window, sampled id, attribute predicate) from one\n  CityParquet package, and refuses a package listing more than one object\n  table (`locate_cityparquet_table`). A dataset spanning two CityGML\n  modules therefore cannot be measured at all. Cost, re-verified\n  2026-08-23 on the current corpus's own source page: **Den Haag tile 01\n  is excluded for a single `TINRelief` among 844 Buildings and 1,653\n  BuildingParts** \u2014 one terrain object yields a second object table\n  (`relief.parquet`) and disqualifies the whole dataset \u2014 and\n  **`LoD3_Railway` is excluded for spanning fourteen types across ten\n  modules**. The Hague's terrain-free tiles are not published separately.\n  Both would otherwise be good fits, and both would return the moment the\n  coordinator learns to pick a table from a multi-table package.\n- **CityGML 2.0 only.** The reader supports 2.0; citygml-tools reads 1.0\n  and writes 3.0 by default, so without an explicit version check the\n  chain would go green around a `.gml` artefact that can never be read.\n  The prepare script refuses a non-2.0 declaration \u2014 in its preflight for\n  a CityGML input, and after writing for a synthesised one. **This filter\n  is the reason the corpus is fetched as CityJSON at all**: every CityGML\n  file cityjson.org publishes beside it is 1.0 or 3.0 (Caveat 14).\n- **Unmapped 1st-level types are refused, not counted as zero.** No entry\n  of the current corpus is affected (all six are Building module), so the\n  evidence below is from the retired catalogue corpus, where five PLATEAU\n  modules were excluded on these grounds: `dem`, `trk`, `lsld`, `urf` and\n  `ubld`. It is kept because the runner behaviour it describes is live.\n  This\n  is a _benchmark_ problem, not merely a converter gap: the `citygml`\n  runner used to report `count = 0`, exit status 0, in a fraction of a\n  real read's time, while every other format's artefact for the same tile\n  \u2014 produced by citygml-tools, which maps `dem:ReliefFeature` to CityJSON\n  `TINRelief` \u2014 reported thousands. A silent zero beside everyone else's\n  thousands is the worst possible row, so the runner now **refuses** such\n  a document outright, naming the offending types. Measured tallies:\n  `lsld` 134/134 members unmapped, `trk` 11/11, `urf` 2158/2158, `ubld`\n  1 of 2 (the partial case, which used to report a plausible, plausibly\n  _wrong_ `count = 1`); `dem` is excluded by inference from the reader's\n  own type map, never measured (the tile is 599 MB and was never\n  downloaded), and no member tally is claimed for it.\n\n**Every entry of the current corpus serves every format**, which is the\nproperty it was selected for and what `scripts/tests/fetch_benchmark_test.sh`\nasserts about the pinned table. The retired corpus had two entries that did\nnot \u2014 Riga (Caveat 15) and PLATEAU's `brid` tile \u2014 and both had to be\nfetched by `--only no-citygml`, because either would **abort a default-set\nrun rather than merely lose a row** (`just bench`'s folder loop runs under\n`set -e`). That escape hatch still exists for `$CORPUS_MANIFEST` inputs.\n\nThe `brid` tile reads now, and converts to a single-table package: a\n`brid:Bridge`'s `lod2Solid` composes its faces by `xlink:href` from\npolygons defined in the Bridge's own `brid:boundedBy` semantic surfaces,\nand the generic reader harvests those as xlink targets\n(`citygml_generic_object_boundedby.rs`). Nothing in this caveat rules it\nout any more; whether to restore it to the corpus is a corpus-selection\nquestion, and it is not measured until it is.",
      "**The `attr-stats` scenario is not uniform across the corpus.**\n`nyc_da13_buildings` (23,777 objects) carries **no numeric attribute at\nall**, so it has no `attr-stats` row. Elsewhere the aggregated column\ncovers all of a dataset's CityObjects or only part of them:\n\n| dataset                | column               | CityObjects carrying it |\n| ---------------------- | -------------------- | ----------------------- |\n| `rotterdam_delfshaven` | `TerrainHeight`      | 853 of 853              |\n| `vienna_102081`        | `measuredHeight`     | 1,102 of 1,322          |\n| `zurich_building_lod2` | `GebaeudeStatus`     | 52,834 of 198,699       |\n| `tokyo`                | `measuredHeight`     | 38,743 of 49,915        |\n| `montreal`             | `measuredHeight`     | 31,415 of 31,415        |\n| `3dbag_n1000000`       | `b3_bag_bag_overlap` | 331,363 of 1,000,001    |\n\nTokyo's column is on its `Building`s, not its 11,172\n`BuildingInstallation`s, and 1,041 of its 38,743 values are PLATEAU's\n`-9999` \"not measured\" placeholder. They are aggregated with the rest:\nno runner has an exclusion predicate, and adding one to every runner\nwould change the timed work of every format. Tokyo's `min`, `sum` and\nhence its mean are therefore not heights, and its `attr-stats` row is a\ntiming, not a statistic of the city.\n\n`just bench` takes the column from the dataset's hand-picked entry\n(`HAND_PICKED_STATS` in `benchmark/readbench/src/params.rs`: Tokyo and\nMontr\u00e9al) or derives it, and omits the row where there is none, so an\nabsent `attr-stats` row is expected rather than a failed measurement.\n**Do not read a missing row as a zero, and do not average a\npartial-coverage row into a cross-dataset aggregate figure.** Every other\nscenario is unaffected: they derive from geometry, object type or id,\nwhich every dataset has.\n\nThe retired corpus had a different version of this problem \u2014 two datasets\nwith 1 and 13 top-level objects, whose every filter matched either\neverything or nothing \u2014 and the current corpus has none: its smallest\nentry holds 379 objects, so every selectivity ratio carries information.",
      "**Wire size equals disk size on this corpus, but the SOURCE size is not\nthe size of what gets measured.** Every current entry is served\nuncompressed, so the pinned wire bytes are also the bytes on disk \u2014 unlike\nthe retired corpus, where `.zip`/`.gz` entries differed by up to 30x\n(Estonia's 11 MB archive expanded to 323 MB) and the disk figure was the\none to quote. That distinction no longer applies here.\n\nWhat does apply: **a dataset's pinned size is its CityJSON size, and four\nof the five measured artefacts are not that file.** The synthesised\nCityGML is several times larger (Rotterdam: 2.7 MB CityJSON, 14.0 MB\nCityGML), the CityParquet package is smaller, and so on. When relating \"a\ndataset's size\" to a read time or a peak-RSS number, use the per-format\nbytes in `sizes.csv`, never the corpus table's wire figure \u2014 that one\nanswers download cost for the source only.",
      "**FlatCityBuf's `id` is structurally unindexable, so its `id-lookup` is a\nfull walk.** The `.fcb` artefacts are built `fcb ser -A`, which indexes\n**every attribute**, and the runner does try the B+-tree first. It always\nfalls back: `id` is a CityObject's map KEY, never a member of the\nCityJSON `attributes` map FCB's schema covers, so there is no entry to\nfind. The `no-attr-index` tag on those rows records a property of the\nformat as it stands, not a gap in this harness. `attr-filter` uses the\nindex whenever its predicate column IS a member of that `attributes`\nmap, and falls back to the same full walk \u2014 carrying the same\n`no-attr-index` tag \u2014 whenever it is not, which is the case for the\nreserved `object_type`. The tag in the CSV, not the scenario name, says\nwhich of the two a given row measured.",
      "**A probe's POSITION is only nominal outside the CityJSONSeq stream.**\nThe deciles are cut from the seq order, which is the source CityJSON\ndocument's own object order, so the CityJSON artefact shares it. The\nFlatCityBuf and CityParquet artefacts are cut from that same file \u2014 but none of the\nCityGML, FlatCityBuf and CityParquet artefacts preserves it. The CityGML\nis synthesised independently by `citygml-tools`; the `.fcb` is ordered by\nits own R-tree; the CityParquet package's rows are in Hilbert-curve\norder, so a probe sits wherever its object's Hilbert key puts it. The\nCityGML and FlatCityBuf rows show **non-monotonic** times across\n`id-10pct`/`id-50pct`/`id-90pct`. Presence is\nverified for every probe; position is not. Read the three hit rows for\nany of those three formats as three samples of the distribution, never\nas a position curve.",
      "**A bbox row's target and its achieved selectivity can differ, and\n`approx` says where.** Row counts are discrete, so a target is not always\nreachable: 1% of `vienna_102081`'s 1,322 rows is 13.22 rows. The search accepts\na relative tolerance of \u00b110% and, when it cannot converge inside that,\ntakes the nearest achievable window and appends `approx` to the row's\n`notes`. A missed target is disclosed in the artefact, never silent.\n\nNo window edge lies on an object's edge. The search converges on a jump\nin the row count, so its edges land exactly on object edges, where\nwhether an object counts depends on the last digit of how a format\ndecodes the coordinate \u2014 a CityJSON integer times its scale against the\nParquet double. Each `x`/`y` edge is therefore moved to the midpoint of\nthe gap between two consecutive distinct object-edge values (a lower\nedge competes with the boxes' maxima, an upper edge with their minima);\nthe gap must exceed twice the dataset's coordinate quantisation (the\nCityJSONSeq `transform.scale`) on that axis, and when the edge's own gap\nis narrower the nearest wide one is used. `z` spans the dataset's range\nwith a margin either side. `achieved` and `approx` describe the moved\nwindow.",
      "**bbox targets are expressed in CityParquet ROW space.** The search runs\nover the CityParquet package's per-row bboxes, so `cityparquet`'s own\nachieved selectivity is the one that lands on the target. Feature-grained\nformats (`citygml`, `cityjsonseq`, `flatcitybuf`) count a different unit\nand therefore report a different achieved fraction for the **identical**\nwindow \u2014 on `vienna_102081`, 0.026 against CityParquet's 0.0098 for\n`bbox-1pct`. The window is the same for every format, which is what makes\nthe timings comparable; the `selectivity` column is not comparable across\ngrains. See Caveat 1 on counting grain.\n\nThe window is defined in the package's axis order: a CityParquet package\nstores `x` as longitude and `y` as latitude, as GeoParquet requires,\nwhatever order the CRS declares. Every other artefact keeps the source's\norder, so for a CRS that declares latitude first (Tokyo's JGD2011,\nEPSG:6697) `citygml`, `cityjson`, `cityjsonseq` and `flatcitybuf` receive\nthe window with `x` and `y` swapped. The parameter sidecar records the\nfact as `swap_xy`, read from the CRS's declared axis directions, never\nguessed from coordinate magnitudes; the `cityparquet` runner reads the\npackage and uses the window as written.",
      "**The format set is uniform across every dataset, the 3DBAG slice\n    included.** Every dataset the suite measures gets all five formats,\n    so a `citygml` row exists wherever any other row does and every\n    factor against CityGML has its baseline. On the slice, as on every\n    corpus dataset, that CityGML is a `citygml-tools` serialisation the\n    preparation chain synthesises, not a published file (Caveat 14), and it\n    is the largest artefact the chain writes, larger than the CityJSONSeq\n    it derives from by the factor the run's `sizes.csv` records.\n    Synthesising it is the longest step of `just\nbench-prep`, and parsing it dominates the slice's `citygml` rows; quote\n    those rows as the cost of reading this serialisation of the slice, with\n    the same qualification as every other `citygml` number.",
      "**The `bloom` family measures the 3DBAG slice alone, because pruning\nneeds several row groups.** A filter rules out whole row groups. At the\ndefault 65 536-row groups a table of fewer rows is one row group, on\nwhich a hit can skip nothing and which says nothing\nabout how pruning scales. The 3DBAG slice's 1,000,001 rows span 16 row groups and\nZurich's 198,699 span 4; every other corpus dataset holds fewer than\n65 536 CityObjects and is a single row group. The family therefore runs\non the slice only. Its probes are three lookups, each as a hit and a\nmiss: `id-lookup`, `feature-lookup` and `attr-lookup`, an equality\nlookup on each configured text attribute (`bloom_attributes`; a run\nwithout attribute rows is shown in the summary as not measured). A hit still costs the\nrow groups that hold the value, because a filter cannot narrow the\nsearch inside a group: on a 3DBAG tile written with 9 row groups,\n`documentnummer`'s hit returned 23 rows and its filters pruned 6 of the\n9 groups, so the reader still scanned 3. A miss can still read a group\nthrough a false positive at the 1 % target rate. The benefit depends on\nthe row-group size, which the benchmark does not vary (65 536 rows per\ngroup, the writer's default). `cityparquet+nobloom` still carries\nrow-group statistics, so the axis measures what the filters add on top\nof statistics, and every lookup row records both pruning counts.\n\nRow groups are pruned in two steps: the Bloom filter first, then the\ncolumn chunk's min/max statistics. `bloom_pruned` counts the row groups\nthe filters rejected and `stats_pruned` those the statistics rejected\namong the rest, so the two never count one row group twice. Each miss\nprobe is chosen INSIDE the row groups' stored value ranges (a stored\nidentifier or attribute value with `-readbench-absent` appended), so\nmin/max statistics alone cannot reject it and a miss row measures the\nfilters, not the statistics.",
      "**In the `bloom` family, a filter's positive is not a match.** At FPP 0.01\n    a miss can still keep a row group; `row_groups_total \u2212 bloom_pruned \u2212\nstats_pruned` on the `*-miss` rows is how many the reader still\n    scanned.",
      "**The `bloom` family reads the footer twice per lookup** \u2014 once for the\ndecode metadata, once inside the lookup \u2014 equally for both variants.",
      "**The `bloom` family measures single-table packages only.** The runner\nqueries one object table; a multi-table corpus package is refused, never\npartially read.",
      "**In the `bloom` family, `feature-50pct` is the `id-50pct` feature**, and\n`feature-miss` the same verified-absent string as `id-miss` (absent from\nboth columns).",
      "**The `bloom` family's requests are logical.** Over `--transport http`,\n`CountingObjectStore` counts the requests the reader made after\nobject_store coalesced nearby ranges \u2014 not raw wire traffic, retries or\nconnection reuse.",
      "**The format evidence is measured on bloom-enabled packages.** The\n`formats`, `sizes` and `bloom` families read packages the bloom-enabled\nwriter produces, and each results directory carries a `MACHINE.md`\ndescribing the host it was measured on. The writer puts filters on\n`id`, `feature_id` and high-cardinality string attributes by default, so\nits packages are larger and its lookups prune; the `bloom` family's\n`cityparquet+nobloom` variant is the one package measured without them.\nThe coordinator writes 22 columns, with `stats_pruned` after\n`bloom_pruned`, and applies the return rule of \"The six scenarios\".",
      "**One generation of results, one timing block, one header.** Every\nresults CSV reports the seven-column timing block\n(`time_mean_s` .. `time_q3_s`) over the warm samples, in the\ncoordinator's 22-column shape (Caveat 30). Results with a median and\n`time_mad_s`, results measured on packages without default-on bloom\nfilters, and results in the 21-column shape that predates `stats_pruned`\nexist only in git history and must not be set beside these: a median\nabsolute deviation and an interquartile range are different spreads, and\nan `id-lookup` without filters is a different operation. The\n`time_mad_s` shape is kept apart mechanically: the coordinator's\n`CSV_HEADER` (`benchmark/readbench/src/coordinator.rs`) is the only\nwriter of a results header, `benchmark/plot/tests/test_csv_contract.py`\nholds the renderer's `READ_COLUMNS` to a leading prefix of it, and the\nsummary loader refuses to render a CSV whose leading columns differ\nfrom `READ_COLUMNS` (a `time_mad_s` header among them). The 21-column\nshape shares that prefix and loads, so it and the unfiltered packages\nare kept apart by provenance (`MACHINE.md`, the run's commit), not by\nthe header.",
      "**FlatCityBuf is read through the raw FlatBuffers accessors, not\n`cur_cj_feature`.** Every FCB walk \u2014 `full-read`, the `attr-filter`\nfallback, `id-lookup`, `attr-stats` \u2014 reads\n`FeatureIter::cur_feature()`, the zero-copy `CityFeature` table, and\ntouches only what the scenario's answer needs: one flatbuffer enum for\n`object_type`, one borrowed `&str` for an id, one targeted decode of a\nsingle column out of the packed attribute blob, and \u2014 for `full-read`\nalone \u2014 every geometry's flattened `solids`/`shells`/`surfaces`/\n`strings`/`boundaries` arrays, its per-surface `semantics` indices,\nevery template instance's boundaries and every vertex. Not read by\n`full-read`: `semantics_objects`, `material`, `texture` and the feature\n`appearance`.\n\nThese rows used to call `cur_cj_feature()`, which runs `fcb_core`'s\n`to_cj_feature`: a whole CityJSON feature \u2014 nested `serde_json` boundary\narrays, every vertex converted, every attribute into a\n`serde_json::Map`, a `String` id per CityObject \u2014 built to answer a\nquestion needing one comparison. That made FCB's attribute/id rows\ncost the same as its `full-read` row, and measured the conversion rather\nthan the format. Measured on this machine, 3 repeats, medians, identical\n`result_count` in every pair: on a 10,000-object prefix of the 3DBAG\nstream `full-read` 0.404 s ->\n0.037 s, `attr-filter` on `object_type` 0.405 s -> 0.034 s, `id-miss`\n0.407 s -> 0.035 s, `attr-stats` 0.404 s -> 0.045 s; on\n`zurich_building_lod2` the same four rows 2.22/2.05/2.22/2.22 s ->\n0.55/0.50/0.50/0.51 s. Peak heap falls with\nthem (1.3 MB -> 0.3 MB on zurich). The INDEXED paths\n(`select_attr_query`, `select_query`) were already native and are\nunchanged \u2014 `b3_dak_type == slanted` on that prefix sits at ~1 ms\neither way.\n\nFlatCityBuf is a comparison baseline here, not this repository's\nsubject, so it is owed its best natural implementation. Published\nFlatCityBuf figures produced before this change overstate its\nattribute-, id- and full-read costs and must not be mixed with figures\nproduced after it.",
      "**One FlatCityBuf configuration, chosen by measurement.** The `.fcb`\n    artefacts are written `fcb ser -A` with every other index knob left at\n    its default \u2014 attribute B+-tree branching factor 256, R-tree node size 16. That is a decision, not an oversight, and it is not a swept axis:\n    the paper's only configuration axis is CityParquet's own (bloom\n    filters).\n\n    A 100,000-object prefix of the 3DBAG stream was written at attribute\n    branching factors 16, 64, 128 and 256 and read back with the benchmark's own child (3 repeats,\n    medians): `count` 0.1 ms, `bbox-1pct` 0.3 ms, `bbox-5pct` 1.0 ms,\n    `bbox-25pct` 3.4-4.0 ms, the indexed `attr-filter` (`b3_dak_type ==\nslanted`) 5.2-5.4 ms and the `id-lookup` miss 0.31-0.32 s \u2014 every\n    scenario within noise of every other factor, with identical\n    `result_count`s and file sizes inside 0.5%. `zurich_building_lod2`\n    agrees at 16/128/256, including on an indexed `attr-filter` that really\n    matches (`GebaeudeStatus` in [1, 1], 52 834 rows): 0.605/0.605/0.607 s\n    over 7 interleaved repeats. No factor wins, so the default stands.\n\n    `--index-node-size` must be left alone for a different reason: it is\n    **unreadable**. `fcb_core` 0.7.6's `FcbReader::select_query` \u2014 the\n    seekable path this benchmark reads through \u2014 passes\n    `PackedRTree::DEFAULT_NODE_SIZE` where its streaming sibling\n    `select_query_seq` passes the header's own `index_node_size`, so a file\n    written `fcb ser -A --index-node-size 64` panics with a capacity\n    overflow on every `bbox-query`. Reproduced here, not inferred.",
      "**`peak_rss_bytes` is the child's own `VmHWM` on Linux, because\n`ru_maxrss` there is floored at the coordinator's RSS.** A child that\nreported `getrusage(RUSAGE_SELF).ru_maxrss` could never report less\nthan the coordinator's peak: Linux's `exec_mmap` folds the high-water\nmark of the address space a task had BEFORE `exec` into\n`signal->maxrss`, and under `posix_spawn`/`vfork` that address space is\nthe parent's. Every format that used less than the coordinator would\nthen carry the coordinator's memory, not its own, and any read-memory\nratio computed from such values would be a ratio of floors.\n\nThe child therefore reads `VmHWM` from `/proc/self/status` (its own\n`mm`, created by `exec`, is not inherited; measured 10.5 MB for a child\nunder a 420 MB parent, against 419 MB from `ru_maxrss`). Reading it\nchanges no timing. **Read-memory figures taken with `ru_maxrss` on Linux\nmust not be set beside these**, and a value equal to the coordinator's\nown RSS is not a format's memory.",
      "**Before 2026-09-23, only CityParquet's `attr-stats` computed the\naggregate.** The scenario's contract is `(min, max, sum, count)` of a\nnumeric attribute, but the `citygml`, `cityjson`, `cityjsonseq` and\n`flatcitybuf` runners only COUNTED the CityObjects carrying a numeric\nvalue: the same `result_count`, a cheaper question. Every runner now\nfolds each value into all four aggregates \u2014 `as_f64()` of the JSON (or\nFCB-decoded) value, integers and floats alike, `f64` `min`/`max`/`+=` \u2014\nand pins them with `std::hint::black_box`, so the optimiser cannot reduce\nthe arithmetic to the count. CityParquet is unchanged: min and max from\ncolumn-chunk statistics, sum and count from a one-column projected scan,\nwhich is the format's own mechanism. The child reports the four values on\nstderr (`cityparquet-readbench: attr-stats <min> <max> <sum> <count>`,\nafter its timed line; the CSV is unchanged), and\n`tests/attr_consistency.rs` holds every format to DuckDB's\n`min/max/sum/count` on `delft.city.jsonl` over two integer and two float\ncolumns \u2014 they agree exactly, not merely within the test's 1e-6\n(CityParquet's statistics-derived minimum of `b3_bag_bag_overlap` prints\nas `-0` where the folding runners print `0`: Parquet writes a zero\nminimum as `-0.0`, and the two are equal under IEEE comparison). The\n`result_count`s did not change. **`attr-stats` timings of the\nnon-CityParquet formats from before and after this change must not be\nmixed**; the added work is one comparison pair and one addition per\nvalue, next to a full parse, so the difference is expected to be small\nbut it has not been measured.",
      "**FlatCityBuf's schema has no CityObject `address`.** Tokyo carries an\n`address` on 35,067 CityObjects; `fcb ser` writes none of them, so the\n`.fcb` holds less than the other four artefacts. No query reads an\naddress, so no `result_count` is affected, but a Tokyo size or full-read\nfigure compares a FlatCityBuf file without addresses against files with\nthem.",
      "**The package is written without LoD 0 synthesis (`--no-lod0`), so it\nholds the same geometries as every other artefact.** By default\n`cityparquet convert` synthesises an LoD 0 footprint for every object\nwithout a source LoD 0, which no other format's artefact holds.\n`readbench_prepare.sh` and the coordinator's variant packages turn it\noff; the library default is unchanged. A source LoD 0 is kept: Tokyo's\n38,743 `Building`s keep theirs, and its 11,172 `BuildingInstallation`s\n(LoD 2 or 3 in the source) gain none. With synthesis on, the package\ngained a footprint for 788 of those installations and for the 12\nMontr\u00e9al buildings without LoD 0, and on Rotterdam, Vienna, New York and\nZurich, which are LoD 2 only, for every object. Synthesis changes no\n`result_count` (verified on Tokyo, with and without it), but it adds\nbytes: on Tokyo the package is 80,249,026 B with it and 80,184,081 B\nwithout, 64,945 B or 0.08 %; on Rotterdam it is 780,544 B with it and\n714,076 B without, 66,468 B or 8.5 %, a footprint for each of its 853\nbuildings.",
      "**On Tokyo the two counting levels are far apart: 49,915 CityObjects in\n38,743 features.** Each feature is a `Building` with its\n`BuildingInstallation`s inline, so the feature-grained formats\n(`citygml`, `cityjsonseq`, `flatcitybuf`) count 38,743 for `count` and\nthe `full-read` `result_count`, while every format returns CityObjects\nfor each `bbox-*` window; Caveat 1 states which is which, and the\ncoordinator checks each level against its own reference (Caveat 2).\nVienna (1,322 in 307) and Zurich (198,699 in 52,834) are nested too; Rotterdam, New York and Montr\u00e9al hold one\nCityObject per feature.",
      "**Isolation on a shared host is best effort, and recorded rather than\nassumed.** The citable host is shared and the harness has no root, so it\npins the measured children to one NUMA node (`numactl`, else `taskset`\nwithout memory binding), keeps the coordinator on that node's first core,\ncan cap the children's memory through `systemd-run --user`, and holds each\nsample while the node's share of the load exceeds `--max-load`. It cannot\nchange the CPU governor, disable SMT or turbo, drop page caches or isolate\ncores (`isolcpus`). What a run requested and what was applied is in its\n`.params.json` under `isolation`, with each sample's `load1`, runnable\ncount and `MemAvailable` in `.samples.json`; a params sidecar without an\n`isolation` object comes from a run that applied none of it. A row tagged\n`busy` ran after the longest wait with the node still contended and is not\ncited without its spread. The samples of one cell run back to back, with\nno interleaving across formats, so slow drift in co-tenant load lands on\nwhole cells rather than averaging out across formats.",
      "**The `cityjson` artefact is measured without optional whitespace, like\nthe `citygml` artefact (`--no-pretty-print`, Caveat 14).**\n`benchmark/scripts/compact_json.py` writes it: it removes the whitespace\noutside strings and copies every other byte, so string contents and\nnumber spellings are the published ones and an already-compact document\nis unchanged. A JSON parser and serialiser would not do: `jq -c` (1.7.1)\nrespells numbers (Tokyo's `1e-10` scale becomes `1E-10`, which shrinks\nTokyo by 986 B), though every value survives. All six corpus sources\nare compact as published (montreal 498,371,022 B, nyc_da13_buildings 110,083,137 B,\nrotterdam_delfshaven 2,731,804 B, tokyo 315,968,009 B, vienna_102081\n5,635,634 B, zurich_building_lod2 292,500,409 B), and so is the\nnormalised source Caveat 41 derives from one of them, so on the current\ncorpus the step is a no-op: each `cityjson` artefact is byte identical\nto the source the chain builds from \u2014 the published one for five\ndatasets, and for vienna_102081 (4,731,370 B) the normalised one. The\nnormalised source is written by `serde_json`, which writes the shortest\nround-trip spelling of each number: every value survives, and\nvienna_102081's spellings are the published ones, but a source that\nspells a float otherwise (`-1.1e-06` for `-1.1e-6`) would be respelled,\nso the published spellings are guaranteed for the five pass-through\ndatasets only. A size or\nparse-time gap against CityJSON therefore cannot be dismissed as\nwhitespace.",
      "**The corpus holds at most one geometry per LoD and object.** Before any\nartefact is built, `readbench_prepare.sh` normalises a CityJSON or\nCityJSONSeq source with `lod-normalise`\n(`benchmark/readbench/src/lod.rs`, `keep_first_per_lod`): each\nCityObject keeps the first geometry at each LoD in source order, the\nvertices nothing references any more are removed and the boundaries\nre-indexed, and every CityObject is kept, with or without geometry. The\nkept geometries' semantics, `material` and `texture` are unchanged;\ntexture coordinates (`vertices-texture`) and the `appearance` arrays are\nleft as they are, so every kept reference still resolves and a dropped\ngeometry's texture coordinates stay in the shared array. A changed\nsource is re-serialised compactly; an unchanged one is used byte for\nbyte. This is a property of the CORPUS, chosen because CityParquet\nstores one geometry column per LoD: its writer keeps the first geometry\nat a LoD and drops the rest (`skipped_same_lod_geometries`), so without\nthe normalisation the package would hold fewer geometries than the other\nfour formats. \"The same LoD\" is the writer's key exactly \u2014 the `lod`\nstring as `Lod::parse` reads it, so `2` and `2.0` are one LoD \u2014 and a\nGeometryInstance never claims a LoD. The CityParquet stage then asserts\nthat the writer skipped nothing, and fails the dataset otherwise. On the\ncorpus, vienna_102081 loses 1,102 of its 2,204 geometries (each LoD 2\nobject carries a MultiSurface, kept, and a Solid, dropped; no vertex is\norphaned); the other five sources and the 3DBAG slice are unchanged. A\nCityGML source is not normalised; none is in the corpus.",
      "**Cross-format consistency covers what is returned, not only how\nmany.** After the counts of Caveat 2, the coordinator's\n`check_returned` compares, per scenario and query tag, what every\nformat returned: the identifier-set digest (count, sum and xor of the\nidentifiers' hashes) of each `bbox-*` window and of `attr-filter`; the\nnumber of geometries returned by each window and the extent their\nvisited coordinates span; and, for `full-read` and each `id-*` probe,\nthe CityObjects, geometries and semantic faces visited and their\nextent. Extents are brought into the package's axis order and must\nagree within one quantisation step of the package's `transform` per\naxis; every other value must be equal. A disagreement tags the rows\n`count-mismatch` and fails the run. A row that reports no value for a\npart is named on stderr rather than passed silently.\n\nA format may be excused from one comparison only through the explicit\n`TOTAL_EXCLUSIONS` list in the coordinator, each entry naming the\nformat, the comparison and the reason, and pinned by a test. The list\nholds one entry: **`citygml` is not compared on the `full-read` and\nidentifier-lookup `extent`**. CityGML stores real coordinates and no\n`transform`, so the library's CityGML reader quantises them with its\nown step, derived from the CRS's units \u2014 a millimetre on a metre axis.\nWhere the source's `transform` is finer (Tokyo's height step is\n1e-6 m), the CityGML extent lies up to half a millimetre from the other\nfour formats', beyond the one-step tolerance. Its spatial windows'\nreturned extent, and every count, digest and total, are still compared.",
      "**The corpus holds only content that CityGML 2.0, the baseline, can\n    express.** Every artefact derives from one source, and the comparison\n    is fair only if all five formats hold the same content, so a dataset\n    whose CityGML 2.0 synthesis loses content is excluded. Ingolstadt is\n    excluded on this rule. Its 32,670 Window and Door semantic surfaces\n    name no parent surface, and CityGML 2.0 can hold an opening only inside\n    a wall or roof surface; `citygml-tools from-cityjson -v 2.0` writes the\n    references but omits the polygons, and prints no warning, so its\n    synthesised CityGML holds about a quarter of the dataset's faces. No\n    corpus dataset carries Window or Door semantics, and none has a\n    dangling reference; as a consequence the corpus has no LoD 3 dataset\n    with openings, and its only LoD 3 content is Tokyo's 21 LoD 3 solids\n    and 103 LoD 3 installation geometries.\n\n- **The network family's times come from a simulated network.** The\n  primary over-HTTP measurement reads through `net-sim`, a local server\n  with a fixed bandwidth (one budget shared by every connection) and a\n  fixed latency per request, with no TLS, HTTP/2, connection set-up,\n  jitter, loss or service-side throttling. Its times are therefore a\n  model of the transfer: a reader should cite the bytes read and the\n  request count as the format's properties, and the time as what one\n  stated profile makes of them. A run against real object storage is a\n  snapshot of one path at one time. How each client issues its requests\n  decides what the latency multiplies: the CityGML, CityJSON and\n  CityJSONSeq arms fetch the whole object with one `GET` per query, so\n  every query costs the whole file's transfer plus one latency, with one\n  exception: the identifier lookup of the two streaming formats, CityGML\n  and CityJSONSeq, parses the body as it arrives and abandons the\n  transfer at the hit, so its `bytes_read` is the bytes received up to\n  the hit (chunk-granular, counted on the body stream, not by\n  `CountingObjectStore`), and only a miss reads the whole file. CityJSON\n  is one JSON document and cannot stop early. On an abandoned transfer\n  the simulated server has sent more than the client received (what was\n  in flight); the params sidecar reports that gap as\n  `server.unreceived_bytes` rather than folding it into either total. The\n  CityParquet arm reads `metadata.json`, then each Parquet file through\n  `parquet`'s `ParquetObjectReader` over `object_store` (a `HEAD` for the\n  size, the footer, then the column chunks of the row groups that\n  survive pruning, as ranged `GET`s that `object_store` may coalesce and\n  issue concurrently); the FlatCityBuf arm reads through\n  `http-range-client`'s buffered client, one ranged `GET` at a time, for\n  the header, the spatial or attribute index and then the features.\n  Because the text formats' bytes and requests are the same for every\n  query, and their time nearly so (within 0.92\u20131.15\u00d7 of read all in the\n  end-to-end runs on Rotterdam and Vienna, with the transfer 83\u201394 % of\n  it at `typical`), they are measured by default only on read all and the\n  four identifier lookups; their other six queries are derived rows.\n  A derived row is written only when every sample of the format's read\n  all and identifier miss made one request and read exactly the\n  artefact's size (an identifier hit cannot prove it: the streaming\n  formats stop at the hit),\n  copies read all's bytes and request count, and has no time, memory or\n  result count (`notes` carries `derived-from=full-read;status=derived`).\n  It states that the query costs the same transfer as read all; it is not\n  a measured time, the figure marks it with `\u2020`, and the cross-format\n  consistency check skips it. `[network] whole_file_scenarios` in\n  `manifest.toml` (`--network-whole-file-scenarios`) selects\n  `full-read,id-lookup` (the default), `full-read` or `all`, the last\n  measuring every query.\n\n- **FlatCityBuf's indexed attribute filter over HTTP reads many times its\n  file, and the cause is the pinned library, not the format.** On\n  Rotterdam (a 2.95 MB `.fcb`) the `attr-filter` query\n  (`TerrainHeight >= 2.45`, 217 matching CityObjects) issues 144 ranged\n  `GET`s and reads 113.5 MB, about 38 times the file, while `full-read`\n  takes 4 requests and 2.95 MB and the 1 % window 4 requests and 85 kB.\n  The runner opens the file once and reads each hit once; the bytes come\n  from `fcb_core` 0.7.6 and `http-range-client` 0.9.1. The B+-tree node\n  fetch (`static_btree/stree.rs`) sets the buffered client's minimum\n  request size to 1 MiB and nothing resets it, and the hit list comes\n  back in key order, not file order, so a hit that falls before the\n  buffer, or past its end, clears the buffer and fetches 1 MiB (or up\n  to the end of the file) from that feature's offset; the next hit\n  usually falls outside that buffer again. The spatial window does not\n  show this because its iterator sets its own request size and visits\n  the features in file order. Neither text equality filter on this\n  corpus reaches this path. Vienna's `roofType = FLACHDACH` names 600\n  CityObjects in a 307-feature file, so its hit list is longer than the\n  feature count and the row falls back to a `select_all` walk (tagged\n  `attr-index-failed`; 9 requests, 4.6 MB for a 3.6 MB file). Tokyo's\n  `usage = \"401\"` gets no hits from the HTTP index at all and takes the\n  same tagged walk (next item). The\n  attribute filter's bytes, requests and time over HTTP are therefore a\n  property of this client, and a reader should not cite them as the\n  cost of FlatCityBuf's attribute index; the local arm reads a file\n  handle and is not affected.\n\n- **FlatCityBuf's HTTP attribute index drops every key that names 4,096 or more features**, and the cause is the pinned library, not the format.\n  On Tokyo (a 265 MB `.fcb`), `usage = \"401\"` names 12,348 CityObjects\n  through the local index, but the same query through `fcb_core` 0.7.6's\n  `HttpFcbReader` returns an empty hit list after 4 requests and 1.09 MB.\n  The same happens to `class = \"3001\"` (11,599 locally) and to\n  `\u5ef6\u3079\u9762\u7a4d\u63db\u7b97\u4fc2\u6570 = \"1\"` (19,956), while keys with 566 and 84 matches\n  come back whole. A key's B+-tree payload entry is 4 bytes plus 8 per\n  matching feature. The HTTP reader prefetches 16 KiB of the payload\n  section for a column with few distinct values\n  (`compute_payload_prefetch_size`). It re-fetches an entry that does not\n  fit in that prefetch with a fixed 32 KiB request\n  (`batch_resolve_payloads`, `static_btree/stree.rs`). An entry longer\n  than 32 KiB, which is any key naming 4,096 or more features, then fails\n  to decode, and the reader drops it without an error. The local reader\n  reads the whole entry from the file handle and is not affected. The HTTP\n  arm therefore never publishes an empty index answer: it verifies it by\n  the full `select_all` walk, tagged `attr-index-failed`. On Tokyo that\n  walk returns the 12,348 objects, with the same identifier digest as the\n  local index, for 254 requests and 261.4 MB. A genuine miss costs the\n  same walk. A range predicate is not guarded: one heavy key inside the\n  range would be dropped from a non-empty answer, which only the\n  cross-format consistency check detects."
    ],
    "axis_baseline": "cityparquet",
    "format_axis": [
      "citygml",
      "cityjson",
      "cityjsonseq",
      "flatcitybuf",
      "cityparquet"
    ],
    "object_grain_formats": [
      "cityjson",
      "cityparquet"
    ],
    "feature_grain_formats": [
      "citygml",
      "cityjsonseq",
      "flatcitybuf"
    ],
    "excluded_formats": [],
    "conditions": {
      "formats": [
        "montreal: attribute filter measuredHeight >= 15.543 (7,858 matched, share 25 %, hand-picked); windows bbox-1pct achieved 1 %, bbox-5pct achieved 5 %, bbox-25pct achieved 25 %",
        "nyc_da13_buildings: attribute filter BIN = '1000000' (173 matched, share 0.728 %, hand-picked); windows bbox-1pct achieved 1 %, bbox-5pct achieved 5 %, bbox-25pct achieved 25 %",
        "rotterdam_delfshaven: attribute filter TerrainHeight >= 2.45 (217 matched, share 25.4 %, hand-picked); windows bbox-1pct achieved 1.06 %, bbox-5pct achieved 5.04 %, bbox-25pct achieved 25 %",
        "tokyo: attribute filter usage = '401' (12,348 matched, share 24.7 %, hand-picked); windows bbox-1pct achieved 1 %, bbox-5pct achieved 5 %, bbox-25pct achieved 25 %",
        "vienna_102081: attribute filter roofType = 'FLACHDACH' (600 matched, share 45.4 %, hand-picked); windows bbox-1pct achieved 0.983 %, bbox-5pct achieved 5.07 %, bbox-25pct achieved 25 %",
        "zurich_building_lod2: attribute filter class = 'BB01' (38,601 matched, share 19.4 %, hand-picked); windows bbox-1pct achieved 1 %, bbox-5pct achieved 5 %, bbox-25pct achieved 25 %"
      ],
      "databases": []
    },
    "machine": {
      "bloom": null
    }
  },
  "datasets": [
    {
      "id": "zurich_building_lod2",
      "objects": 198699,
      "features": 52834,
      "raw_mb": 259.121439,
      "subtitle": "198,699 CityObjects \u00b7 259 MB CityJSONSeq",
      "title": "Zurich"
    },
    {
      "id": "tokyo",
      "objects": 49915,
      "features": 38743,
      "raw_mb": 303.886615,
      "subtitle": "49,915 CityObjects \u00b7 304 MB CityJSONSeq",
      "title": "Tokyo (Chiyoda)"
    },
    {
      "id": "montreal",
      "objects": 31415,
      "features": 31415,
      "raw_mb": 372.320945,
      "subtitle": "31,415 CityObjects \u00b7 372 MB CityJSONSeq",
      "title": "Montr\u00e9al"
    },
    {
      "id": "nyc_da13_buildings",
      "objects": 23777,
      "features": 23777,
      "raw_mb": 100.087976,
      "subtitle": "23,777 CityObjects \u00b7 100 MB CityJSONSeq",
      "title": "New York"
    },
    {
      "id": "vienna_102081",
      "objects": 1322,
      "features": 307,
      "raw_mb": 4.449108,
      "subtitle": "1,322 CityObjects \u00b7 4.4 MB CityJSONSeq",
      "title": "Vienna"
    },
    {
      "id": "rotterdam_delfshaven",
      "objects": 853,
      "features": 853,
      "raw_mb": 2.822644,
      "subtitle": "853 CityObjects \u00b7 2.8 MB CityJSONSeq",
      "title": "Rotterdam"
    }
  ],
  "read": [
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 7.914707,
      "time_lo_s": 7.848581,
      "time_hi_s": 8.064739,
      "time_min_s": 7.767576,
      "time_max_s": 31.191037,
      "repeat": 25,
      "heap_b": 7612842,
      "rss_b": 30621696,
      "result_count": 38601,
      "base_time_s": 7.914707,
      "base_rss_b": 30621696.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=class=BB01",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 1.544214,
      "time_lo_s": 1.536014,
      "time_hi_s": 1.558789,
      "time_min_s": 1.485658,
      "time_max_s": 1.597611,
      "repeat": 25,
      "heap_b": 3669467153,
      "rss_b": 4160897024,
      "result_count": 38601,
      "base_time_s": 7.914707,
      "base_rss_b": 30621696.0,
      "time_factor": 5.125395184864274,
      "rss_factor": 0.007359397702796886,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=class=BB01",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 1.139812,
      "time_lo_s": 1.135362,
      "time_hi_s": 1.147555,
      "time_min_s": 1.126329,
      "time_max_s": 1.204031,
      "repeat": 25,
      "heap_b": 402662348,
      "rss_b": 543293440,
      "result_count": 38601,
      "base_time_s": 7.914707,
      "base_rss_b": 30621696.0,
      "time_factor": 6.943870568128779,
      "rss_factor": 0.056363088057901085,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=class=BB01",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.011878,
      "time_lo_s": 0.011828,
      "time_hi_s": 0.011942,
      "time_min_s": 0.011678,
      "time_max_s": 0.012142,
      "repeat": 25,
      "heap_b": 6300315,
      "rss_b": 19218432,
      "result_count": 38601,
      "base_time_s": 7.914707,
      "base_rss_b": 30621696.0,
      "time_factor": 666.3333052702475,
      "rss_factor": 1.5933503836317136,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=class=BB01",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.120423,
      "time_lo_s": 0.116415,
      "time_hi_s": 0.121266,
      "time_min_s": 0.114904,
      "time_max_s": 0.124993,
      "repeat": 25,
      "heap_b": 4787100,
      "rss_b": 14237696,
      "result_count": 38601,
      "base_time_s": 7.914707,
      "base_rss_b": 30621696.0,
      "time_factor": 65.72421381297592,
      "rss_factor": 2.1507479861910244,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=class=BB01",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "attr-stats",
      "time_s": 7.784363,
      "time_lo_s": 7.695191,
      "time_hi_s": 8.061006,
      "time_min_s": 7.574663,
      "time_max_s": 18.198944,
      "repeat": 25,
      "heap_b": 7612842,
      "rss_b": 30867456,
      "result_count": 52834,
      "base_time_s": 7.784363,
      "base_rss_b": 30867456.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=GebaeudeStatus",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "attr-stats",
      "time_s": 1.555532,
      "time_lo_s": 1.547742,
      "time_hi_s": 1.585556,
      "time_min_s": 1.524818,
      "time_max_s": 2.191082,
      "repeat": 25,
      "heap_b": 3669467153,
      "rss_b": 4160831488,
      "result_count": 52834,
      "base_time_s": 7.784363,
      "base_rss_b": 30867456.0,
      "time_factor": 5.004309136681213,
      "rss_factor": 0.007418578735770229,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=GebaeudeStatus",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "attr-stats",
      "time_s": 1.139906,
      "time_lo_s": 1.13231,
      "time_hi_s": 1.148312,
      "time_min_s": 1.12519,
      "time_max_s": 1.177414,
      "repeat": 25,
      "heap_b": 402662348,
      "rss_b": 545914880,
      "result_count": 52834,
      "base_time_s": 7.784363,
      "base_rss_b": 30867456.0,
      "time_factor": 6.828951685489856,
      "rss_factor": 0.056542617046818726,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=GebaeudeStatus",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "attr-stats",
      "time_s": 0.001157,
      "time_lo_s": 0.001074,
      "time_hi_s": 0.001612,
      "time_min_s": 0.001027,
      "time_max_s": 0.003033,
      "repeat": 25,
      "heap_b": 141871,
      "rss_b": 10452992,
      "result_count": 52834,
      "base_time_s": 7.784363,
      "base_rss_b": 30867456.0,
      "time_factor": 6728.057908383751,
      "rss_factor": 2.9529780564263324,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=GebaeudeStatus",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "attr-stats",
      "time_s": 0.126192,
      "time_lo_s": 0.12356,
      "time_hi_s": 0.130168,
      "time_min_s": 0.121211,
      "time_max_s": 0.133382,
      "repeat": 25,
      "heap_b": 295779,
      "rss_b": 7749632,
      "result_count": 52834,
      "base_time_s": 7.784363,
      "base_rss_b": 30867456.0,
      "time_factor": 61.68666001014327,
      "rss_factor": 3.983086680761099,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=GebaeudeStatus",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 8.037762,
      "time_lo_s": 7.967751,
      "time_hi_s": 8.089324,
      "time_min_s": 7.88443,
      "time_max_s": 8.783372,
      "repeat": 25,
      "heap_b": 7612828,
      "rss_b": 30851072,
      "result_count": 1987,
      "base_time_s": 8.037762,
      "base_rss_b": 30851072.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 1.978653,
      "time_lo_s": 1.945258,
      "time_hi_s": 2.069801,
      "time_min_s": 1.907914,
      "time_max_s": 2.48873,
      "repeat": 25,
      "heap_b": 3669467139,
      "rss_b": 4181573632,
      "result_count": 1987,
      "base_time_s": 8.037762,
      "base_rss_b": 30851072.0,
      "time_factor": 4.062239311289044,
      "rss_factor": 0.007377861713090121,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 1.230296,
      "time_lo_s": 1.223031,
      "time_hi_s": 1.253435,
      "time_min_s": 1.2124,
      "time_max_s": 1.422244,
      "repeat": 25,
      "heap_b": 402662334,
      "rss_b": 546144256,
      "result_count": 1987,
      "base_time_s": 8.037762,
      "base_rss_b": 30851072.0,
      "time_factor": 6.533193637953794,
      "rss_factor": 0.05648887022259555,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.035007,
      "time_lo_s": 0.034575,
      "time_hi_s": 0.035457,
      "time_min_s": 0.034194,
      "time_max_s": 0.038889,
      "repeat": 25,
      "heap_b": 9856851,
      "rss_b": 25870336,
      "result_count": 1987,
      "base_time_s": 8.037762,
      "base_rss_b": 30851072.0,
      "time_factor": 229.6044219727483,
      "rss_factor": 1.1925269157694744,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 0.00191,
      "time_lo_s": 0.001859,
      "time_hi_s": 0.00196,
      "time_min_s": 0.001791,
      "time_max_s": 0.002541,
      "repeat": 25,
      "heap_b": 166820,
      "rss_b": 8142848,
      "result_count": 1987,
      "base_time_s": 8.037762,
      "base_rss_b": 30851072.0,
      "time_factor": 4208.252356020943,
      "rss_factor": 3.788732394366197,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 7.964976,
      "time_lo_s": 7.930503,
      "time_hi_s": 8.039457,
      "time_min_s": 7.890968,
      "time_max_s": 8.373525,
      "repeat": 25,
      "heap_b": 7612828,
      "rss_b": 30605312,
      "result_count": 49675,
      "base_time_s": 7.964976,
      "base_rss_b": 30605312.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 1.987771,
      "time_lo_s": 1.962645,
      "time_hi_s": 2.014939,
      "time_min_s": 1.935248,
      "time_max_s": 2.289362,
      "repeat": 25,
      "heap_b": 3669467139,
      "rss_b": 4179771392,
      "result_count": 49675,
      "base_time_s": 7.964976,
      "base_rss_b": 30605312.0,
      "time_factor": 4.0069887326055165,
      "rss_factor": 0.007322245436336055,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 1.238668,
      "time_lo_s": 1.231574,
      "time_hi_s": 1.248715,
      "time_min_s": 1.218266,
      "time_max_s": 1.291172,
      "repeat": 25,
      "heap_b": 402662334,
      "rss_b": 543670272,
      "result_count": 49675,
      "base_time_s": 7.964976,
      "base_rss_b": 30605312.0,
      "time_factor": 6.430275101964368,
      "rss_factor": 0.056293885423258895,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.113065,
      "time_lo_s": 0.112393,
      "time_hi_s": 0.114142,
      "time_min_s": 0.110315,
      "time_max_s": 0.129851,
      "repeat": 25,
      "heap_b": 14526058,
      "rss_b": 59162624,
      "result_count": 49675,
      "base_time_s": 7.964976,
      "base_rss_b": 30605312.0,
      "time_factor": 70.4459912439747,
      "rss_factor": 0.5173082248684575,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.045881,
      "time_lo_s": 0.044113,
      "time_hi_s": 0.047118,
      "time_min_s": 0.043097,
      "time_max_s": 0.049097,
      "repeat": 25,
      "heap_b": 1289998,
      "rss_b": 9846784,
      "result_count": 49675,
      "base_time_s": 7.964976,
      "base_rss_b": 30605312.0,
      "time_factor": 173.60074976569823,
      "rss_factor": 3.108153078202995,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 8.036732,
      "time_lo_s": 7.985248,
      "time_hi_s": 8.19113,
      "time_min_s": 7.93002,
      "time_max_s": 8.487619,
      "repeat": 25,
      "heap_b": 7612828,
      "rss_b": 30949376,
      "result_count": 9935,
      "base_time_s": 8.036732,
      "base_rss_b": 30949376.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 1.97882,
      "time_lo_s": 1.941995,
      "time_hi_s": 1.998231,
      "time_min_s": 1.907329,
      "time_max_s": 2.478386,
      "repeat": 25,
      "heap_b": 3669467139,
      "rss_b": 4181934080,
      "result_count": 9935,
      "base_time_s": 8.036732,
      "base_rss_b": 30949376.0,
      "time_factor": 4.061375971538594,
      "rss_factor": 0.007400732629434465,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 1.224431,
      "time_lo_s": 1.216281,
      "time_hi_s": 1.235414,
      "time_min_s": 1.208277,
      "time_max_s": 1.427184,
      "repeat": 25,
      "heap_b": 402662334,
      "rss_b": 546013184,
      "result_count": 9935,
      "base_time_s": 8.036732,
      "base_rss_b": 30949376.0,
      "time_factor": 6.563646297749731,
      "rss_factor": 0.05668247014343156,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.061319,
      "time_lo_s": 0.060324,
      "time_hi_s": 0.062298,
      "time_min_s": 0.05899,
      "time_max_s": 0.063426,
      "repeat": 25,
      "heap_b": 10789844,
      "rss_b": 39944192,
      "result_count": 9935,
      "base_time_s": 8.036732,
      "base_rss_b": 30949376.0,
      "time_factor": 131.06430307082636,
      "rss_factor": 0.7748154224774405,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.008921,
      "time_lo_s": 0.008769,
      "time_hi_s": 0.009148,
      "time_min_s": 0.008637,
      "time_max_s": 0.009815,
      "repeat": 25,
      "heap_b": 299126,
      "rss_b": 8519680,
      "result_count": 9935,
      "base_time_s": 8.036732,
      "base_rss_b": 30949376.0,
      "time_factor": 900.8779284833539,
      "rss_factor": 3.6326923076923077,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 7.837472,
      "time_lo_s": 7.808661,
      "time_hi_s": 7.873604,
      "time_min_s": 7.782349,
      "time_max_s": 8.042036,
      "repeat": 25,
      "heap_b": 7612823,
      "rss_b": 30638080,
      "result_count": 52834,
      "base_time_s": 7.837472,
      "base_rss_b": 30638080.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 1.523112,
      "time_lo_s": 1.513527,
      "time_hi_s": 1.532582,
      "time_min_s": 1.466929,
      "time_max_s": 1.620765,
      "repeat": 25,
      "heap_b": 3669467134,
      "rss_b": 4160831488,
      "result_count": 198699,
      "base_time_s": 7.837472,
      "base_rss_b": 30638080.0,
      "time_factor": 5.145696442546575,
      "rss_factor": 0.007363451292935418,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 1.154294,
      "time_lo_s": 1.132898,
      "time_hi_s": 1.17908,
      "time_min_s": 1.12242,
      "time_max_s": 1.381178,
      "repeat": 25,
      "heap_b": 402662329,
      "rss_b": 545964032,
      "result_count": 52834,
      "base_time_s": 7.837472,
      "base_rss_b": 30638080.0,
      "time_factor": 6.789840369957741,
      "rss_factor": 0.056117396392881796,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.000259,
      "time_lo_s": 0.000254,
      "time_hi_s": 0.000266,
      "time_min_s": 0.000248,
      "time_max_s": 0.000349,
      "repeat": 25,
      "heap_b": 141852,
      "rss_b": 9224192,
      "result_count": 198699,
      "base_time_s": 7.837472,
      "base_rss_b": 30638080.0,
      "time_factor": 30260.509652509652,
      "rss_factor": 3.3214920071047955,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 2.6e-05,
      "time_lo_s": 2.4e-05,
      "time_hi_s": 2.9e-05,
      "time_min_s": 2.3e-05,
      "time_max_s": 3.8e-05,
      "repeat": 25,
      "heap_b": 9724,
      "rss_b": 7290880,
      "result_count": 52834,
      "base_time_s": 7.837472,
      "base_rss_b": 30638080.0,
      "time_factor": 301441.2307692308,
      "rss_factor": 4.202247191011236,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 7.958359,
      "time_lo_s": 7.92866,
      "time_hi_s": 8.022294,
      "time_min_s": 7.897244,
      "time_max_s": 8.418232,
      "repeat": 25,
      "heap_b": 7612827,
      "rss_b": 30572544,
      "result_count": 52834,
      "base_time_s": 7.958359,
      "base_rss_b": 30572544.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 1.824947,
      "time_lo_s": 1.801076,
      "time_hi_s": 1.876504,
      "time_min_s": 1.766495,
      "time_max_s": 2.721176,
      "repeat": 25,
      "heap_b": 3669467138,
      "rss_b": 4160880640,
      "result_count": 198699,
      "base_time_s": 7.958359,
      "base_rss_b": 30572544.0,
      "time_factor": 4.360871302015894,
      "rss_factor": 0.007347613797448417,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 1.229377,
      "time_lo_s": 1.218837,
      "time_hi_s": 1.259297,
      "time_min_s": 1.197104,
      "time_max_s": 1.943921,
      "repeat": 25,
      "heap_b": 402662333,
      "rss_b": 546701312,
      "result_count": 52834,
      "base_time_s": 7.958359,
      "base_rss_b": 30572544.0,
      "time_factor": 6.47348941781081,
      "rss_factor": 0.055921841285063535,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.559127,
      "time_lo_s": 0.550057,
      "time_hi_s": 0.561508,
      "time_min_s": 0.543484,
      "time_max_s": 0.593637,
      "repeat": 25,
      "heap_b": 17173185,
      "rss_b": 88834048,
      "result_count": 198699,
      "base_time_s": 7.958359,
      "base_rss_b": 30572544.0,
      "time_factor": 14.233544436237205,
      "rss_factor": 0.34415344891184063,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.155796,
      "time_lo_s": 0.151725,
      "time_hi_s": 0.157668,
      "time_min_s": 0.149349,
      "time_max_s": 0.185556,
      "repeat": 25,
      "heap_b": 295764,
      "rss_b": 7782400,
      "result_count": 52834,
      "base_time_s": 7.958359,
      "base_rss_b": 30572544.0,
      "time_factor": 51.08192123032684,
      "rss_factor": 3.928421052631579,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 0.610096,
      "time_lo_s": 0.608808,
      "time_hi_s": 0.61212,
      "time_min_s": 0.600251,
      "time_max_s": 0.625273,
      "repeat": 25,
      "heap_b": 1863426,
      "rss_b": 14090240,
      "result_count": 1,
      "base_time_s": 0.610096,
      "base_rss_b": 14090240.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 1.537513,
      "time_lo_s": 1.526456,
      "time_hi_s": 1.550865,
      "time_min_s": 1.477686,
      "time_max_s": 1.778799,
      "repeat": 25,
      "heap_b": 3669467179,
      "rss_b": 4160765952,
      "result_count": 1,
      "base_time_s": 0.610096,
      "base_rss_b": 14090240.0,
      "time_factor": 0.39680705138753297,
      "rss_factor": 0.003386453398857269,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.192011,
      "time_lo_s": 0.185241,
      "time_hi_s": 0.203215,
      "time_min_s": 0.180523,
      "time_max_s": 0.363316,
      "repeat": 25,
      "heap_b": 402662374,
      "rss_b": 541917184,
      "result_count": 1,
      "base_time_s": 0.610096,
      "base_rss_b": 14090240.0,
      "time_factor": 3.17740129471749,
      "rss_factor": 0.026000725601644698,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.00956,
      "time_lo_s": 0.009376,
      "time_hi_s": 0.009869,
      "time_min_s": 0.009153,
      "time_max_s": 0.026311,
      "repeat": 25,
      "heap_b": 9440997,
      "rss_b": 28147712,
      "result_count": 1,
      "base_time_s": 0.610096,
      "base_rss_b": 14090240.0,
      "time_factor": 63.817573221757314,
      "rss_factor": 0.5005820721769499,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.033689,
      "time_lo_s": 0.032995,
      "time_hi_s": 0.034526,
      "time_min_s": 0.031404,
      "time_max_s": 0.061519,
      "repeat": 25,
      "heap_b": 295910,
      "rss_b": 7798784,
      "result_count": 1,
      "base_time_s": 0.610096,
      "base_rss_b": 14090240.0,
      "time_factor": 18.109650034135772,
      "rss_factor": 1.8067226890756303,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 4.006234,
      "time_lo_s": 3.98411,
      "time_hi_s": 4.082504,
      "time_min_s": 3.96701,
      "time_max_s": 6.591521,
      "repeat": 25,
      "heap_b": 7612868,
      "rss_b": 25722880,
      "result_count": 1,
      "base_time_s": 4.006234,
      "base_rss_b": 25722880.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 1.548299,
      "time_lo_s": 1.531755,
      "time_hi_s": 1.573488,
      "time_min_s": 1.499314,
      "time_max_s": 1.662237,
      "repeat": 25,
      "heap_b": 3669467179,
      "rss_b": 4160798720,
      "result_count": 1,
      "base_time_s": 4.006234,
      "base_rss_b": 25722880.0,
      "time_factor": 2.5875066766819588,
      "rss_factor": 0.006182197633438995,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.630313,
      "time_lo_s": 0.624256,
      "time_hi_s": 0.639049,
      "time_min_s": 0.615629,
      "time_max_s": 0.681636,
      "repeat": 25,
      "heap_b": 402662374,
      "rss_b": 544833536,
      "result_count": 1,
      "base_time_s": 4.006234,
      "base_rss_b": 25722880.0,
      "time_factor": 6.355943793004428,
      "rss_factor": 0.04721236542972274,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.01191,
      "time_lo_s": 0.011831,
      "time_hi_s": 0.012011,
      "time_min_s": 0.01168,
      "time_max_s": 0.01881,
      "repeat": 25,
      "heap_b": 10102743,
      "rss_b": 27394048,
      "result_count": 1,
      "base_time_s": 4.006234,
      "base_rss_b": 25722880.0,
      "time_factor": 336.37565071368596,
      "rss_factor": 0.9389952153110048,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.090502,
      "time_lo_s": 0.08767,
      "time_hi_s": 0.099912,
      "time_min_s": 0.084112,
      "time_max_s": 0.112629,
      "repeat": 25,
      "heap_b": 295910,
      "rss_b": 7831552,
      "result_count": 1,
      "base_time_s": 4.006234,
      "base_rss_b": 25722880.0,
      "time_factor": 44.26680073368544,
      "rss_factor": 3.284518828451883,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 7.370781,
      "time_lo_s": 7.329127,
      "time_hi_s": 7.414939,
      "time_min_s": 7.218378,
      "time_max_s": 7.765141,
      "repeat": 25,
      "heap_b": 7612868,
      "rss_b": 29720576,
      "result_count": 1,
      "base_time_s": 7.370781,
      "base_rss_b": 29720576.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 1.563205,
      "time_lo_s": 1.542292,
      "time_hi_s": 1.592264,
      "time_min_s": 1.515931,
      "time_max_s": 1.6753,
      "repeat": 25,
      "heap_b": 3669467179,
      "rss_b": 4160831488,
      "result_count": 1,
      "base_time_s": 7.370781,
      "base_rss_b": 29720576.0,
      "time_factor": 4.71517235423377,
      "rss_factor": 0.007142941521596176,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 1.045651,
      "time_lo_s": 1.043842,
      "time_hi_s": 1.074079,
      "time_min_s": 1.037398,
      "time_max_s": 1.317598,
      "repeat": 25,
      "heap_b": 402662374,
      "rss_b": 545456128,
      "result_count": 1,
      "base_time_s": 7.370781,
      "base_rss_b": 29720576.0,
      "time_factor": 7.048987664144154,
      "rss_factor": 0.0544875645800793,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.009872,
      "time_lo_s": 0.009661,
      "time_hi_s": 0.010288,
      "time_min_s": 0.009442,
      "time_max_s": 0.021165,
      "repeat": 25,
      "heap_b": 10262575,
      "rss_b": 28819456,
      "result_count": 1,
      "base_time_s": 7.370781,
      "base_rss_b": 29720576.0,
      "time_factor": 746.635028363047,
      "rss_factor": 1.0312677657760092,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.117092,
      "time_lo_s": 0.112073,
      "time_hi_s": 0.125054,
      "time_min_s": 0.108304,
      "time_max_s": 0.150141,
      "repeat": 25,
      "heap_b": 295910,
      "rss_b": 7815168,
      "result_count": 1,
      "base_time_s": 7.370781,
      "base_rss_b": 29720576.0,
      "time_factor": 62.9486301369863,
      "rss_factor": 3.80293501048218,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 7.943786,
      "time_lo_s": 7.882796,
      "time_hi_s": 8.023499,
      "time_min_s": 7.849479,
      "time_max_s": 8.237855,
      "repeat": 25,
      "heap_b": 7612885,
      "rss_b": 30638080,
      "result_count": 0,
      "base_time_s": 7.943786,
      "base_rss_b": 30638080.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 1.5457,
      "time_lo_s": 1.524923,
      "time_hi_s": 1.579716,
      "time_min_s": 1.488742,
      "time_max_s": 2.426269,
      "repeat": 25,
      "heap_b": 3669467196,
      "rss_b": 4160749568,
      "result_count": 0,
      "base_time_s": 7.943786,
      "base_rss_b": 30638080.0,
      "time_factor": 5.139280584848288,
      "rss_factor": 0.00736359627016129,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 1.153105,
      "time_lo_s": 1.141039,
      "time_hi_s": 1.159745,
      "time_min_s": 1.130436,
      "time_max_s": 1.348153,
      "repeat": 25,
      "heap_b": 402662391,
      "rss_b": 545931264,
      "result_count": 0,
      "base_time_s": 7.943786,
      "base_rss_b": 30638080.0,
      "time_factor": 6.889039593098634,
      "rss_factor": 0.056120764682932686,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.000417,
      "time_lo_s": 0.000393,
      "time_hi_s": 0.000446,
      "time_min_s": 0.000379,
      "time_max_s": 0.000636,
      "repeat": 25,
      "heap_b": 389336,
      "rss_b": 10551296,
      "result_count": 0,
      "base_time_s": 7.943786,
      "base_rss_b": 30638080.0,
      "time_factor": 19049.846522781776,
      "rss_factor": 2.9037267080745344,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.125659,
      "time_lo_s": 0.118436,
      "time_hi_s": 0.128178,
      "time_min_s": 0.114669,
      "time_max_s": 0.186499,
      "repeat": 25,
      "heap_b": 295944,
      "rss_b": 7815168,
      "result_count": 0,
      "base_time_s": 7.943786,
      "base_rss_b": 30638080.0,
      "time_factor": 63.21700793417106,
      "rss_factor": 3.920335429769392,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 6.949277,
      "time_lo_s": 6.878664,
      "time_hi_s": 7.101914,
      "time_min_s": 6.857628,
      "time_max_s": 7.402983,
      "repeat": 25,
      "heap_b": 40979723,
      "rss_b": 86540288,
      "result_count": 12348,
      "base_time_s": 6.949277,
      "base_rss_b": 86540288.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=usage=401",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 1.476854,
      "time_lo_s": 1.450566,
      "time_hi_s": 1.51863,
      "time_min_s": 1.433331,
      "time_max_s": 1.696794,
      "repeat": 25,
      "heap_b": 3949251354,
      "rss_b": 4352360448,
      "result_count": 12348,
      "base_time_s": 6.949277,
      "base_rss_b": 86540288.0,
      "time_factor": 4.705459713688693,
      "rss_factor": 0.01988352964648575,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=usage=401",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 1.239883,
      "time_lo_s": 1.229935,
      "time_hi_s": 1.244509,
      "time_min_s": 1.212538,
      "time_max_s": 1.302305,
      "repeat": 25,
      "heap_b": 805315515,
      "rss_b": 875003904,
      "result_count": 12348,
      "base_time_s": 6.949277,
      "base_rss_b": 86540288.0,
      "time_factor": 5.6047844836972525,
      "rss_factor": 0.09890274500992398,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=usage=401",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.003546,
      "time_lo_s": 0.00351,
      "time_hi_s": 0.003574,
      "time_min_s": 0.003429,
      "time_max_s": 0.004439,
      "repeat": 25,
      "heap_b": 3138275,
      "rss_b": 16154624,
      "result_count": 12348,
      "base_time_s": 6.949277,
      "base_rss_b": 86540288.0,
      "time_factor": 1959.7509870276367,
      "rss_factor": 5.356997971602434,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=usage=401",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.044636,
      "time_lo_s": 0.04441,
      "time_hi_s": 0.045088,
      "time_min_s": 0.044029,
      "time_max_s": 0.048688,
      "repeat": 25,
      "heap_b": 2330557,
      "rss_b": 11206656,
      "result_count": 12348,
      "base_time_s": 6.949277,
      "base_rss_b": 86540288.0,
      "time_factor": 155.6877184335514,
      "rss_factor": 7.722222222222222,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=usage=401",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "attr-stats",
      "time_s": 6.938712,
      "time_lo_s": 6.895778,
      "time_hi_s": 7.05222,
      "time_min_s": 6.864418,
      "time_max_s": 8.022943,
      "repeat": 25,
      "heap_b": 40979725,
      "rss_b": 86589440,
      "result_count": 38743,
      "base_time_s": 6.938712,
      "base_rss_b": 86589440.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "attr-stats",
      "time_s": 1.437151,
      "time_lo_s": 1.430615,
      "time_hi_s": 1.466551,
      "time_min_s": 1.377898,
      "time_max_s": 1.646465,
      "repeat": 25,
      "heap_b": 3949251356,
      "rss_b": 4352180224,
      "result_count": 38743,
      "base_time_s": 6.938712,
      "base_rss_b": 86589440.0,
      "time_factor": 4.828102266219764,
      "rss_factor": 0.01989564667439654,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "attr-stats",
      "time_s": 1.231822,
      "time_lo_s": 1.218729,
      "time_hi_s": 1.253903,
      "time_min_s": 1.209202,
      "time_max_s": 2.191327,
      "repeat": 25,
      "heap_b": 805315517,
      "rss_b": 874708992,
      "result_count": 38743,
      "base_time_s": 6.938712,
      "base_rss_b": 86589440.0,
      "time_factor": 5.6328852707615225,
      "rss_factor": 0.09899228291001723,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "attr-stats",
      "time_s": 0.000576,
      "time_lo_s": 0.000552,
      "time_hi_s": 0.000603,
      "time_min_s": 0.000537,
      "time_max_s": 0.000717,
      "repeat": 25,
      "heap_b": 221582,
      "rss_b": 10633216,
      "result_count": 38743,
      "base_time_s": 6.938712,
      "base_rss_b": 86589440.0,
      "time_factor": 12046.375,
      "rss_factor": 8.143297380585516,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "attr-stats",
      "time_s": 0.078687,
      "time_lo_s": 0.078287,
      "time_hi_s": 0.078964,
      "time_min_s": 0.077139,
      "time_max_s": 0.080185,
      "repeat": 25,
      "heap_b": 1302845,
      "rss_b": 8994816,
      "result_count": 38743,
      "base_time_s": 6.938712,
      "base_rss_b": 86589440.0,
      "time_factor": 88.18117351023675,
      "rss_factor": 9.626593806921676,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 6.914795,
      "time_lo_s": 6.879975,
      "time_hi_s": 6.972159,
      "time_min_s": 6.807312,
      "time_max_s": 7.257033,
      "repeat": 25,
      "heap_b": 40979711,
      "rss_b": 86556672,
      "result_count": 499,
      "base_time_s": 6.914795,
      "base_rss_b": 86556672.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 1.650051,
      "time_lo_s": 1.634202,
      "time_hi_s": 1.687901,
      "time_min_s": 1.544751,
      "time_max_s": 2.1334,
      "repeat": 25,
      "heap_b": 3949251342,
      "rss_b": 4358356992,
      "result_count": 499,
      "base_time_s": 6.914795,
      "base_rss_b": 86556672.0,
      "time_factor": 4.190655319138621,
      "rss_factor": 0.019859931657475387,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 1.269623,
      "time_lo_s": 1.263896,
      "time_hi_s": 1.276654,
      "time_min_s": 1.257859,
      "time_max_s": 1.298484,
      "repeat": 25,
      "heap_b": 805315503,
      "rss_b": 874954752,
      "result_count": 499,
      "base_time_s": 6.914795,
      "base_rss_b": 86556672.0,
      "time_factor": 5.446337219788867,
      "rss_factor": 0.09892702657154093,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.027307,
      "time_lo_s": 0.027162,
      "time_hi_s": 0.027619,
      "time_min_s": 0.026865,
      "time_max_s": 0.031272,
      "repeat": 25,
      "heap_b": 32252457,
      "rss_b": 56262656,
      "result_count": 499,
      "base_time_s": 6.914795,
      "base_rss_b": 86556672.0,
      "time_factor": 253.22426484051707,
      "rss_factor": 1.5384391380314502,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 0.0013,
      "time_lo_s": 0.001272,
      "time_hi_s": 0.001332,
      "time_min_s": 0.001223,
      "time_max_s": 0.001869,
      "repeat": 25,
      "heap_b": 348824,
      "rss_b": 8142848,
      "result_count": 499,
      "base_time_s": 6.914795,
      "base_rss_b": 86556672.0,
      "time_factor": 5319.073076923077,
      "rss_factor": 10.629778672032193,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 7.123625,
      "time_lo_s": 6.903588,
      "time_hi_s": 7.216454,
      "time_min_s": 6.767172,
      "time_max_s": 7.641177,
      "repeat": 25,
      "heap_b": 40979711,
      "rss_b": 86261760,
      "result_count": 12479,
      "base_time_s": 7.123625,
      "base_rss_b": 86261760.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 1.9218,
      "time_lo_s": 1.739612,
      "time_hi_s": 2.35513,
      "time_min_s": 1.610275,
      "time_max_s": 2.654974,
      "repeat": 25,
      "heap_b": 3949251342,
      "rss_b": 4357898240,
      "result_count": 12479,
      "base_time_s": 7.123625,
      "base_rss_b": 86261760.0,
      "time_factor": 3.706746279529608,
      "rss_factor": 0.01979434930541196,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 1.288423,
      "time_lo_s": 1.284773,
      "time_hi_s": 1.304055,
      "time_min_s": 1.267978,
      "time_max_s": 1.352899,
      "repeat": 25,
      "heap_b": 805315503,
      "rss_b": 875036672,
      "result_count": 12479,
      "base_time_s": 7.123625,
      "base_rss_b": 86261760.0,
      "time_factor": 5.528948955428457,
      "rss_factor": 0.09858073696824446,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.09633,
      "time_lo_s": 0.095472,
      "time_hi_s": 0.098512,
      "time_min_s": 0.094758,
      "time_max_s": 0.100624,
      "repeat": 25,
      "heap_b": 80081078,
      "rss_b": 154828800,
      "result_count": 12479,
      "base_time_s": 7.123625,
      "base_rss_b": 86261760.0,
      "time_factor": 73.95022319111388,
      "rss_factor": 0.5571428571428572,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.033118,
      "time_lo_s": 0.032509,
      "time_hi_s": 0.033581,
      "time_min_s": 0.031816,
      "time_max_s": 0.03442,
      "repeat": 25,
      "heap_b": 2146091,
      "rss_b": 10797056,
      "result_count": 12479,
      "base_time_s": 7.123625,
      "base_rss_b": 86261760.0,
      "time_factor": 215.09828492058696,
      "rss_factor": 7.98937784522003,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 6.833645,
      "time_lo_s": 6.579792,
      "time_hi_s": 6.927875,
      "time_min_s": 6.417738,
      "time_max_s": 10.891882,
      "repeat": 25,
      "heap_b": 40979711,
      "rss_b": 86851584,
      "result_count": 2496,
      "base_time_s": 6.833645,
      "base_rss_b": 86851584.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 1.684731,
      "time_lo_s": 1.630343,
      "time_hi_s": 1.788458,
      "time_min_s": 1.596692,
      "time_max_s": 3.13797,
      "repeat": 25,
      "heap_b": 3949251342,
      "rss_b": 4358373376,
      "result_count": 2496,
      "base_time_s": 6.833645,
      "base_rss_b": 86851584.0,
      "time_factor": 4.056223219018348,
      "rss_factor": 0.01992752261159187,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 1.279655,
      "time_lo_s": 1.272983,
      "time_hi_s": 1.295017,
      "time_min_s": 1.260728,
      "time_max_s": 1.382729,
      "repeat": 25,
      "heap_b": 805315503,
      "rss_b": 874889216,
      "result_count": 2496,
      "base_time_s": 6.833645,
      "base_rss_b": 86851584.0,
      "time_factor": 5.340224513638441,
      "rss_factor": 0.09927152193861308,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.039448,
      "time_lo_s": 0.039065,
      "time_hi_s": 0.039729,
      "time_min_s": 0.038157,
      "time_max_s": 0.041303,
      "repeat": 25,
      "heap_b": 37381473,
      "rss_b": 78086144,
      "result_count": 2496,
      "base_time_s": 6.833645,
      "base_rss_b": 86851584.0,
      "time_factor": 173.23172277428515,
      "rss_factor": 1.1122534620226605,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.006094,
      "time_lo_s": 0.006033,
      "time_hi_s": 0.006317,
      "time_min_s": 0.005967,
      "time_max_s": 0.010162,
      "repeat": 25,
      "heap_b": 345109,
      "rss_b": 8355840,
      "result_count": 2496,
      "base_time_s": 6.833645,
      "base_rss_b": 86851584.0,
      "time_factor": 1121.3726616343945,
      "rss_factor": 10.394117647058824,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 6.79213,
      "time_lo_s": 6.768861,
      "time_hi_s": 6.848758,
      "time_min_s": 6.752483,
      "time_max_s": 6.960765,
      "repeat": 25,
      "heap_b": 40979706,
      "rss_b": 86687744,
      "result_count": 38743,
      "base_time_s": 6.79213,
      "base_rss_b": 86687744.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 1.510686,
      "time_lo_s": 1.438357,
      "time_hi_s": 1.53001,
      "time_min_s": 1.358941,
      "time_max_s": 1.635041,
      "repeat": 25,
      "heap_b": 3949251337,
      "rss_b": 4353802240,
      "result_count": 49915,
      "base_time_s": 6.79213,
      "base_rss_b": 86687744.0,
      "time_factor": 4.4960567583203925,
      "rss_factor": 0.019910813404331384,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 1.219776,
      "time_lo_s": 1.213247,
      "time_hi_s": 1.230185,
      "time_min_s": 1.206562,
      "time_max_s": 1.249354,
      "repeat": 25,
      "heap_b": 805315498,
      "rss_b": 874921984,
      "result_count": 38743,
      "base_time_s": 6.79213,
      "base_rss_b": 86687744.0,
      "time_factor": 5.568342056246393,
      "rss_factor": 0.09908054156289207,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.00029,
      "time_lo_s": 0.000282,
      "time_hi_s": 0.000296,
      "time_min_s": 0.000275,
      "time_max_s": 0.000326,
      "repeat": 25,
      "heap_b": 177851,
      "rss_b": 9469952,
      "result_count": 49915,
      "base_time_s": 6.79213,
      "base_rss_b": 86687744.0,
      "time_factor": 23421.137931034482,
      "rss_factor": 9.153979238754324,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 3.3e-05,
      "time_lo_s": 2.9e-05,
      "time_hi_s": 3.9e-05,
      "time_min_s": 2.6e-05,
      "time_max_s": 5.1e-05,
      "repeat": 25,
      "heap_b": 10101,
      "rss_b": 7307264,
      "result_count": 38743,
      "base_time_s": 6.79213,
      "base_rss_b": 86687744.0,
      "time_factor": 205822.12121212122,
      "rss_factor": 11.86322869955157,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 6.894654,
      "time_lo_s": 6.861306,
      "time_hi_s": 6.968042,
      "time_min_s": 6.804715,
      "time_max_s": 7.702013,
      "repeat": 25,
      "heap_b": 40979710,
      "rss_b": 87146496,
      "result_count": 38743,
      "base_time_s": 6.894654,
      "base_rss_b": 87146496.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 1.632682,
      "time_lo_s": 1.588904,
      "time_hi_s": 1.659916,
      "time_min_s": 1.563941,
      "time_max_s": 2.672065,
      "repeat": 25,
      "heap_b": 3949251341,
      "rss_b": 4351754240,
      "result_count": 49915,
      "base_time_s": 6.894654,
      "base_rss_b": 87146496.0,
      "time_factor": 4.222900724084666,
      "rss_factor": 0.0200256014457287,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 1.270648,
      "time_lo_s": 1.26262,
      "time_hi_s": 1.275744,
      "time_min_s": 1.254024,
      "time_max_s": 1.288774,
      "repeat": 25,
      "heap_b": 805315502,
      "rss_b": 874086400,
      "result_count": 38743,
      "base_time_s": 6.894654,
      "base_rss_b": 87146496.0,
      "time_factor": 5.426092828226228,
      "rss_factor": 0.09970009372071227,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.499168,
      "time_lo_s": 0.497097,
      "time_hi_s": 0.502607,
      "time_min_s": 0.4939,
      "time_max_s": 0.537703,
      "repeat": 25,
      "heap_b": 148623823,
      "rss_b": 247775232,
      "result_count": 49915,
      "base_time_s": 6.894654,
      "base_rss_b": 87146496.0,
      "time_factor": 13.81229165331111,
      "rss_factor": 0.35171592937909146,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.097112,
      "time_lo_s": 0.096566,
      "time_hi_s": 0.097614,
      "time_min_s": 0.095639,
      "time_max_s": 0.101317,
      "repeat": 25,
      "heap_b": 1302830,
      "rss_b": 8978432,
      "result_count": 38743,
      "base_time_s": 6.894654,
      "base_rss_b": 87146496.0,
      "time_factor": 70.99693137820249,
      "rss_factor": 9.706204379562044,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 0.716659,
      "time_lo_s": 0.711822,
      "time_hi_s": 0.719727,
      "time_min_s": 0.706835,
      "time_max_s": 0.83157,
      "repeat": 25,
      "heap_b": 30745815,
      "rss_b": 85524480,
      "result_count": 1,
      "base_time_s": 0.716659,
      "base_rss_b": 85524480.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 1.450745,
      "time_lo_s": 1.417104,
      "time_hi_s": 1.569871,
      "time_min_s": 1.372132,
      "time_max_s": 2.029949,
      "repeat": 25,
      "heap_b": 3949251382,
      "rss_b": 4351737856,
      "result_count": 1,
      "base_time_s": 0.716659,
      "base_rss_b": 85524480.0,
      "time_factor": 0.4939937756118409,
      "rss_factor": 0.019652948507015953,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.248731,
      "time_lo_s": 0.244259,
      "time_hi_s": 0.252889,
      "time_min_s": 0.239432,
      "time_max_s": 0.27387,
      "repeat": 25,
      "heap_b": 805315543,
      "rss_b": 865271808,
      "result_count": 1,
      "base_time_s": 0.716659,
      "base_rss_b": 85524480.0,
      "time_factor": 2.8812612822687966,
      "rss_factor": 0.09884117246080436,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.025023,
      "time_lo_s": 0.024513,
      "time_hi_s": 0.025348,
      "time_min_s": 0.02409,
      "time_max_s": 0.025663,
      "repeat": 25,
      "heap_b": 29241830,
      "rss_b": 55869440,
      "result_count": 1,
      "base_time_s": 0.716659,
      "base_rss_b": 85524480.0,
      "time_factor": 28.640011189705472,
      "rss_factor": 1.530791788856305,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.073711,
      "time_lo_s": 0.07339,
      "time_hi_s": 0.073962,
      "time_min_s": 0.072122,
      "time_max_s": 0.079173,
      "repeat": 25,
      "heap_b": 1302976,
      "rss_b": 9043968,
      "result_count": 1,
      "base_time_s": 0.716659,
      "base_rss_b": 85524480.0,
      "time_factor": 9.72255158660173,
      "rss_factor": 9.456521739130435,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 4.268869,
      "time_lo_s": 4.162389,
      "time_hi_s": 4.416784,
      "time_min_s": 4.093307,
      "time_max_s": 4.683911,
      "repeat": 25,
      "heap_b": 40979751,
      "rss_b": 86523904,
      "result_count": 1,
      "base_time_s": 4.268869,
      "base_rss_b": 86523904.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 1.876708,
      "time_lo_s": 1.560709,
      "time_hi_s": 2.052312,
      "time_min_s": 1.446277,
      "time_max_s": 2.541734,
      "repeat": 25,
      "heap_b": 3949251382,
      "rss_b": 4351901696,
      "result_count": 1,
      "base_time_s": 4.268869,
      "base_rss_b": 86523904.0,
      "time_factor": 2.2746580714740916,
      "rss_factor": 0.01988186086085709,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.812717,
      "time_lo_s": 0.792134,
      "time_hi_s": 0.835968,
      "time_min_s": 0.770294,
      "time_max_s": 0.996886,
      "repeat": 25,
      "heap_b": 805315543,
      "rss_b": 874889216,
      "result_count": 1,
      "base_time_s": 4.268869,
      "base_rss_b": 86523904.0,
      "time_factor": 5.252589769870692,
      "rss_factor": 0.09889698308957097,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.058365,
      "time_lo_s": 0.057594,
      "time_hi_s": 0.058974,
      "time_min_s": 0.056776,
      "time_max_s": 0.062316,
      "repeat": 25,
      "heap_b": 33715076,
      "rss_b": 62750720,
      "result_count": 1,
      "base_time_s": 4.268869,
      "base_rss_b": 86523904.0,
      "time_factor": 73.14090636511607,
      "rss_factor": 1.3788511749347259,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.035365,
      "time_lo_s": 0.035119,
      "time_hi_s": 0.035652,
      "time_min_s": 0.034506,
      "time_max_s": 0.038081,
      "repeat": 25,
      "heap_b": 617536,
      "rss_b": 8241152,
      "result_count": 1,
      "base_time_s": 4.268869,
      "base_rss_b": 86523904.0,
      "time_factor": 120.70886469673404,
      "rss_factor": 10.499005964214712,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 6.551991,
      "time_lo_s": 6.438279,
      "time_hi_s": 6.599438,
      "time_min_s": 6.399542,
      "time_max_s": 6.890262,
      "repeat": 25,
      "heap_b": 40979751,
      "rss_b": 86491136,
      "result_count": 1,
      "base_time_s": 6.551991,
      "base_rss_b": 86491136.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 1.545311,
      "time_lo_s": 1.487387,
      "time_hi_s": 1.630389,
      "time_min_s": 1.429048,
      "time_max_s": 1.992485,
      "repeat": 25,
      "heap_b": 3949251382,
      "rss_b": 4351754240,
      "result_count": 1,
      "base_time_s": 6.551991,
      "base_rss_b": 86491136.0,
      "time_factor": 4.239917401739843,
      "rss_factor": 0.01987500470614811,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 1.187503,
      "time_lo_s": 1.177163,
      "time_hi_s": 1.233761,
      "time_min_s": 1.163469,
      "time_max_s": 1.35761,
      "repeat": 25,
      "heap_b": 805315543,
      "rss_b": 875003904,
      "result_count": 1,
      "base_time_s": 6.551991,
      "base_rss_b": 86491136.0,
      "time_factor": 5.517452166436632,
      "rss_factor": 0.0988465715462682,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.048731,
      "time_lo_s": 0.048453,
      "time_hi_s": 0.049661,
      "time_min_s": 0.047977,
      "time_max_s": 0.052956,
      "repeat": 25,
      "heap_b": 29776045,
      "rss_b": 58523648,
      "result_count": 1,
      "base_time_s": 6.551991,
      "base_rss_b": 86491136.0,
      "time_factor": 134.45221727442492,
      "rss_factor": 1.4778835386338185,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.020478,
      "time_lo_s": 0.020346,
      "time_hi_s": 0.02063,
      "time_min_s": 0.020096,
      "time_max_s": 0.021509,
      "repeat": 25,
      "heap_b": 259424,
      "rss_b": 7798784,
      "result_count": 1,
      "base_time_s": 6.551991,
      "base_rss_b": 86491136.0,
      "time_factor": 319.9526809258717,
      "rss_factor": 11.090336134453782,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 6.973289,
      "time_lo_s": 6.850294,
      "time_hi_s": 7.063171,
      "time_min_s": 6.78019,
      "time_max_s": 7.376693,
      "repeat": 25,
      "heap_b": 40979768,
      "rss_b": 86736896,
      "result_count": 0,
      "base_time_s": 6.973289,
      "base_rss_b": 86736896.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 1.52974,
      "time_lo_s": 1.482203,
      "time_hi_s": 1.679399,
      "time_min_s": 1.418707,
      "time_max_s": 2.043916,
      "repeat": 25,
      "heap_b": 3949251399,
      "rss_b": 4350263296,
      "result_count": 0,
      "base_time_s": 6.973289,
      "base_rss_b": 86736896.0,
      "time_factor": 4.5584798723966165,
      "rss_factor": 0.01993830949950851,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 1.236832,
      "time_lo_s": 1.232548,
      "time_hi_s": 1.251173,
      "time_min_s": 1.221425,
      "time_max_s": 1.298168,
      "repeat": 25,
      "heap_b": 805315560,
      "rss_b": 875003904,
      "result_count": 0,
      "base_time_s": 6.973289,
      "base_rss_b": 86736896.0,
      "time_factor": 5.638024404284495,
      "rss_factor": 0.09912743886454706,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.00049,
      "time_lo_s": 0.000461,
      "time_hi_s": 0.000517,
      "time_min_s": 0.000427,
      "time_max_s": 0.0006,
      "repeat": 25,
      "heap_b": 276257,
      "rss_b": 10715136,
      "result_count": 0,
      "base_time_s": 6.973289,
      "base_rss_b": 86736896.0,
      "time_factor": 14231.202040816328,
      "rss_factor": 8.094801223241591,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.075834,
      "time_lo_s": 0.07551,
      "time_hi_s": 0.076381,
      "time_min_s": 0.074691,
      "time_max_s": 0.078722,
      "repeat": 25,
      "heap_b": 1303010,
      "rss_b": 9060352,
      "result_count": 0,
      "base_time_s": 6.973289,
      "base_rss_b": 86736896.0,
      "time_factor": 91.95465094812354,
      "rss_factor": 9.573236889692586,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 15.563448,
      "time_lo_s": 15.492409,
      "time_hi_s": 15.714175,
      "time_min_s": 15.309056,
      "time_max_s": 16.413276,
      "repeat": 25,
      "heap_b": 97760732,
      "rss_b": 173473792,
      "result_count": 7858,
      "base_time_s": 15.563448,
      "base_rss_b": 173473792.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight>=15.543",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 3.374618,
      "time_lo_s": 3.198758,
      "time_hi_s": 3.562791,
      "time_min_s": 2.931434,
      "time_max_s": 4.200909,
      "repeat": 25,
      "heap_b": 7585707072,
      "rss_b": 6737510400,
      "result_count": 7858,
      "base_time_s": 15.563448,
      "base_rss_b": 173473792.0,
      "time_factor": 4.611914000340186,
      "rss_factor": 0.025747461851784302,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight>=15.543",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 1.687857,
      "time_lo_s": 1.68178,
      "time_hi_s": 1.703557,
      "time_min_s": 1.669426,
      "time_max_s": 1.756311,
      "repeat": 25,
      "heap_b": 805315521,
      "rss_b": 945881088,
      "result_count": 7858,
      "base_time_s": 15.563448,
      "base_rss_b": 173473792.0,
      "time_factor": 9.220833281492448,
      "rss_factor": 0.1833991547148895,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight>=15.543",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.001502,
      "time_lo_s": 0.001446,
      "time_hi_s": 0.001566,
      "time_min_s": 0.001408,
      "time_max_s": 0.002038,
      "repeat": 25,
      "heap_b": 874946,
      "rss_b": 13254656,
      "result_count": 7858,
      "base_time_s": 15.563448,
      "base_rss_b": 173473792.0,
      "time_factor": 10361.816245006657,
      "rss_factor": 13.087762669962917,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight>=15.543",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.026497,
      "time_lo_s": 0.026309,
      "time_hi_s": 0.027169,
      "time_min_s": 0.02574,
      "time_max_s": 0.029239,
      "repeat": 25,
      "heap_b": 5079009,
      "rss_b": 13959168,
      "result_count": 7858,
      "base_time_s": 15.563448,
      "base_rss_b": 173473792.0,
      "time_factor": 587.3664188398686,
      "rss_factor": 12.427230046948356,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight>=15.543",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "attr-stats",
      "time_s": 15.503222,
      "time_lo_s": 15.408936,
      "time_hi_s": 15.56777,
      "time_min_s": 15.319501,
      "time_max_s": 16.116206,
      "repeat": 25,
      "heap_b": 97760731,
      "rss_b": 171606016,
      "result_count": 31415,
      "base_time_s": 15.503222,
      "base_rss_b": 171606016.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "attr-stats",
      "time_s": 3.534648,
      "time_lo_s": 3.304663,
      "time_hi_s": 3.7012,
      "time_min_s": 3.045804,
      "time_max_s": 3.850011,
      "repeat": 25,
      "heap_b": 7585707071,
      "rss_b": 6049628160,
      "result_count": 31415,
      "base_time_s": 15.503222,
      "base_rss_b": 171606016.0,
      "time_factor": 4.386072389669353,
      "rss_factor": 0.028366374173978984,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "attr-stats",
      "time_s": 1.674845,
      "time_lo_s": 1.667914,
      "time_hi_s": 1.688331,
      "time_min_s": 1.656278,
      "time_max_s": 1.798661,
      "repeat": 25,
      "heap_b": 805315520,
      "rss_b": 945586176,
      "result_count": 31415,
      "base_time_s": 15.503222,
      "base_rss_b": 171606016.0,
      "time_factor": 9.256511498078927,
      "rss_factor": 0.1814810964410715,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "attr-stats",
      "time_s": 0.000505,
      "time_lo_s": 0.000473,
      "time_hi_s": 0.000554,
      "time_min_s": 0.000425,
      "time_max_s": 0.001057,
      "repeat": 25,
      "heap_b": 304342,
      "rss_b": 10797056,
      "result_count": 31415,
      "base_time_s": 15.503222,
      "base_rss_b": 171606016.0,
      "time_factor": 30699.44950495049,
      "rss_factor": 15.893778452200303,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "attr-stats",
      "time_s": 0.055799,
      "time_lo_s": 0.05553,
      "time_hi_s": 0.056483,
      "time_min_s": 0.054954,
      "time_max_s": 0.058649,
      "repeat": 25,
      "heap_b": 4667231,
      "rss_b": 12435456,
      "result_count": 31415,
      "base_time_s": 15.503222,
      "base_rss_b": 171606016.0,
      "time_factor": 277.8404989336726,
      "rss_factor": 13.79973649538867,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 15.473683,
      "time_lo_s": 15.439123,
      "time_hi_s": 15.583929,
      "time_min_s": 15.36284,
      "time_max_s": 16.173161,
      "repeat": 25,
      "heap_b": 97760717,
      "rss_b": 173588480,
      "result_count": 314,
      "base_time_s": 15.473683,
      "base_rss_b": 173588480.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 3.397542,
      "time_lo_s": 3.278682,
      "time_hi_s": 3.632258,
      "time_min_s": 2.884057,
      "time_max_s": 5.01598,
      "repeat": 25,
      "heap_b": 7585707057,
      "rss_b": 7639728128,
      "result_count": 314,
      "base_time_s": 15.473683,
      "base_rss_b": 173588480.0,
      "time_factor": 4.55437578107938,
      "rss_factor": 0.02272181379907869,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 1.760533,
      "time_lo_s": 1.75199,
      "time_hi_s": 1.76888,
      "time_min_s": 1.740941,
      "time_max_s": 1.791968,
      "repeat": 25,
      "heap_b": 805315506,
      "rss_b": 945995776,
      "result_count": 314,
      "base_time_s": 15.473683,
      "base_rss_b": 173588480.0,
      "time_factor": 8.789203610497504,
      "rss_factor": 0.18349815549282114,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.048217,
      "time_lo_s": 0.047631,
      "time_hi_s": 0.049004,
      "time_min_s": 0.046508,
      "time_max_s": 0.057426,
      "repeat": 25,
      "heap_b": 90044808,
      "rss_b": 169066496,
      "result_count": 314,
      "base_time_s": 15.473683,
      "base_rss_b": 173588480.0,
      "time_factor": 320.9175809361843,
      "rss_factor": 1.0267467777885455,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 0.001504,
      "time_lo_s": 0.001487,
      "time_hi_s": 0.001616,
      "time_min_s": 0.001451,
      "time_max_s": 0.001824,
      "repeat": 25,
      "heap_b": 1986873,
      "rss_b": 9420800,
      "result_count": 314,
      "base_time_s": 15.473683,
      "base_rss_b": 173588480.0,
      "time_factor": 10288.353058510638,
      "rss_factor": 18.42608695652174,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 15.603346,
      "time_lo_s": 15.585559,
      "time_hi_s": 15.833335,
      "time_min_s": 15.419012,
      "time_max_s": 16.681437,
      "repeat": 25,
      "heap_b": 97760717,
      "rss_b": 172359680,
      "result_count": 7854,
      "base_time_s": 15.603346,
      "base_rss_b": 172359680.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 3.972893,
      "time_lo_s": 3.877275,
      "time_hi_s": 4.119732,
      "time_min_s": 3.719664,
      "time_max_s": 4.367774,
      "repeat": 25,
      "heap_b": 7585707057,
      "rss_b": 6486360064,
      "result_count": 7854,
      "base_time_s": 15.603346,
      "base_rss_b": 172359680.0,
      "time_factor": 3.9274518593881083,
      "rss_factor": 0.02657263523753713,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 1.782823,
      "time_lo_s": 1.774434,
      "time_hi_s": 1.79008,
      "time_min_s": 1.766528,
      "time_max_s": 1.873997,
      "repeat": 25,
      "heap_b": 805315506,
      "rss_b": 945963008,
      "result_count": 7854,
      "base_time_s": 15.603346,
      "base_rss_b": 172359680.0,
      "time_factor": 8.752044370080485,
      "rss_factor": 0.1822055181252923,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.143967,
      "time_lo_s": 0.14335,
      "time_hi_s": 0.144536,
      "time_min_s": 0.142558,
      "time_max_s": 0.147147,
      "repeat": 25,
      "heap_b": 102619408,
      "rss_b": 257867776,
      "result_count": 7854,
      "base_time_s": 15.603346,
      "base_rss_b": 172359680.0,
      "time_factor": 108.38140685018094,
      "rss_factor": 0.6684033293093589,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.024447,
      "time_lo_s": 0.024357,
      "time_hi_s": 0.024781,
      "time_min_s": 0.024085,
      "time_max_s": 0.02704,
      "repeat": 25,
      "heap_b": 2934238,
      "rss_b": 11780096,
      "result_count": 7854,
      "base_time_s": 15.603346,
      "base_rss_b": 172359680.0,
      "time_factor": 638.2519736572995,
      "rss_factor": 14.631432545201669,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 15.79831,
      "time_lo_s": 15.560033,
      "time_hi_s": 15.908418,
      "time_min_s": 15.466186,
      "time_max_s": 16.786453,
      "repeat": 25,
      "heap_b": 97760717,
      "rss_b": 172376064,
      "result_count": 1571,
      "base_time_s": 15.79831,
      "base_rss_b": 172376064.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 3.661621,
      "time_lo_s": 3.476701,
      "time_hi_s": 3.731183,
      "time_min_s": 3.248615,
      "time_max_s": 4.093752,
      "repeat": 25,
      "heap_b": 7585707057,
      "rss_b": 7469465600,
      "result_count": 1571,
      "base_time_s": 15.79831,
      "base_rss_b": 172376064.0,
      "time_factor": 4.314567236751155,
      "rss_factor": 0.023077429260802806,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 1.772445,
      "time_lo_s": 1.761616,
      "time_hi_s": 1.783755,
      "time_min_s": 1.7483,
      "time_max_s": 1.866688,
      "repeat": 25,
      "heap_b": 805315506,
      "rss_b": 946012160,
      "result_count": 1571,
      "base_time_s": 15.79831,
      "base_rss_b": 172376064.0,
      "time_factor": 8.913286448944818,
      "rss_factor": 0.18221337028056805,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.065201,
      "time_lo_s": 0.064555,
      "time_hi_s": 0.066459,
      "time_min_s": 0.06372,
      "time_max_s": 0.073901,
      "repeat": 25,
      "heap_b": 91510215,
      "rss_b": 185925632,
      "result_count": 1571,
      "base_time_s": 15.79831,
      "base_rss_b": 172376064.0,
      "time_factor": 242.30165181515625,
      "rss_factor": 0.9271237222418047,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.005499,
      "time_lo_s": 0.005451,
      "time_hi_s": 0.005596,
      "time_min_s": 0.005339,
      "time_max_s": 0.005991,
      "repeat": 25,
      "heap_b": 2078784,
      "rss_b": 9633792,
      "result_count": 1571,
      "base_time_s": 15.79831,
      "base_rss_b": 172376064.0,
      "time_factor": 2872.9423531551192,
      "rss_factor": 17.892857142857142,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 15.679072,
      "time_lo_s": 15.553589,
      "time_hi_s": 16.021979,
      "time_min_s": 15.370716,
      "time_max_s": 16.27211,
      "repeat": 25,
      "heap_b": 97760712,
      "rss_b": 172883968,
      "result_count": 31415,
      "base_time_s": 15.679072,
      "base_rss_b": 172883968.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 2.790579,
      "time_lo_s": 2.723892,
      "time_hi_s": 2.879128,
      "time_min_s": 2.629613,
      "time_max_s": 3.35539,
      "repeat": 25,
      "heap_b": 7585707052,
      "rss_b": 7591690240,
      "result_count": 31415,
      "base_time_s": 15.679072,
      "base_rss_b": 172883968.0,
      "time_factor": 5.618573063152843,
      "rss_factor": 0.02277279005524862,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 1.680535,
      "time_lo_s": 1.672841,
      "time_hi_s": 1.690381,
      "time_min_s": 1.66224,
      "time_max_s": 1.702876,
      "repeat": 25,
      "heap_b": 805315501,
      "rss_b": 945455104,
      "result_count": 31415,
      "base_time_s": 15.679072,
      "base_rss_b": 172883968.0,
      "time_factor": 9.32980985221968,
      "rss_factor": 0.18285793505008144,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.000224,
      "time_lo_s": 0.000217,
      "time_hi_s": 0.000236,
      "time_min_s": 0.000211,
      "time_max_s": 0.000244,
      "repeat": 25,
      "heap_b": 109494,
      "rss_b": 9273344,
      "result_count": 31415,
      "base_time_s": 15.679072,
      "base_rss_b": 172883968.0,
      "time_factor": 69995.85714285714,
      "rss_factor": 18.643109540636043,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 2.5e-05,
      "time_lo_s": 2.4e-05,
      "time_hi_s": 2.7e-05,
      "time_min_s": 2.2e-05,
      "time_max_s": 3e-05,
      "repeat": 25,
      "heap_b": 9240,
      "rss_b": 7290880,
      "result_count": 31415,
      "base_time_s": 15.679072,
      "base_rss_b": 172883968.0,
      "time_factor": 627162.88,
      "rss_factor": 23.712359550561796,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 16.061205,
      "time_lo_s": 15.985616,
      "time_hi_s": 16.332696,
      "time_min_s": 15.776352,
      "time_max_s": 17.579648,
      "repeat": 25,
      "heap_b": 97760716,
      "rss_b": 171507712,
      "result_count": 31415,
      "base_time_s": 16.061205,
      "base_rss_b": 171507712.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 3.332108,
      "time_lo_s": 3.138148,
      "time_hi_s": 3.489465,
      "time_min_s": 2.968455,
      "time_max_s": 4.472478,
      "repeat": 25,
      "heap_b": 7585707056,
      "rss_b": 8003059712,
      "result_count": 31415,
      "base_time_s": 16.061205,
      "base_rss_b": 171507712.0,
      "time_factor": 4.8201333810308675,
      "rss_factor": 0.021430267694096644,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 1.766444,
      "time_lo_s": 1.759578,
      "time_hi_s": 1.778961,
      "time_min_s": 1.747946,
      "time_max_s": 1.818077,
      "repeat": 25,
      "heap_b": 805315505,
      "rss_b": 945881088,
      "result_count": 31415,
      "base_time_s": 16.061205,
      "base_rss_b": 171507712.0,
      "time_factor": 9.092394097973104,
      "rss_factor": 0.18132058477101087,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.571887,
      "time_lo_s": 0.568548,
      "time_hi_s": 0.574627,
      "time_min_s": 0.562225,
      "time_max_s": 0.581322,
      "repeat": 25,
      "heap_b": 156124244,
      "rss_b": 462028800,
      "result_count": 31415,
      "base_time_s": 16.061205,
      "base_rss_b": 171507712.0,
      "time_factor": 28.084577897381827,
      "rss_factor": 0.37120567375886526,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.075662,
      "time_lo_s": 0.075343,
      "time_hi_s": 0.076208,
      "time_min_s": 0.073846,
      "time_max_s": 0.077899,
      "repeat": 25,
      "heap_b": 4667216,
      "rss_b": 12419072,
      "result_count": 31415,
      "base_time_s": 16.061205,
      "base_rss_b": 171507712.0,
      "time_factor": 212.27571303957075,
      "rss_factor": 13.810026385224274,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 1.3239,
      "time_lo_s": 1.308674,
      "time_hi_s": 1.341589,
      "time_min_s": 1.292768,
      "time_max_s": 2.07014,
      "repeat": 25,
      "heap_b": 30659418,
      "rss_b": 77611008,
      "result_count": 1,
      "base_time_s": 1.3239,
      "base_rss_b": 77611008.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 3.181948,
      "time_lo_s": 3.0917,
      "time_hi_s": 3.27021,
      "time_min_s": 2.946844,
      "time_max_s": 3.769883,
      "repeat": 25,
      "heap_b": 7585707076,
      "rss_b": 6350782464,
      "result_count": 1,
      "base_time_s": 1.3239,
      "base_rss_b": 77611008.0,
      "time_factor": 0.4160658816548856,
      "rss_factor": 0.012220700116866733,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.285597,
      "time_lo_s": 0.283133,
      "time_hi_s": 0.29366,
      "time_min_s": 0.281034,
      "time_max_s": 0.30605,
      "repeat": 25,
      "heap_b": 805315525,
      "rss_b": 927662080,
      "result_count": 1,
      "base_time_s": 1.3239,
      "base_rss_b": 77611008.0,
      "time_factor": 4.635552894463178,
      "rss_factor": 0.08366301660190745,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.018545,
      "time_lo_s": 0.018317,
      "time_hi_s": 0.018823,
      "time_min_s": 0.018177,
      "time_max_s": 0.019185,
      "repeat": 25,
      "heap_b": 27663841,
      "rss_b": 60866560,
      "result_count": 1,
      "base_time_s": 1.3239,
      "base_rss_b": 77611008.0,
      "time_factor": 71.38851442437316,
      "rss_factor": 1.275100942126514,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.052511,
      "time_lo_s": 0.052183,
      "time_hi_s": 0.053263,
      "time_min_s": 0.051768,
      "time_max_s": 0.05497,
      "repeat": 25,
      "heap_b": 4667320,
      "rss_b": 12468224,
      "result_count": 1,
      "base_time_s": 1.3239,
      "base_rss_b": 77611008.0,
      "time_factor": 25.21186037211251,
      "rss_factor": 6.2247043363994745,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 6.816978,
      "time_lo_s": 6.765346,
      "time_hi_s": 6.902692,
      "time_min_s": 6.724949,
      "time_max_s": 7.13445,
      "repeat": 25,
      "heap_b": 58526359,
      "rss_b": 110346240,
      "result_count": 1,
      "base_time_s": 6.816978,
      "base_rss_b": 110346240.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 3.169253,
      "time_lo_s": 3.088199,
      "time_hi_s": 3.252889,
      "time_min_s": 2.936739,
      "time_max_s": 3.717913,
      "repeat": 25,
      "heap_b": 7585707077,
      "rss_b": 6395379712,
      "result_count": 1,
      "base_time_s": 6.816978,
      "base_rss_b": 110346240.0,
      "time_factor": 2.150973115746834,
      "rss_factor": 0.017254056048142275,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.843711,
      "time_lo_s": 0.833477,
      "time_hi_s": 0.854262,
      "time_min_s": 0.826997,
      "time_max_s": 0.865903,
      "repeat": 25,
      "heap_b": 805315526,
      "rss_b": 946126848,
      "result_count": 1,
      "base_time_s": 6.816978,
      "base_rss_b": 110346240.0,
      "time_factor": 8.079754797555086,
      "rss_factor": 0.11662943529534002,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.073984,
      "time_lo_s": 0.073683,
      "time_hi_s": 0.074571,
      "time_min_s": 0.072033,
      "time_max_s": 0.075686,
      "repeat": 25,
      "heap_b": 31067819,
      "rss_b": 69074944,
      "result_count": 1,
      "base_time_s": 6.816978,
      "base_rss_b": 110346240.0,
      "time_factor": 92.14124675605537,
      "rss_factor": 1.5974857685009487,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.030895,
      "time_lo_s": 0.030573,
      "time_hi_s": 0.031414,
      "time_min_s": 0.030182,
      "time_max_s": 0.031989,
      "repeat": 25,
      "heap_b": 4667322,
      "rss_b": 12468224,
      "result_count": 1,
      "base_time_s": 6.816978,
      "base_rss_b": 110346240.0,
      "time_factor": 220.6498786211361,
      "rss_factor": 8.850197109067016,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 13.302819,
      "time_lo_s": 13.238063,
      "time_hi_s": 13.434745,
      "time_min_s": 13.203411,
      "time_max_s": 13.983446,
      "repeat": 25,
      "heap_b": 97760736,
      "rss_b": 170950656,
      "result_count": 1,
      "base_time_s": 13.302819,
      "base_rss_b": 170950656.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 3.160878,
      "time_lo_s": 3.069128,
      "time_hi_s": 3.440739,
      "time_min_s": 2.951097,
      "time_max_s": 3.624274,
      "repeat": 25,
      "heap_b": 7585707076,
      "rss_b": 6273449984,
      "result_count": 1,
      "base_time_s": 13.302819,
      "base_rss_b": 170950656.0,
      "time_factor": 4.208583501166448,
      "rss_factor": 0.027249863541751,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 1.474347,
      "time_lo_s": 1.466646,
      "time_hi_s": 1.482507,
      "time_min_s": 1.46231,
      "time_max_s": 1.502929,
      "repeat": 25,
      "heap_b": 805315525,
      "rss_b": 945717248,
      "result_count": 1,
      "base_time_s": 13.302819,
      "base_rss_b": 170950656.0,
      "time_factor": 9.022854863882111,
      "rss_factor": 0.18076296732614947,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.152132,
      "time_lo_s": 0.150266,
      "time_hi_s": 0.152727,
      "time_min_s": 0.148779,
      "time_max_s": 0.154872,
      "repeat": 25,
      "heap_b": 50179441,
      "rss_b": 90013696,
      "result_count": 1,
      "base_time_s": 13.302819,
      "base_rss_b": 170950656.0,
      "time_factor": 87.4426090500355,
      "rss_factor": 1.8991627229705133,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.005131,
      "time_lo_s": 0.005,
      "time_hi_s": 0.0052,
      "time_min_s": 0.004844,
      "time_max_s": 0.005398,
      "repeat": 25,
      "heap_b": 2338408,
      "rss_b": 9682944,
      "result_count": 1,
      "base_time_s": 13.302819,
      "base_rss_b": 170950656.0,
      "time_factor": 2592.636717988696,
      "rss_factor": 17.65482233502538,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 15.81088,
      "time_lo_s": 15.553959,
      "time_hi_s": 16.056795,
      "time_min_s": 15.109752,
      "time_max_s": 19.617275,
      "repeat": 25,
      "heap_b": 97760753,
      "rss_b": 171180032,
      "result_count": 0,
      "base_time_s": 15.81088,
      "base_rss_b": 171180032.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 3.22349,
      "time_lo_s": 3.092908,
      "time_hi_s": 3.27913,
      "time_min_s": 2.929757,
      "time_max_s": 3.538917,
      "repeat": 25,
      "heap_b": 7585707093,
      "rss_b": 6384730112,
      "result_count": 0,
      "base_time_s": 15.81088,
      "base_rss_b": 171180032.0,
      "time_factor": 4.904895005103165,
      "rss_factor": 0.026810848539747956,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 1.683631,
      "time_lo_s": 1.675533,
      "time_hi_s": 1.689768,
      "time_min_s": 1.66026,
      "time_max_s": 1.801305,
      "repeat": 25,
      "heap_b": 805315542,
      "rss_b": 946520064,
      "result_count": 0,
      "base_time_s": 15.81088,
      "base_rss_b": 171180032.0,
      "time_factor": 9.390941364230047,
      "rss_factor": 0.1808519845597272,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.00033,
      "time_lo_s": 0.000324,
      "time_hi_s": 0.000341,
      "time_min_s": 0.000316,
      "time_max_s": 0.000367,
      "repeat": 25,
      "heap_b": 221755,
      "rss_b": 10452992,
      "result_count": 0,
      "base_time_s": 15.81088,
      "base_rss_b": 171180032.0,
      "time_factor": 47911.757575757576,
      "rss_factor": 16.37617554858934,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.055799,
      "time_lo_s": 0.054526,
      "time_hi_s": 0.056145,
      "time_min_s": 0.053784,
      "time_max_s": 0.057027,
      "repeat": 25,
      "heap_b": 4667354,
      "rss_b": 12468224,
      "result_count": 0,
      "base_time_s": 15.81088,
      "base_rss_b": 171180032.0,
      "time_factor": 283.35418197458733,
      "rss_factor": 13.729303547963207,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 2.624127,
      "time_lo_s": 2.616317,
      "time_hi_s": 2.640847,
      "time_min_s": 2.597098,
      "time_max_s": 2.703479,
      "repeat": 25,
      "heap_b": 4677691,
      "rss_b": 20086784,
      "result_count": 173,
      "base_time_s": 2.624127,
      "base_rss_b": 20086784.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=BIN=1000000",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 0.642727,
      "time_lo_s": 0.636717,
      "time_hi_s": 0.660542,
      "time_min_s": 0.627295,
      "time_max_s": 0.728736,
      "repeat": 25,
      "heap_b": 1376784344,
      "rss_b": 1585283072,
      "result_count": 173,
      "base_time_s": 2.624127,
      "base_rss_b": 20086784.0,
      "time_factor": 4.08280187389047,
      "rss_factor": 0.012670786911676554,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=BIN=1000000",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 0.533563,
      "time_lo_s": 0.517486,
      "time_hi_s": 0.615401,
      "time_min_s": 0.50014,
      "time_max_s": 0.781178,
      "repeat": 25,
      "heap_b": 201335758,
      "rss_b": 250904576,
      "result_count": 173,
      "base_time_s": 2.624127,
      "base_rss_b": 20086784.0,
      "time_factor": 4.918120259463269,
      "rss_factor": 0.08005746375865222,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=BIN=1000000",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.001451,
      "time_lo_s": 0.001436,
      "time_hi_s": 0.001468,
      "time_min_s": 0.001423,
      "time_max_s": 0.001779,
      "repeat": 25,
      "heap_b": 2039717,
      "rss_b": 12861440,
      "result_count": 173,
      "base_time_s": 2.624127,
      "base_rss_b": 20086784.0,
      "time_factor": 1808.4955203308064,
      "rss_factor": 1.561783439490446,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=BIN=1000000",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.000389,
      "time_lo_s": 0.000364,
      "time_hi_s": 0.000416,
      "time_min_s": 0.000341,
      "time_max_s": 0.000504,
      "repeat": 25,
      "heap_b": 84461,
      "rss_b": 7716864,
      "result_count": 173,
      "base_time_s": 2.624127,
      "base_rss_b": 20086784.0,
      "time_factor": 6745.827763496144,
      "rss_factor": 2.602972399150743,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=BIN=1000000",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 2.63579,
      "time_lo_s": 2.621837,
      "time_hi_s": 2.646101,
      "time_min_s": 2.596603,
      "time_max_s": 2.6883,
      "repeat": 25,
      "heap_b": 4677673,
      "rss_b": 20152320,
      "result_count": 238,
      "base_time_s": 2.63579,
      "base_rss_b": 20152320.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 0.710431,
      "time_lo_s": 0.696869,
      "time_hi_s": 0.726317,
      "time_min_s": 0.673705,
      "time_max_s": 0.768658,
      "repeat": 25,
      "heap_b": 1376784326,
      "rss_b": 1589313536,
      "result_count": 238,
      "base_time_s": 2.63579,
      "base_rss_b": 20152320.0,
      "time_factor": 3.7101280771813165,
      "rss_factor": 0.012679889489093233,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 0.516328,
      "time_lo_s": 0.513143,
      "time_hi_s": 0.517943,
      "time_min_s": 0.511071,
      "time_max_s": 0.561059,
      "repeat": 25,
      "heap_b": 201335740,
      "rss_b": 247513088,
      "result_count": 238,
      "base_time_s": 2.63579,
      "base_rss_b": 20152320.0,
      "time_factor": 5.104875195612092,
      "rss_factor": 0.0814192096379162,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.01108,
      "time_lo_s": 0.01073,
      "time_hi_s": 0.012177,
      "time_min_s": 0.009783,
      "time_max_s": 0.036293,
      "repeat": 25,
      "heap_b": 11993920,
      "rss_b": 29900800,
      "result_count": 238,
      "base_time_s": 2.63579,
      "base_rss_b": 20152320.0,
      "time_factor": 237.8871841155235,
      "rss_factor": 0.673972602739726,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 0.0005,
      "time_lo_s": 0.000493,
      "time_hi_s": 0.000506,
      "time_min_s": 0.000455,
      "time_max_s": 0.000597,
      "repeat": 25,
      "heap_b": 80691,
      "rss_b": 7782400,
      "result_count": 238,
      "base_time_s": 2.63579,
      "base_rss_b": 20152320.0,
      "time_factor": 5271.58,
      "rss_factor": 2.5894736842105264,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 2.638418,
      "time_lo_s": 2.622335,
      "time_hi_s": 2.655671,
      "time_min_s": 2.607754,
      "time_max_s": 2.71874,
      "repeat": 25,
      "heap_b": 4677673,
      "rss_b": 20201472,
      "result_count": 5944,
      "base_time_s": 2.638418,
      "base_rss_b": 20201472.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 0.721281,
      "time_lo_s": 0.708897,
      "time_hi_s": 0.745718,
      "time_min_s": 0.693692,
      "time_max_s": 0.873829,
      "repeat": 25,
      "heap_b": 1376784326,
      "rss_b": 1589608448,
      "result_count": 5944,
      "base_time_s": 2.638418,
      "base_rss_b": 20201472.0,
      "time_factor": 3.6579613215931106,
      "rss_factor": 0.012708457875533385,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 0.517625,
      "time_lo_s": 0.515822,
      "time_hi_s": 0.522425,
      "time_min_s": 0.511386,
      "time_max_s": 0.57332,
      "repeat": 25,
      "heap_b": 201335740,
      "rss_b": 250593280,
      "result_count": 5944,
      "base_time_s": 2.638418,
      "base_rss_b": 20201472.0,
      "time_factor": 5.0971610722047815,
      "rss_factor": 0.08061457992808108,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.03328,
      "time_lo_s": 0.03314,
      "time_hi_s": 0.033803,
      "time_min_s": 0.032476,
      "time_max_s": 0.037395,
      "repeat": 25,
      "heap_b": 21824124,
      "rss_b": 52248576,
      "result_count": 5944,
      "base_time_s": 2.638418,
      "base_rss_b": 20201472.0,
      "time_factor": 79.27938701923078,
      "rss_factor": 0.38664158043273755,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.010198,
      "time_lo_s": 0.010041,
      "time_hi_s": 0.01048,
      "time_min_s": 0.009898,
      "time_max_s": 0.012374,
      "repeat": 25,
      "heap_b": 654851,
      "rss_b": 8617984,
      "result_count": 5944,
      "base_time_s": 2.638418,
      "base_rss_b": 20201472.0,
      "time_factor": 258.71916061972934,
      "rss_factor": 2.344106463878327,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 2.632933,
      "time_lo_s": 2.626494,
      "time_hi_s": 2.644098,
      "time_min_s": 2.608792,
      "time_max_s": 2.759328,
      "repeat": 25,
      "heap_b": 4677673,
      "rss_b": 20135936,
      "result_count": 1189,
      "base_time_s": 2.632933,
      "base_rss_b": 20135936.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 0.708344,
      "time_lo_s": 0.691986,
      "time_hi_s": 0.718581,
      "time_min_s": 0.683902,
      "time_max_s": 0.759764,
      "repeat": 25,
      "heap_b": 1376784326,
      "rss_b": 1589706752,
      "result_count": 1189,
      "base_time_s": 2.632933,
      "base_rss_b": 20135936.0,
      "time_factor": 3.7170259083157338,
      "rss_factor": 0.012666446798862184,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 0.517256,
      "time_lo_s": 0.515878,
      "time_hi_s": 0.528103,
      "time_min_s": 0.509775,
      "time_max_s": 0.60096,
      "repeat": 25,
      "heap_b": 201335740,
      "rss_b": 250658816,
      "result_count": 1189,
      "base_time_s": 2.632933,
      "base_rss_b": 20135936.0,
      "time_factor": 5.0901932505374505,
      "rss_factor": 0.08033204784626446,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.020794,
      "time_lo_s": 0.020565,
      "time_hi_s": 0.021014,
      "time_min_s": 0.020258,
      "time_max_s": 0.021475,
      "repeat": 25,
      "heap_b": 18188388,
      "rss_b": 42106880,
      "result_count": 1189,
      "base_time_s": 2.632933,
      "base_rss_b": 20135936.0,
      "time_factor": 126.61984226219101,
      "rss_factor": 0.47821011673151753,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.002138,
      "time_lo_s": 0.002099,
      "time_hi_s": 0.002181,
      "time_min_s": 0.002063,
      "time_max_s": 0.00411,
      "repeat": 25,
      "heap_b": 231827,
      "rss_b": 8044544,
      "result_count": 1189,
      "base_time_s": 2.632933,
      "base_rss_b": 20135936.0,
      "time_factor": 1231.4934518241346,
      "rss_factor": 2.5030549898167007,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 2.636279,
      "time_lo_s": 2.616459,
      "time_hi_s": 2.67199,
      "time_min_s": 2.603854,
      "time_max_s": 2.903572,
      "repeat": 25,
      "heap_b": 4677668,
      "rss_b": 20152320,
      "result_count": 23777,
      "base_time_s": 2.636279,
      "base_rss_b": 20152320.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 0.628778,
      "time_lo_s": 0.622106,
      "time_hi_s": 0.634543,
      "time_min_s": 0.612639,
      "time_max_s": 0.656696,
      "repeat": 25,
      "heap_b": 1376784321,
      "rss_b": 1585168384,
      "result_count": 23777,
      "base_time_s": 2.636279,
      "base_rss_b": 20152320.0,
      "time_factor": 4.192702352817688,
      "rss_factor": 0.01271304689357216,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 0.502421,
      "time_lo_s": 0.496017,
      "time_hi_s": 0.512844,
      "time_min_s": 0.491751,
      "time_max_s": 0.552665,
      "repeat": 25,
      "heap_b": 201335735,
      "rss_b": 250511360,
      "result_count": 23777,
      "base_time_s": 2.636279,
      "base_rss_b": 20152320.0,
      "time_factor": 5.247151293437177,
      "rss_factor": 0.08044473512099411,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.000236,
      "time_lo_s": 0.000219,
      "time_hi_s": 0.000261,
      "time_min_s": 0.000195,
      "time_max_s": 0.000294,
      "repeat": 25,
      "heap_b": 73056,
      "rss_b": 9142272,
      "result_count": 23777,
      "base_time_s": 2.636279,
      "base_rss_b": 20152320.0,
      "time_factor": 11170.67372881356,
      "rss_factor": 2.204301075268817,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 2.5e-05,
      "time_lo_s": 2.5e-05,
      "time_hi_s": 2.7e-05,
      "time_min_s": 2.3e-05,
      "time_max_s": 5.4e-05,
      "repeat": 25,
      "heap_b": 9394,
      "rss_b": 7290880,
      "result_count": 23777,
      "base_time_s": 2.636279,
      "base_rss_b": 20152320.0,
      "time_factor": 105451.16,
      "rss_factor": 2.764044943820225,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 2.646219,
      "time_lo_s": 2.638185,
      "time_hi_s": 2.654357,
      "time_min_s": 2.623433,
      "time_max_s": 2.765849,
      "repeat": 25,
      "heap_b": 4677672,
      "rss_b": 20119552,
      "result_count": 23777,
      "base_time_s": 2.646219,
      "base_rss_b": 20119552.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 0.720496,
      "time_lo_s": 0.709934,
      "time_hi_s": 0.731518,
      "time_min_s": 0.698392,
      "time_max_s": 0.770861,
      "repeat": 25,
      "heap_b": 1376784325,
      "rss_b": 1585283072,
      "result_count": 23777,
      "base_time_s": 2.646219,
      "base_rss_b": 20119552.0,
      "time_factor": 3.6727740334436274,
      "rss_factor": 0.012691457037144216,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 0.517709,
      "time_lo_s": 0.515391,
      "time_hi_s": 0.52141,
      "time_min_s": 0.512169,
      "time_max_s": 0.530212,
      "repeat": 25,
      "heap_b": 201335739,
      "rss_b": 250511360,
      "result_count": 23777,
      "base_time_s": 2.646219,
      "base_rss_b": 20119552.0,
      "time_factor": 5.111402351514075,
      "rss_factor": 0.0803139306736429,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.336075,
      "time_lo_s": 0.334574,
      "time_hi_s": 0.338785,
      "time_min_s": 0.331042,
      "time_max_s": 0.351435,
      "repeat": 25,
      "heap_b": 32499286,
      "rss_b": 97976320,
      "result_count": 23777,
      "base_time_s": 2.646219,
      "base_rss_b": 20119552.0,
      "time_factor": 7.873894220040169,
      "rss_factor": 0.20535117056856186,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.044504,
      "time_lo_s": 0.043816,
      "time_hi_s": 0.045879,
      "time_min_s": 0.043182,
      "time_max_s": 0.074521,
      "repeat": 25,
      "heap_b": 318114,
      "rss_b": 7766016,
      "result_count": 23777,
      "base_time_s": 2.646219,
      "base_rss_b": 20119552.0,
      "time_factor": 59.46025076397627,
      "rss_factor": 2.590717299578059,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 0.28016,
      "time_lo_s": 0.277698,
      "time_hi_s": 0.280918,
      "time_min_s": 0.275579,
      "time_max_s": 0.284047,
      "repeat": 25,
      "heap_b": 4192743,
      "rss_b": 17203200,
      "result_count": 1,
      "base_time_s": 0.28016,
      "base_rss_b": 17203200.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 0.640247,
      "time_lo_s": 0.626932,
      "time_hi_s": 0.648119,
      "time_min_s": 0.599402,
      "time_max_s": 0.701315,
      "repeat": 25,
      "heap_b": 1376784365,
      "rss_b": 1585266688,
      "result_count": 1,
      "base_time_s": 0.28016,
      "base_rss_b": 17203200.0,
      "time_factor": 0.43758112103610014,
      "rss_factor": 0.010851928025879264,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.089417,
      "time_lo_s": 0.087934,
      "time_hi_s": 0.091835,
      "time_min_s": 0.085282,
      "time_max_s": 0.096477,
      "repeat": 25,
      "heap_b": 201335779,
      "rss_b": 249675776,
      "result_count": 1,
      "base_time_s": 0.28016,
      "base_rss_b": 17203200.0,
      "time_factor": 3.1331849648277177,
      "rss_factor": 0.06890215893431327,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.008271,
      "time_lo_s": 0.008196,
      "time_hi_s": 0.008406,
      "time_min_s": 0.008018,
      "time_max_s": 0.008691,
      "repeat": 25,
      "heap_b": 12544709,
      "rss_b": 33964032,
      "result_count": 1,
      "base_time_s": 0.28016,
      "base_rss_b": 17203200.0,
      "time_factor": 33.87256679966147,
      "rss_factor": 0.5065123010130246,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.0072,
      "time_lo_s": 0.006913,
      "time_hi_s": 0.007339,
      "time_min_s": 0.006747,
      "time_max_s": 0.007952,
      "repeat": 25,
      "heap_b": 134690,
      "rss_b": 7602176,
      "result_count": 1,
      "base_time_s": 0.28016,
      "base_rss_b": 17203200.0,
      "time_factor": 38.91111111111111,
      "rss_factor": 2.2629310344827585,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 1.327533,
      "time_lo_s": 1.314944,
      "time_hi_s": 1.333462,
      "time_min_s": 1.30666,
      "time_max_s": 1.555449,
      "repeat": 25,
      "heap_b": 4192743,
      "rss_b": 17956864,
      "result_count": 1,
      "base_time_s": 1.327533,
      "base_rss_b": 17956864.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 0.649663,
      "time_lo_s": 0.641694,
      "time_hi_s": 0.665054,
      "time_min_s": 0.627409,
      "time_max_s": 0.732369,
      "repeat": 25,
      "heap_b": 1376784365,
      "rss_b": 1585332224,
      "result_count": 1,
      "base_time_s": 1.327533,
      "base_rss_b": 17956864.0,
      "time_factor": 2.0434178951240876,
      "rss_factor": 0.011326877564307935,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.273807,
      "time_lo_s": 0.271621,
      "time_hi_s": 0.276313,
      "time_min_s": 0.268527,
      "time_max_s": 0.323226,
      "repeat": 25,
      "heap_b": 201335779,
      "rss_b": 249856000,
      "result_count": 1,
      "base_time_s": 1.327533,
      "base_rss_b": 17956864.0,
      "time_factor": 4.848426081144748,
      "rss_factor": 0.07186885245901639,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.008389,
      "time_lo_s": 0.008295,
      "time_hi_s": 0.008567,
      "time_min_s": 0.008174,
      "time_max_s": 0.009554,
      "repeat": 25,
      "heap_b": 12544709,
      "rss_b": 33947648,
      "result_count": 1,
      "base_time_s": 1.327533,
      "base_rss_b": 17956864.0,
      "time_factor": 158.24687090237214,
      "rss_factor": 0.528957528957529,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.006798,
      "time_lo_s": 0.006622,
      "time_hi_s": 0.006954,
      "time_min_s": 0.0064,
      "time_max_s": 0.007349,
      "repeat": 25,
      "heap_b": 134690,
      "rss_b": 7602176,
      "result_count": 1,
      "base_time_s": 1.327533,
      "base_rss_b": 17956864.0,
      "time_factor": 195.2828773168579,
      "rss_factor": 2.3620689655172415,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 2.377661,
      "time_lo_s": 2.367843,
      "time_hi_s": 2.393292,
      "time_min_s": 2.344759,
      "time_max_s": 2.784945,
      "repeat": 25,
      "heap_b": 4192743,
      "rss_b": 18481152,
      "result_count": 1,
      "base_time_s": 2.377661,
      "base_rss_b": 18481152.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 0.637145,
      "time_lo_s": 0.618914,
      "time_hi_s": 0.647465,
      "time_min_s": 0.603427,
      "time_max_s": 0.666599,
      "repeat": 25,
      "heap_b": 1376784365,
      "rss_b": 1585250304,
      "result_count": 1,
      "base_time_s": 2.377661,
      "base_rss_b": 18481152.0,
      "time_factor": 3.731742382032347,
      "rss_factor": 0.01165819174004713,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 0.454246,
      "time_lo_s": 0.451266,
      "time_hi_s": 0.459726,
      "time_min_s": 0.447137,
      "time_max_s": 0.481422,
      "repeat": 25,
      "heap_b": 201335779,
      "rss_b": 249757696,
      "result_count": 1,
      "base_time_s": 2.377661,
      "base_rss_b": 18481152.0,
      "time_factor": 5.234302558525556,
      "rss_factor": 0.0739963264235109,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.008273,
      "time_lo_s": 0.008201,
      "time_hi_s": 0.008341,
      "time_min_s": 0.008079,
      "time_max_s": 0.008829,
      "repeat": 25,
      "heap_b": 14617724,
      "rss_b": 34471936,
      "result_count": 1,
      "base_time_s": 2.377661,
      "base_rss_b": 18481152.0,
      "time_factor": 287.40009670010875,
      "rss_factor": 0.5361216730038023,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.024261,
      "time_lo_s": 0.023706,
      "time_hi_s": 0.024933,
      "time_min_s": 0.023462,
      "time_max_s": 0.025294,
      "repeat": 25,
      "heap_b": 318258,
      "rss_b": 7815168,
      "result_count": 1,
      "base_time_s": 2.377661,
      "base_rss_b": 18481152.0,
      "time_factor": 98.00342112856023,
      "rss_factor": 2.3647798742138364,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 2.661335,
      "time_lo_s": 2.64528,
      "time_hi_s": 2.669284,
      "time_min_s": 2.622849,
      "time_max_s": 2.886792,
      "repeat": 25,
      "heap_b": 4677729,
      "rss_b": 20086784,
      "result_count": 0,
      "base_time_s": 2.661335,
      "base_rss_b": 20086784.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 0.629223,
      "time_lo_s": 0.621079,
      "time_hi_s": 0.634112,
      "time_min_s": 0.604188,
      "time_max_s": 0.670124,
      "repeat": 25,
      "heap_b": 1376784382,
      "rss_b": 1585217536,
      "result_count": 0,
      "base_time_s": 2.661335,
      "base_rss_b": 20086784.0,
      "time_factor": 4.22955772436799,
      "rss_factor": 0.012671310746842508,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 0.498003,
      "time_lo_s": 0.494988,
      "time_hi_s": 0.502084,
      "time_min_s": 0.493201,
      "time_max_s": 0.53297,
      "repeat": 25,
      "heap_b": 201335796,
      "rss_b": 250494976,
      "result_count": 0,
      "base_time_s": 2.661335,
      "base_rss_b": 20086784.0,
      "time_factor": 5.344013991883583,
      "rss_factor": 0.08018837072404997,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.001221,
      "time_lo_s": 0.001181,
      "time_hi_s": 0.001254,
      "time_min_s": 0.001134,
      "time_max_s": 0.001503,
      "repeat": 25,
      "heap_b": 2053321,
      "rss_b": 13320192,
      "result_count": 0,
      "base_time_s": 2.661335,
      "base_rss_b": 20086784.0,
      "time_factor": 2179.635544635544,
      "rss_factor": 1.5079950799507995,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.033833,
      "time_lo_s": 0.032539,
      "time_hi_s": 0.034348,
      "time_min_s": 0.031907,
      "time_max_s": 0.036414,
      "repeat": 25,
      "heap_b": 318292,
      "rss_b": 7815168,
      "result_count": 0,
      "base_time_s": 2.661335,
      "base_rss_b": 20086784.0,
      "time_factor": 78.66092276771198,
      "rss_factor": 2.570230607966457,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 0.116497,
      "time_lo_s": 0.115658,
      "time_hi_s": 0.117737,
      "time_min_s": 0.114476,
      "time_max_s": 0.125301,
      "repeat": 25,
      "heap_b": 2402059,
      "rss_b": 13615104,
      "result_count": 600,
      "base_time_s": 0.116497,
      "base_rss_b": 13615104.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=roofType=FLACHDACH",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 0.020514,
      "time_lo_s": 0.020199,
      "time_hi_s": 0.020675,
      "time_min_s": 0.019874,
      "time_max_s": 0.021359,
      "repeat": 25,
      "heap_b": 48194188,
      "rss_b": 63406080,
      "result_count": 600,
      "base_time_s": 0.116497,
      "base_rss_b": 13615104.0,
      "time_factor": 5.678902213122745,
      "rss_factor": 0.21472868217054264,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=roofType=FLACHDACH",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 0.019036,
      "time_lo_s": 0.018727,
      "time_hi_s": 0.019407,
      "time_min_s": 0.018465,
      "time_max_s": 0.025052,
      "repeat": 25,
      "heap_b": 12592082,
      "rss_b": 27918336,
      "result_count": 600,
      "base_time_s": 0.116497,
      "base_rss_b": 13615104.0,
      "time_factor": 6.119825593612103,
      "rss_factor": 0.4876760563380282,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=roofType=FLACHDACH",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.000503,
      "time_lo_s": 0.000496,
      "time_hi_s": 0.000544,
      "time_min_s": 0.000434,
      "time_max_s": 0.000676,
      "repeat": 25,
      "heap_b": 205204,
      "rss_b": 11223040,
      "result_count": 600,
      "base_time_s": 0.116497,
      "base_rss_b": 13615104.0,
      "time_factor": 231.60437375745528,
      "rss_factor": 1.2131386861313869,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=roofType=FLACHDACH",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.001481,
      "time_lo_s": 0.001444,
      "time_hi_s": 0.001513,
      "time_min_s": 0.001405,
      "time_max_s": 0.001773,
      "repeat": 25,
      "heap_b": 156413,
      "rss_b": 7782400,
      "result_count": 600,
      "base_time_s": 0.116497,
      "base_rss_b": 13615104.0,
      "time_factor": 78.66103983794734,
      "rss_factor": 1.7494736842105263,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=roofType=FLACHDACH;attr-index-failed",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "attr-stats",
      "time_s": 0.11586,
      "time_lo_s": 0.115122,
      "time_hi_s": 0.116971,
      "time_min_s": 0.114185,
      "time_max_s": 0.1341,
      "repeat": 25,
      "heap_b": 2402046,
      "rss_b": 13418496,
      "result_count": 1102,
      "base_time_s": 0.11586,
      "base_rss_b": 13418496.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "attr-stats",
      "time_s": 0.020482,
      "time_lo_s": 0.020167,
      "time_hi_s": 0.021231,
      "time_min_s": 0.019618,
      "time_max_s": 0.023592,
      "repeat": 25,
      "heap_b": 48194175,
      "rss_b": 63340544,
      "result_count": 1102,
      "base_time_s": 0.11586,
      "base_rss_b": 13418496.0,
      "time_factor": 5.656674152914754,
      "rss_factor": 0.21184687015002587,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "attr-stats",
      "time_s": 0.019049,
      "time_lo_s": 0.018765,
      "time_hi_s": 0.019173,
      "time_min_s": 0.018422,
      "time_max_s": 0.019615,
      "repeat": 25,
      "heap_b": 12592069,
      "rss_b": 24330240,
      "result_count": 1102,
      "base_time_s": 0.11586,
      "base_rss_b": 13418496.0,
      "time_factor": 6.082209039844612,
      "rss_factor": 0.5515151515151515,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "attr-stats",
      "time_s": 0.000341,
      "time_lo_s": 0.000331,
      "time_hi_s": 0.000354,
      "time_min_s": 0.000298,
      "time_max_s": 0.000418,
      "repeat": 25,
      "heap_b": 81314,
      "rss_b": 10174464,
      "result_count": 1102,
      "base_time_s": 0.11586,
      "base_rss_b": 13418496.0,
      "time_factor": 339.7653958944282,
      "rss_factor": 1.318840579710145,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "attr-stats",
      "time_s": 0.001587,
      "time_lo_s": 0.001435,
      "time_hi_s": 0.001969,
      "time_min_s": 0.001362,
      "time_max_s": 0.003108,
      "repeat": 25,
      "heap_b": 156336,
      "rss_b": 7553024,
      "result_count": 1102,
      "base_time_s": 0.11586,
      "base_rss_b": 13418496.0,
      "time_factor": 73.00567107750473,
      "rss_factor": 1.7765726681127982,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=measuredHeight",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 0.118864,
      "time_lo_s": 0.117816,
      "time_hi_s": 0.119807,
      "time_min_s": 0.115269,
      "time_max_s": 0.122466,
      "repeat": 25,
      "heap_b": 2402032,
      "rss_b": 13484032,
      "result_count": 13,
      "base_time_s": 0.118864,
      "base_rss_b": 13484032.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 0.022591,
      "time_lo_s": 0.022229,
      "time_hi_s": 0.023165,
      "time_min_s": 0.021598,
      "time_max_s": 0.024255,
      "repeat": 25,
      "heap_b": 48194161,
      "rss_b": 63897600,
      "result_count": 13,
      "base_time_s": 0.118864,
      "base_rss_b": 13484032.0,
      "time_factor": 5.261564339781328,
      "rss_factor": 0.21102564102564103,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 0.019806,
      "time_lo_s": 0.019592,
      "time_hi_s": 0.020039,
      "time_min_s": 0.019221,
      "time_max_s": 0.022402,
      "repeat": 25,
      "heap_b": 12592055,
      "rss_b": 27574272,
      "result_count": 13,
      "base_time_s": 0.118864,
      "base_rss_b": 13484032.0,
      "time_factor": 6.001413713016257,
      "rss_factor": 0.489007724301842,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.003279,
      "time_lo_s": 0.003219,
      "time_hi_s": 0.003314,
      "time_min_s": 0.003187,
      "time_max_s": 0.003505,
      "repeat": 25,
      "heap_b": 6732738,
      "rss_b": 20512768,
      "result_count": 13,
      "base_time_s": 0.118864,
      "base_rss_b": 13484032.0,
      "time_factor": 36.25007624275694,
      "rss_factor": 0.6573482428115016,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 0.000102,
      "time_lo_s": 9.9e-05,
      "time_hi_s": 0.000105,
      "time_min_s": 9e-05,
      "time_max_s": 0.000161,
      "repeat": 25,
      "heap_b": 53978,
      "rss_b": 7667712,
      "result_count": 13,
      "base_time_s": 0.118864,
      "base_rss_b": 13484032.0,
      "time_factor": 1165.3333333333333,
      "rss_factor": 1.7585470085470085,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 0.116955,
      "time_lo_s": 0.116458,
      "time_hi_s": 0.117419,
      "time_min_s": 0.115415,
      "time_max_s": 0.118883,
      "repeat": 25,
      "heap_b": 2402032,
      "rss_b": 13467648,
      "result_count": 331,
      "base_time_s": 0.116955,
      "base_rss_b": 13467648.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 0.022765,
      "time_lo_s": 0.02252,
      "time_hi_s": 0.023021,
      "time_min_s": 0.022101,
      "time_max_s": 0.023447,
      "repeat": 25,
      "heap_b": 48194161,
      "rss_b": 63225856,
      "result_count": 331,
      "base_time_s": 0.116955,
      "base_rss_b": 13467648.0,
      "time_factor": 5.137491763672304,
      "rss_factor": 0.21300855143819641,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 0.019782,
      "time_lo_s": 0.019594,
      "time_hi_s": 0.020136,
      "time_min_s": 0.019407,
      "time_max_s": 0.023702,
      "repeat": 25,
      "heap_b": 12592055,
      "rss_b": 23822336,
      "result_count": 331,
      "base_time_s": 0.116955,
      "base_rss_b": 13467648.0,
      "time_factor": 5.912192902638762,
      "rss_factor": 0.5653370013755158,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.003798,
      "time_lo_s": 0.003769,
      "time_hi_s": 0.003853,
      "time_min_s": 0.003653,
      "time_max_s": 0.004052,
      "repeat": 25,
      "heap_b": 10007648,
      "rss_b": 24264704,
      "result_count": 331,
      "base_time_s": 0.116955,
      "base_rss_b": 13467648.0,
      "time_factor": 30.79383886255924,
      "rss_factor": 0.5550303848750844,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.000594,
      "time_lo_s": 0.000581,
      "time_hi_s": 0.000609,
      "time_min_s": 0.000558,
      "time_max_s": 0.000636,
      "repeat": 25,
      "heap_b": 171478,
      "rss_b": 7995392,
      "result_count": 331,
      "base_time_s": 0.116955,
      "base_rss_b": 13467648.0,
      "time_factor": 196.8939393939394,
      "rss_factor": 1.6844262295081966,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 0.117919,
      "time_lo_s": 0.11642,
      "time_hi_s": 0.119292,
      "time_min_s": 0.115819,
      "time_max_s": 0.121709,
      "repeat": 25,
      "heap_b": 2402032,
      "rss_b": 13565952,
      "result_count": 67,
      "base_time_s": 0.117919,
      "base_rss_b": 13565952.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 0.022649,
      "time_lo_s": 0.022251,
      "time_hi_s": 0.023054,
      "time_min_s": 0.021772,
      "time_max_s": 0.023964,
      "repeat": 25,
      "heap_b": 48194161,
      "rss_b": 63569920,
      "result_count": 67,
      "base_time_s": 0.117919,
      "base_rss_b": 13565952.0,
      "time_factor": 5.206366727007815,
      "rss_factor": 0.2134020618556701,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 0.019617,
      "time_lo_s": 0.01925,
      "time_hi_s": 0.019963,
      "time_min_s": 0.01899,
      "time_max_s": 0.020429,
      "repeat": 25,
      "heap_b": 12592055,
      "rss_b": 23674880,
      "result_count": 67,
      "base_time_s": 0.117919,
      "base_rss_b": 13565952.0,
      "time_factor": 6.011061834123464,
      "rss_factor": 0.5730103806228374,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.003692,
      "time_lo_s": 0.003599,
      "time_hi_s": 0.003898,
      "time_min_s": 0.003343,
      "time_max_s": 0.008051,
      "repeat": 25,
      "heap_b": 6733506,
      "rss_b": 20840448,
      "result_count": 67,
      "base_time_s": 0.117919,
      "base_rss_b": 13565952.0,
      "time_factor": 31.939057421451786,
      "rss_factor": 0.6509433962264151,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.000214,
      "time_lo_s": 0.0002,
      "time_hi_s": 0.000225,
      "time_min_s": 0.000182,
      "time_max_s": 0.000244,
      "repeat": 25,
      "heap_b": 84150,
      "rss_b": 7749632,
      "result_count": 67,
      "base_time_s": 0.117919,
      "base_rss_b": 13565952.0,
      "time_factor": 551.0233644859813,
      "rss_factor": 1.7505285412262157,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 0.117978,
      "time_lo_s": 0.117164,
      "time_hi_s": 0.119222,
      "time_min_s": 0.114926,
      "time_max_s": 0.130661,
      "repeat": 25,
      "heap_b": 2402027,
      "rss_b": 13565952,
      "result_count": 307,
      "base_time_s": 0.117978,
      "base_rss_b": 13565952.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 0.020391,
      "time_lo_s": 0.020247,
      "time_hi_s": 0.020687,
      "time_min_s": 0.019804,
      "time_max_s": 0.022125,
      "repeat": 25,
      "heap_b": 48194156,
      "rss_b": 63307776,
      "result_count": 1322,
      "base_time_s": 0.117978,
      "base_rss_b": 13565952.0,
      "time_factor": 5.785787847579814,
      "rss_factor": 0.21428571428571427,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 0.018832,
      "time_lo_s": 0.018657,
      "time_hi_s": 0.019006,
      "time_min_s": 0.018236,
      "time_max_s": 0.01958,
      "repeat": 25,
      "heap_b": 12592050,
      "rss_b": 23527424,
      "result_count": 307,
      "base_time_s": 0.117978,
      "base_rss_b": 13565952.0,
      "time_factor": 6.264762107051826,
      "rss_factor": 0.5766016713091922,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.00026,
      "time_lo_s": 0.000241,
      "time_hi_s": 0.000268,
      "time_min_s": 0.000212,
      "time_max_s": 0.000304,
      "repeat": 25,
      "heap_b": 80468,
      "rss_b": 9175040,
      "result_count": 1322,
      "base_time_s": 0.117978,
      "base_rss_b": 13565952.0,
      "time_factor": 453.7615384615385,
      "rss_factor": 1.4785714285714286,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 3e-05,
      "time_lo_s": 2.7e-05,
      "time_hi_s": 3.7e-05,
      "time_min_s": 2.5e-05,
      "time_max_s": 4.9e-05,
      "repeat": 25,
      "heap_b": 9669,
      "rss_b": 7290880,
      "result_count": 307,
      "base_time_s": 0.117978,
      "base_rss_b": 13565952.0,
      "time_factor": 3932.6,
      "rss_factor": 1.8606741573033707,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 0.120587,
      "time_lo_s": 0.11903,
      "time_hi_s": 0.122051,
      "time_min_s": 0.117465,
      "time_max_s": 0.130667,
      "repeat": 25,
      "heap_b": 2402031,
      "rss_b": 13516800,
      "result_count": 307,
      "base_time_s": 0.120587,
      "base_rss_b": 13516800.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 0.023128,
      "time_lo_s": 0.022915,
      "time_hi_s": 0.02378,
      "time_min_s": 0.022576,
      "time_max_s": 0.024188,
      "repeat": 25,
      "heap_b": 48194160,
      "rss_b": 63340544,
      "result_count": 1322,
      "base_time_s": 0.120587,
      "base_rss_b": 13516800.0,
      "time_factor": 5.213896575579384,
      "rss_factor": 0.21339886187273668,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 0.019939,
      "time_lo_s": 0.019836,
      "time_hi_s": 0.020172,
      "time_min_s": 0.019264,
      "time_max_s": 0.021071,
      "repeat": 25,
      "heap_b": 12592054,
      "rss_b": 23642112,
      "result_count": 307,
      "base_time_s": 0.120587,
      "base_rss_b": 13516800.0,
      "time_factor": 6.047795777120217,
      "rss_factor": 0.5717255717255717,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.014264,
      "time_lo_s": 0.014158,
      "time_hi_s": 0.014393,
      "time_min_s": 0.014032,
      "time_max_s": 0.014917,
      "repeat": 25,
      "heap_b": 14910590,
      "rss_b": 33882112,
      "result_count": 1322,
      "base_time_s": 0.120587,
      "base_rss_b": 13516800.0,
      "time_factor": 8.453939988782949,
      "rss_factor": 0.39893617021276595,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.001916,
      "time_lo_s": 0.001888,
      "time_hi_s": 0.001988,
      "time_min_s": 0.001862,
      "time_max_s": 0.002081,
      "repeat": 25,
      "heap_b": 156321,
      "rss_b": 7503872,
      "result_count": 307,
      "base_time_s": 0.120587,
      "base_rss_b": 13516800.0,
      "time_factor": 62.93684759916493,
      "rss_factor": 1.8013100436681222,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 0.025398,
      "time_lo_s": 0.025187,
      "time_hi_s": 0.025963,
      "time_min_s": 0.025053,
      "time_max_s": 0.028764,
      "repeat": 25,
      "heap_b": 1062151,
      "rss_b": 10649600,
      "result_count": 1,
      "base_time_s": 0.025398,
      "base_rss_b": 10649600.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 0.020314,
      "time_lo_s": 0.020057,
      "time_hi_s": 0.020661,
      "time_min_s": 0.019689,
      "time_max_s": 0.022804,
      "repeat": 25,
      "heap_b": 48194200,
      "rss_b": 63324160,
      "result_count": 1,
      "base_time_s": 0.025398,
      "base_rss_b": 10649600.0,
      "time_factor": 1.2502707492369796,
      "rss_factor": 0.16817593790426907,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.003281,
      "time_lo_s": 0.003233,
      "time_hi_s": 0.003352,
      "time_min_s": 0.003183,
      "time_max_s": 0.003756,
      "repeat": 25,
      "heap_b": 12592094,
      "rss_b": 21987328,
      "result_count": 1,
      "base_time_s": 0.025398,
      "base_rss_b": 10649600.0,
      "time_factor": 7.740932642487047,
      "rss_factor": 0.4843517138599106,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.004342,
      "time_lo_s": 0.004307,
      "time_hi_s": 0.004446,
      "time_min_s": 0.004217,
      "time_max_s": 0.005259,
      "repeat": 25,
      "heap_b": 7315568,
      "rss_b": 25018368,
      "result_count": 1,
      "base_time_s": 0.025398,
      "base_rss_b": 10649600.0,
      "time_factor": 5.849378166743436,
      "rss_factor": 0.4256712508185986,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.001466,
      "time_lo_s": 0.001386,
      "time_hi_s": 0.001702,
      "time_min_s": 0.001312,
      "time_max_s": 0.00221,
      "repeat": 25,
      "heap_b": 156465,
      "rss_b": 7585792,
      "result_count": 1,
      "base_time_s": 0.025398,
      "base_rss_b": 10649600.0,
      "time_factor": 17.32469304229195,
      "rss_factor": 1.4038876889848813,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 0.061034,
      "time_lo_s": 0.060727,
      "time_hi_s": 0.061243,
      "time_min_s": 0.060327,
      "time_max_s": 0.062108,
      "repeat": 25,
      "heap_b": 1062151,
      "rss_b": 10829824,
      "result_count": 1,
      "base_time_s": 0.061034,
      "base_rss_b": 10829824.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 0.020182,
      "time_lo_s": 0.019759,
      "time_hi_s": 0.020484,
      "time_min_s": 0.019301,
      "time_max_s": 0.020993,
      "repeat": 25,
      "heap_b": 48194200,
      "rss_b": 63275008,
      "result_count": 1,
      "base_time_s": 0.061034,
      "base_rss_b": 10829824.0,
      "time_factor": 3.0241799623426817,
      "rss_factor": 0.1711548420507509,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.009673,
      "time_lo_s": 0.009509,
      "time_hi_s": 0.010006,
      "time_min_s": 0.0092,
      "time_max_s": 0.010141,
      "repeat": 25,
      "heap_b": 12592094,
      "rss_b": 26017792,
      "result_count": 1,
      "base_time_s": 0.061034,
      "base_rss_b": 10829824.0,
      "time_factor": 6.309728109169854,
      "rss_factor": 0.4162468513853904,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.003374,
      "time_lo_s": 0.00328,
      "time_hi_s": 0.003465,
      "time_min_s": 0.00317,
      "time_max_s": 0.00379,
      "repeat": 25,
      "heap_b": 5262764,
      "rss_b": 19398656,
      "result_count": 1,
      "base_time_s": 0.061034,
      "base_rss_b": 10829824.0,
      "time_factor": 18.089508002371073,
      "rss_factor": 0.558277027027027,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.000172,
      "time_lo_s": 0.000156,
      "time_hi_s": 0.00018,
      "time_min_s": 0.000142,
      "time_max_s": 0.000222,
      "repeat": 25,
      "heap_b": 156465,
      "rss_b": 7569408,
      "result_count": 1,
      "base_time_s": 0.061034,
      "base_rss_b": 10829824.0,
      "time_factor": 354.8488372093023,
      "rss_factor": 1.4307359307359306,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 0.103905,
      "time_lo_s": 0.103702,
      "time_hi_s": 0.105445,
      "time_min_s": 0.103221,
      "time_max_s": 0.106603,
      "repeat": 25,
      "heap_b": 2402071,
      "rss_b": 13434880,
      "result_count": 1,
      "base_time_s": 0.103905,
      "base_rss_b": 13434880.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 0.019993,
      "time_lo_s": 0.019816,
      "time_hi_s": 0.020186,
      "time_min_s": 0.019418,
      "time_max_s": 0.021078,
      "repeat": 25,
      "heap_b": 48194200,
      "rss_b": 62898176,
      "result_count": 1,
      "base_time_s": 0.103905,
      "base_rss_b": 13434880.0,
      "time_factor": 5.197068974140949,
      "rss_factor": 0.21359729096118782,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 0.016809,
      "time_lo_s": 0.016573,
      "time_hi_s": 0.016995,
      "time_min_s": 0.01627,
      "time_max_s": 0.017613,
      "repeat": 25,
      "heap_b": 12592094,
      "rss_b": 27246592,
      "result_count": 1,
      "base_time_s": 0.103905,
      "base_rss_b": 13434880.0,
      "time_factor": 6.181509905407816,
      "rss_factor": 0.4930847865303668,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.003423,
      "time_lo_s": 0.003379,
      "time_hi_s": 0.003478,
      "time_min_s": 0.003212,
      "time_max_s": 0.003751,
      "repeat": 25,
      "heap_b": 5262764,
      "rss_b": 19382272,
      "result_count": 1,
      "base_time_s": 0.103905,
      "base_rss_b": 13434880.0,
      "time_factor": 30.35495179666959,
      "rss_factor": 0.6931530008453085,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.000189,
      "time_lo_s": 0.000185,
      "time_hi_s": 0.000194,
      "time_min_s": 0.000163,
      "time_max_s": 0.000218,
      "repeat": 25,
      "heap_b": 156465,
      "rss_b": 7602176,
      "result_count": 1,
      "base_time_s": 0.103905,
      "base_rss_b": 13434880.0,
      "time_factor": 549.7619047619047,
      "rss_factor": 1.7672413793103448,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 0.11691,
      "time_lo_s": 0.115374,
      "time_hi_s": 0.118242,
      "time_min_s": 0.114461,
      "time_max_s": 0.123674,
      "repeat": 25,
      "heap_b": 2402088,
      "rss_b": 13565952,
      "result_count": 0,
      "base_time_s": 0.11691,
      "base_rss_b": 13565952.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 0.021002,
      "time_lo_s": 0.020646,
      "time_hi_s": 0.021375,
      "time_min_s": 0.020374,
      "time_max_s": 0.02322,
      "repeat": 25,
      "heap_b": 48194217,
      "rss_b": 63324160,
      "result_count": 0,
      "base_time_s": 0.11691,
      "base_rss_b": 13565952.0,
      "time_factor": 5.5666127035520425,
      "rss_factor": 0.21423027166882277,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 0.018879,
      "time_lo_s": 0.018479,
      "time_hi_s": 0.019093,
      "time_min_s": 0.018201,
      "time_max_s": 0.019775,
      "repeat": 25,
      "heap_b": 12592111,
      "rss_b": 27443200,
      "result_count": 0,
      "base_time_s": 0.11691,
      "base_rss_b": 13565952.0,
      "time_factor": 6.192594946766248,
      "rss_factor": 0.4943283582089552,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.000343,
      "time_lo_s": 0.000333,
      "time_hi_s": 0.00035,
      "time_min_s": 0.000312,
      "time_max_s": 0.00042,
      "repeat": 25,
      "heap_b": 118566,
      "rss_b": 10158080,
      "result_count": 0,
      "base_time_s": 0.11691,
      "base_rss_b": 13565952.0,
      "time_factor": 340.8454810495627,
      "rss_factor": 1.335483870967742,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.001436,
      "time_lo_s": 0.001401,
      "time_hi_s": 0.001468,
      "time_min_s": 0.001288,
      "time_max_s": 0.001497,
      "repeat": 25,
      "heap_b": 156499,
      "rss_b": 7569408,
      "result_count": 0,
      "base_time_s": 0.11691,
      "base_rss_b": 13565952.0,
      "time_factor": 81.41364902506963,
      "rss_factor": 1.7922077922077921,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "attr-filter",
      "time_s": 0.096266,
      "time_lo_s": 0.095661,
      "time_hi_s": 0.09761,
      "time_min_s": 0.094616,
      "time_max_s": 0.106694,
      "repeat": 25,
      "heap_b": 30659441,
      "rss_b": 59293696,
      "result_count": 217,
      "base_time_s": 0.096266,
      "base_rss_b": 59293696.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight>=2.45",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "attr-filter",
      "time_s": 0.014922,
      "time_lo_s": 0.014356,
      "time_hi_s": 0.015387,
      "time_min_s": 0.013897,
      "time_max_s": 0.017521,
      "repeat": 25,
      "heap_b": 39929878,
      "rss_b": 54018048,
      "result_count": 217,
      "base_time_s": 0.096266,
      "base_rss_b": 59293696.0,
      "time_factor": 6.451279989277578,
      "rss_factor": 1.0976645435244161,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight>=2.45",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "attr-filter",
      "time_s": 0.013619,
      "time_lo_s": 0.013418,
      "time_hi_s": 0.01382,
      "time_min_s": 0.013312,
      "time_max_s": 0.01505,
      "repeat": 25,
      "heap_b": 6300620,
      "rss_b": 16826368,
      "result_count": 217,
      "base_time_s": 0.096266,
      "base_rss_b": 59293696.0,
      "time_factor": 7.068507232542772,
      "rss_factor": 3.5238558909444984,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight>=2.45",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "attr-filter",
      "time_s": 0.000392,
      "time_lo_s": 0.000383,
      "time_hi_s": 0.000418,
      "time_min_s": 0.000368,
      "time_max_s": 0.000498,
      "repeat": 25,
      "heap_b": 154689,
      "rss_b": 11206656,
      "result_count": 217,
      "base_time_s": 0.096266,
      "base_rss_b": 59293696.0,
      "time_factor": 245.5765306122449,
      "rss_factor": 5.29093567251462,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight>=2.45",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "attr-filter",
      "time_s": 0.000534,
      "time_lo_s": 0.000522,
      "time_hi_s": 0.000546,
      "time_min_s": 0.00051,
      "time_max_s": 0.000587,
      "repeat": 25,
      "heap_b": 146884,
      "rss_b": 7847936,
      "result_count": 217,
      "base_time_s": 0.096266,
      "base_rss_b": 59293696.0,
      "time_factor": 180.2734082397004,
      "rss_factor": 7.555323590814196,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight>=2.45",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "attr-stats",
      "time_s": 0.097489,
      "time_lo_s": 0.096255,
      "time_hi_s": 0.108667,
      "time_min_s": 0.095415,
      "time_max_s": 0.334788,
      "repeat": 25,
      "heap_b": 30659440,
      "rss_b": 60424192,
      "result_count": 853,
      "base_time_s": 0.097489,
      "base_rss_b": 60424192.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "attr-stats",
      "time_s": 0.014361,
      "time_lo_s": 0.014119,
      "time_hi_s": 0.014968,
      "time_min_s": 0.013439,
      "time_max_s": 0.02159,
      "repeat": 25,
      "heap_b": 39929877,
      "rss_b": 54132736,
      "result_count": 853,
      "base_time_s": 0.097489,
      "base_rss_b": 60424192.0,
      "time_factor": 6.788454842977509,
      "rss_factor": 1.116222760290557,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "attr-stats",
      "time_s": 0.013605,
      "time_lo_s": 0.013487,
      "time_hi_s": 0.01378,
      "time_min_s": 0.01322,
      "time_max_s": 0.015271,
      "repeat": 25,
      "heap_b": 6300619,
      "rss_b": 16777216,
      "result_count": 853,
      "base_time_s": 0.097489,
      "base_rss_b": 60424192.0,
      "time_factor": 7.1656743844174935,
      "rss_factor": 3.6015625,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "attr-stats",
      "time_s": 0.000289,
      "time_lo_s": 0.000282,
      "time_hi_s": 0.000296,
      "time_min_s": 0.000275,
      "time_max_s": 0.000311,
      "repeat": 25,
      "heap_b": 91124,
      "rss_b": 10223616,
      "result_count": 853,
      "base_time_s": 0.097489,
      "base_rss_b": 60424192.0,
      "time_factor": 337.3321799307959,
      "rss_factor": 5.910256410256411,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "attr-stats",
      "time_s": 0.000961,
      "time_lo_s": 0.000951,
      "time_hi_s": 0.000975,
      "time_min_s": 0.000932,
      "time_max_s": 0.00101,
      "repeat": 25,
      "heap_b": 129273,
      "rss_b": 7503872,
      "result_count": 853,
      "base_time_s": 0.097489,
      "base_rss_b": 60424192.0,
      "time_factor": 101.44536940686785,
      "rss_factor": 8.052401746724891,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "attr=TerrainHeight",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "bbox-1pct",
      "time_s": 0.097097,
      "time_lo_s": 0.096674,
      "time_hi_s": 0.097762,
      "time_min_s": 0.09543,
      "time_max_s": 0.099496,
      "repeat": 25,
      "heap_b": 30659427,
      "rss_b": 59572224,
      "result_count": 9,
      "base_time_s": 0.097097,
      "base_rss_b": 59572224.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "bbox-1pct",
      "time_s": 0.015881,
      "time_lo_s": 0.015573,
      "time_hi_s": 0.016443,
      "time_min_s": 0.015237,
      "time_max_s": 0.01729,
      "repeat": 25,
      "heap_b": 39929864,
      "rss_b": 53739520,
      "result_count": 9,
      "base_time_s": 0.097097,
      "base_rss_b": 59572224.0,
      "time_factor": 6.114035640073044,
      "rss_factor": 1.1085365853658538,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "bbox-1pct",
      "time_s": 0.013817,
      "time_lo_s": 0.013773,
      "time_hi_s": 0.013927,
      "time_min_s": 0.013555,
      "time_max_s": 0.016832,
      "repeat": 25,
      "heap_b": 6300606,
      "rss_b": 16924672,
      "result_count": 9,
      "base_time_s": 0.097097,
      "base_rss_b": 59572224.0,
      "time_factor": 7.027357602952884,
      "rss_factor": 3.519845111326234,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "bbox-1pct",
      "time_s": 0.001987,
      "time_lo_s": 0.001965,
      "time_hi_s": 0.002007,
      "time_min_s": 0.001947,
      "time_max_s": 0.00205,
      "repeat": 25,
      "heap_b": 5007576,
      "rss_b": 16629760,
      "result_count": 9,
      "base_time_s": 0.097097,
      "base_rss_b": 59572224.0,
      "time_factor": 48.86612984398591,
      "rss_factor": 3.5822660098522165,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "bbox-1pct",
      "time_s": 6.8e-05,
      "time_lo_s": 6.4e-05,
      "time_hi_s": 7.2e-05,
      "time_min_s": 6.2e-05,
      "time_max_s": 8.4e-05,
      "repeat": 25,
      "heap_b": 21628,
      "rss_b": 7618560,
      "result_count": 9,
      "base_time_s": 0.097097,
      "base_rss_b": 59572224.0,
      "time_factor": 1427.8970588235295,
      "rss_factor": 7.819354838709677,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-1pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "bbox-25pct",
      "time_s": 0.097028,
      "time_lo_s": 0.096244,
      "time_hi_s": 0.098292,
      "time_min_s": 0.095134,
      "time_max_s": 0.114533,
      "repeat": 25,
      "heap_b": 30659427,
      "rss_b": 59637760,
      "result_count": 213,
      "base_time_s": 0.097028,
      "base_rss_b": 59637760.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "bbox-25pct",
      "time_s": 0.015406,
      "time_lo_s": 0.015273,
      "time_hi_s": 0.015556,
      "time_min_s": 0.01496,
      "time_max_s": 0.024616,
      "repeat": 25,
      "heap_b": 39929864,
      "rss_b": 53755904,
      "result_count": 213,
      "base_time_s": 0.097028,
      "base_rss_b": 59637760.0,
      "time_factor": 6.298065688692717,
      "rss_factor": 1.1094178604084122,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "bbox-25pct",
      "time_s": 0.013789,
      "time_lo_s": 0.013718,
      "time_hi_s": 0.013862,
      "time_min_s": 0.013509,
      "time_max_s": 0.014739,
      "repeat": 25,
      "heap_b": 6300606,
      "rss_b": 16531456,
      "result_count": 213,
      "base_time_s": 0.097028,
      "base_rss_b": 59637760.0,
      "time_factor": 7.0366233954601505,
      "rss_factor": 3.607532210109019,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "bbox-25pct",
      "time_s": 0.002117,
      "time_lo_s": 0.002101,
      "time_hi_s": 0.002134,
      "time_min_s": 0.002048,
      "time_max_s": 0.002164,
      "repeat": 25,
      "heap_b": 5007504,
      "rss_b": 18038784,
      "result_count": 213,
      "base_time_s": 0.097028,
      "base_rss_b": 59637760.0,
      "time_factor": 45.83278223901748,
      "rss_factor": 3.3060853769300635,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "bbox-25pct",
      "time_s": 0.000388,
      "time_lo_s": 0.000378,
      "time_hi_s": 0.000397,
      "time_min_s": 0.000354,
      "time_max_s": 0.000435,
      "repeat": 25,
      "heap_b": 50360,
      "rss_b": 7684096,
      "result_count": 213,
      "base_time_s": 0.097028,
      "base_rss_b": 59637760.0,
      "time_factor": 250.0721649484536,
      "rss_factor": 7.7611940298507465,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-25pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "bbox-5pct",
      "time_s": 0.096917,
      "time_lo_s": 0.096397,
      "time_hi_s": 0.098149,
      "time_min_s": 0.094215,
      "time_max_s": 0.099996,
      "repeat": 25,
      "heap_b": 30659427,
      "rss_b": 59277312,
      "result_count": 43,
      "base_time_s": 0.096917,
      "base_rss_b": 59277312.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "bbox-5pct",
      "time_s": 0.015902,
      "time_lo_s": 0.015466,
      "time_hi_s": 0.016168,
      "time_min_s": 0.014812,
      "time_max_s": 0.017251,
      "repeat": 25,
      "heap_b": 39929864,
      "rss_b": 54149120,
      "result_count": 43,
      "base_time_s": 0.096917,
      "base_rss_b": 59277312.0,
      "time_factor": 6.094642183373161,
      "rss_factor": 1.0947049924357035,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "bbox-5pct",
      "time_s": 0.013879,
      "time_lo_s": 0.013768,
      "time_hi_s": 0.01404,
      "time_min_s": 0.013677,
      "time_max_s": 0.01586,
      "repeat": 25,
      "heap_b": 6300606,
      "rss_b": 16531456,
      "result_count": 43,
      "base_time_s": 0.096917,
      "base_rss_b": 59277312.0,
      "time_factor": 6.98299589307587,
      "rss_factor": 3.5857284440039643,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "bbox-5pct",
      "time_s": 0.002009,
      "time_lo_s": 0.001998,
      "time_hi_s": 0.002054,
      "time_min_s": 0.00196,
      "time_max_s": 0.002189,
      "repeat": 25,
      "heap_b": 5007832,
      "rss_b": 16613376,
      "result_count": 43,
      "base_time_s": 0.096917,
      "base_rss_b": 59277312.0,
      "time_factor": 48.241413638626184,
      "rss_factor": 3.5680473372781063,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "bbox-5pct",
      "time_s": 0.000126,
      "time_lo_s": 0.000119,
      "time_hi_s": 0.000142,
      "time_min_s": 0.000113,
      "time_max_s": 0.00017,
      "repeat": 25,
      "heap_b": 34126,
      "rss_b": 7700480,
      "result_count": 43,
      "base_time_s": 0.096917,
      "base_rss_b": 59277312.0,
      "time_factor": 769.1825396825398,
      "rss_factor": 7.697872340425532,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "bbox-5pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "count",
      "time_s": 0.096254,
      "time_lo_s": 0.095721,
      "time_hi_s": 0.096733,
      "time_min_s": 0.095051,
      "time_max_s": 0.101391,
      "repeat": 25,
      "heap_b": 30659422,
      "rss_b": 59506688,
      "result_count": 853,
      "base_time_s": 0.096254,
      "base_rss_b": 59506688.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "count",
      "time_s": 0.014276,
      "time_lo_s": 0.014013,
      "time_hi_s": 0.014668,
      "time_min_s": 0.013576,
      "time_max_s": 0.017264,
      "repeat": 25,
      "heap_b": 39929859,
      "rss_b": 53526528,
      "result_count": 853,
      "base_time_s": 0.096254,
      "base_rss_b": 59506688.0,
      "time_factor": 6.742364808069487,
      "rss_factor": 1.1117232935414754,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "count",
      "time_s": 0.013484,
      "time_lo_s": 0.013404,
      "time_hi_s": 0.013603,
      "time_min_s": 0.013211,
      "time_max_s": 0.013756,
      "repeat": 25,
      "heap_b": 6300601,
      "rss_b": 16777216,
      "result_count": 853,
      "base_time_s": 0.096254,
      "base_rss_b": 59506688.0,
      "time_factor": 7.138386235538417,
      "rss_factor": 3.546875,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "count",
      "time_s": 0.000233,
      "time_lo_s": 0.00022,
      "time_hi_s": 0.000237,
      "time_min_s": 0.000208,
      "time_max_s": 0.000257,
      "repeat": 25,
      "heap_b": 91106,
      "rss_b": 9256960,
      "result_count": 853,
      "base_time_s": 0.096254,
      "base_rss_b": 59506688.0,
      "time_factor": 413.10729613733906,
      "rss_factor": 6.428318584070796,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "count",
      "time_s": 2.4e-05,
      "time_lo_s": 2.3e-05,
      "time_hi_s": 2.8e-05,
      "time_min_s": 2.2e-05,
      "time_max_s": 3.2e-05,
      "repeat": 25,
      "heap_b": 9436,
      "rss_b": 7290880,
      "result_count": 853,
      "base_time_s": 0.096254,
      "base_rss_b": 59506688.0,
      "time_factor": 4010.5833333333335,
      "rss_factor": 8.161797752808988,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "full-read",
      "time_s": 0.098339,
      "time_lo_s": 0.097436,
      "time_hi_s": 0.100567,
      "time_min_s": 0.095213,
      "time_max_s": 0.120376,
      "repeat": 25,
      "heap_b": 30659426,
      "rss_b": 59998208,
      "result_count": 853,
      "base_time_s": 0.098339,
      "base_rss_b": 59998208.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "full-read",
      "time_s": 0.015173,
      "time_lo_s": 0.014808,
      "time_hi_s": 0.01554,
      "time_min_s": 0.014659,
      "time_max_s": 0.017045,
      "repeat": 25,
      "heap_b": 39929863,
      "rss_b": 53837824,
      "result_count": 853,
      "base_time_s": 0.098339,
      "base_rss_b": 59998208.0,
      "time_factor": 6.4811836815395765,
      "rss_factor": 1.1144248326232502,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "full-read",
      "time_s": 0.013774,
      "time_lo_s": 0.013633,
      "time_hi_s": 0.013956,
      "time_min_s": 0.013447,
      "time_max_s": 0.020266,
      "repeat": 25,
      "heap_b": 6300605,
      "rss_b": 20594688,
      "result_count": 853,
      "base_time_s": 0.098339,
      "base_rss_b": 59998208.0,
      "time_factor": 7.139465659939015,
      "rss_factor": 2.913285600636436,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "full-read",
      "time_s": 0.004414,
      "time_lo_s": 0.004364,
      "time_hi_s": 0.004554,
      "time_min_s": 0.004261,
      "time_max_s": 0.00482,
      "repeat": 25,
      "heap_b": 10495046,
      "rss_b": 24625152,
      "result_count": 853,
      "base_time_s": 0.098339,
      "base_rss_b": 59998208.0,
      "time_factor": 22.278885364748525,
      "rss_factor": 2.4364604125083167,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "full-read",
      "time_s": 0.00112,
      "time_lo_s": 0.001108,
      "time_hi_s": 0.001143,
      "time_min_s": 0.00109,
      "time_max_s": 0.001161,
      "repeat": 25,
      "heap_b": 129259,
      "rss_b": 7503872,
      "result_count": 853,
      "base_time_s": 0.098339,
      "base_rss_b": 59998208.0,
      "time_factor": 87.80267857142857,
      "rss_factor": 7.995633187772926,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "id-10pct",
      "time_s": 0.02651,
      "time_lo_s": 0.025978,
      "time_hi_s": 0.027074,
      "time_min_s": 0.02547,
      "time_max_s": 0.03698,
      "repeat": 25,
      "heap_b": 30659464,
      "rss_b": 58638336,
      "result_count": 1,
      "base_time_s": 0.02651,
      "base_rss_b": 58638336.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "id-10pct",
      "time_s": 0.014503,
      "time_lo_s": 0.014174,
      "time_hi_s": 0.014634,
      "time_min_s": 0.013807,
      "time_max_s": 0.021226,
      "repeat": 25,
      "heap_b": 39929901,
      "rss_b": 54165504,
      "result_count": 1,
      "base_time_s": 0.02651,
      "base_rss_b": 58638336.0,
      "time_factor": 1.8278976763428254,
      "rss_factor": 1.0825771324863884,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "id-10pct",
      "time_s": 0.002365,
      "time_lo_s": 0.002306,
      "time_hi_s": 0.002411,
      "time_min_s": 0.002239,
      "time_max_s": 0.002879,
      "repeat": 25,
      "heap_b": 6300643,
      "rss_b": 15712256,
      "result_count": 1,
      "base_time_s": 0.02651,
      "base_rss_b": 58638336.0,
      "time_factor": 11.209302325581396,
      "rss_factor": 3.732012513034411,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "id-10pct",
      "time_s": 0.002954,
      "time_lo_s": 0.002822,
      "time_hi_s": 0.003066,
      "time_min_s": 0.002727,
      "time_max_s": 0.003498,
      "repeat": 25,
      "heap_b": 5163313,
      "rss_b": 19759104,
      "result_count": 1,
      "base_time_s": 0.02651,
      "base_rss_b": 58638336.0,
      "time_factor": 8.974272173324305,
      "rss_factor": 2.9676616915422884,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "id-10pct",
      "time_s": 0.000555,
      "time_lo_s": 0.000546,
      "time_hi_s": 0.00056,
      "time_min_s": 0.00053,
      "time_max_s": 0.000605,
      "repeat": 25,
      "heap_b": 129399,
      "rss_b": 7553024,
      "result_count": 1,
      "base_time_s": 0.02651,
      "base_rss_b": 58638336.0,
      "time_factor": 47.76576576576576,
      "rss_factor": 7.763557483731019,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-10pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "id-50pct",
      "time_s": 0.057211,
      "time_lo_s": 0.056232,
      "time_hi_s": 0.058177,
      "time_min_s": 0.055028,
      "time_max_s": 0.062744,
      "repeat": 25,
      "heap_b": 30659464,
      "rss_b": 59047936,
      "result_count": 1,
      "base_time_s": 0.057211,
      "base_rss_b": 59047936.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "id-50pct",
      "time_s": 0.014355,
      "time_lo_s": 0.014054,
      "time_hi_s": 0.014917,
      "time_min_s": 0.013602,
      "time_max_s": 0.01609,
      "repeat": 25,
      "heap_b": 39929901,
      "rss_b": 53755904,
      "result_count": 1,
      "base_time_s": 0.057211,
      "base_rss_b": 59047936.0,
      "time_factor": 3.98544061302682,
      "rss_factor": 1.0984455958549222,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "id-50pct",
      "time_s": 0.006966,
      "time_lo_s": 0.006937,
      "time_hi_s": 0.007055,
      "time_min_s": 0.006864,
      "time_max_s": 0.007232,
      "repeat": 25,
      "heap_b": 6300643,
      "rss_b": 16171008,
      "result_count": 1,
      "base_time_s": 0.057211,
      "base_rss_b": 59047936.0,
      "time_factor": 8.212891185759403,
      "rss_factor": 3.651469098277609,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "id-50pct",
      "time_s": 0.002842,
      "time_lo_s": 0.002757,
      "time_hi_s": 0.003009,
      "time_min_s": 0.002691,
      "time_max_s": 0.00324,
      "repeat": 25,
      "heap_b": 5163313,
      "rss_b": 19775488,
      "result_count": 1,
      "base_time_s": 0.057211,
      "base_rss_b": 59047936.0,
      "time_factor": 20.13054187192118,
      "rss_factor": 2.9859154929577465,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "id-50pct",
      "time_s": 0.000697,
      "time_lo_s": 0.000689,
      "time_hi_s": 0.000711,
      "time_min_s": 0.000669,
      "time_max_s": 0.000806,
      "repeat": 25,
      "heap_b": 129399,
      "rss_b": 7553024,
      "result_count": 1,
      "base_time_s": 0.057211,
      "base_rss_b": 59047936.0,
      "time_factor": 82.08177905308465,
      "rss_factor": 7.817787418655097,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-50pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "id-90pct",
      "time_s": 0.089631,
      "time_lo_s": 0.088901,
      "time_hi_s": 0.090333,
      "time_min_s": 0.087666,
      "time_max_s": 0.153689,
      "repeat": 25,
      "heap_b": 30659464,
      "rss_b": 59834368,
      "result_count": 1,
      "base_time_s": 0.089631,
      "base_rss_b": 59834368.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "id-90pct",
      "time_s": 0.01373,
      "time_lo_s": 0.013472,
      "time_hi_s": 0.013844,
      "time_min_s": 0.013295,
      "time_max_s": 0.014077,
      "repeat": 25,
      "heap_b": 39929901,
      "rss_b": 53428224,
      "result_count": 1,
      "base_time_s": 0.089631,
      "base_rss_b": 59834368.0,
      "time_factor": 6.528113619810634,
      "rss_factor": 1.119901870591843,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "id-90pct",
      "time_s": 0.012132,
      "time_lo_s": 0.011921,
      "time_hi_s": 0.012281,
      "time_min_s": 0.011781,
      "time_max_s": 0.015487,
      "repeat": 25,
      "heap_b": 6300643,
      "rss_b": 18415616,
      "result_count": 1,
      "base_time_s": 0.089631,
      "base_rss_b": 59834368.0,
      "time_factor": 7.387982195845697,
      "rss_factor": 3.2491103202846974,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "id-90pct",
      "time_s": 0.002833,
      "time_lo_s": 0.002807,
      "time_hi_s": 0.00287,
      "time_min_s": 0.002779,
      "time_max_s": 0.002946,
      "repeat": 25,
      "heap_b": 5163313,
      "rss_b": 19726336,
      "result_count": 1,
      "base_time_s": 0.089631,
      "base_rss_b": 59834368.0,
      "time_factor": 31.6381927285563,
      "rss_factor": 3.0332225913621262,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "id-90pct",
      "time_s": 0.000287,
      "time_lo_s": 0.000281,
      "time_hi_s": 0.000299,
      "time_min_s": 0.000267,
      "time_max_s": 0.000329,
      "repeat": 25,
      "heap_b": 129399,
      "rss_b": 7553024,
      "result_count": 1,
      "base_time_s": 0.089631,
      "base_rss_b": 59834368.0,
      "time_factor": 312.30313588850174,
      "rss_factor": 7.921908893709327,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-90pct;no-attr-index",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "scenario_key": "id-miss",
      "time_s": 0.09779,
      "time_lo_s": 0.096784,
      "time_hi_s": 0.09867,
      "time_min_s": 0.095791,
      "time_max_s": 0.103322,
      "repeat": 25,
      "heap_b": 30659481,
      "rss_b": 60063744,
      "result_count": 0,
      "base_time_s": 0.09779,
      "base_rss_b": 60063744.0,
      "time_factor": 1.0,
      "rss_factor": 1.0,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "scenario_key": "id-miss",
      "time_s": 0.014294,
      "time_lo_s": 0.013812,
      "time_hi_s": 0.015273,
      "time_min_s": 0.013336,
      "time_max_s": 0.01749,
      "repeat": 25,
      "heap_b": 39929918,
      "rss_b": 53460992,
      "result_count": 0,
      "base_time_s": 0.09779,
      "base_rss_b": 60063744.0,
      "time_factor": 6.8413320274240945,
      "rss_factor": 1.1235059760956174,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "scenario_key": "id-miss",
      "time_s": 0.013348,
      "time_lo_s": 0.013285,
      "time_hi_s": 0.013598,
      "time_min_s": 0.013019,
      "time_max_s": 0.014021,
      "repeat": 25,
      "heap_b": 6300660,
      "rss_b": 16744448,
      "result_count": 0,
      "base_time_s": 0.09779,
      "base_rss_b": 60063744.0,
      "time_factor": 7.32619118969134,
      "rss_factor": 3.5870841487279845,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "scenario_key": "id-miss",
      "time_s": 0.000309,
      "time_lo_s": 0.000301,
      "time_hi_s": 0.000321,
      "time_min_s": 0.00029,
      "time_max_s": 0.000352,
      "repeat": 25,
      "heap_b": 127478,
      "rss_b": 10256384,
      "result_count": 0,
      "base_time_s": 0.09779,
      "base_rss_b": 60063744.0,
      "time_factor": 316.47249190938516,
      "rss_factor": 5.856230031948882,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss",
      "status": ""
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "scenario_key": "id-miss",
      "time_s": 0.000956,
      "time_lo_s": 0.000946,
      "time_hi_s": 0.00097,
      "time_min_s": 0.00093,
      "time_max_s": 0.001082,
      "repeat": 25,
      "heap_b": 129433,
      "rss_b": 7569408,
      "result_count": 0,
      "base_time_s": 0.09779,
      "base_rss_b": 60063744.0,
      "time_factor": 102.2907949790795,
      "rss_factor": 7.935064935064935,
      "unavailable": null,
      "base_unavailable": null,
      "notes": "id-miss;no-attr-index",
      "status": ""
    }
  ],
  "sizes": [
    {
      "dataset": "zurich_building_lod2",
      "format": "citygml",
      "bytes": 1417350755,
      "factor": 1.0
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjson",
      "bytes": 292500409,
      "factor": 4.845636831229183
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityjsonseq",
      "bytes": 259121439,
      "factor": 5.469832062024015
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "cityparquet",
      "bytes": 71855768,
      "factor": 19.724940592103895
    },
    {
      "dataset": "zurich_building_lod2",
      "format": "flatcitybuf",
      "bytes": 206331130,
      "factor": 6.869301568793812
    },
    {
      "dataset": "tokyo",
      "format": "citygml",
      "bytes": 1484995928,
      "factor": 1.0
    },
    {
      "dataset": "tokyo",
      "format": "cityjson",
      "bytes": 315968009,
      "factor": 4.699830000827711
    },
    {
      "dataset": "tokyo",
      "format": "cityjsonseq",
      "bytes": 303886615,
      "factor": 4.886677644555026
    },
    {
      "dataset": "tokyo",
      "format": "cityparquet",
      "bytes": 80184073,
      "factor": 18.519836576523122
    },
    {
      "dataset": "tokyo",
      "format": "flatcitybuf",
      "bytes": 265359818,
      "factor": 5.596159732066141
    },
    {
      "dataset": "montreal",
      "format": "citygml",
      "bytes": 3258190086,
      "factor": 1.0
    },
    {
      "dataset": "montreal",
      "format": "cityjson",
      "bytes": 498371022,
      "factor": 6.537679644624282
    },
    {
      "dataset": "montreal",
      "format": "cityjsonseq",
      "bytes": 372320945,
      "factor": 8.751025505696436
    },
    {
      "dataset": "montreal",
      "format": "cityparquet",
      "bytes": 158972459,
      "factor": 20.495311618725104
    },
    {
      "dataset": "montreal",
      "format": "flatcitybuf",
      "bytes": 366240400,
      "factor": 8.896315332770497
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "citygml",
      "bytes": 568258538,
      "factor": 1.0
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjson",
      "bytes": 110083137,
      "factor": 5.1620852519855065
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityjsonseq",
      "bytes": 100087976,
      "factor": 5.677590463014258
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "cityparquet",
      "bytes": 17245066,
      "factor": 32.951949154616166
    },
    {
      "dataset": "nyc_da13_buildings",
      "format": "flatcitybuf",
      "bytes": 85047072,
      "factor": 6.681694320999082
    },
    {
      "dataset": "vienna_102081",
      "format": "citygml",
      "bytes": 21064612,
      "factor": 1.0
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjson",
      "bytes": 4731370,
      "factor": 4.452116828740936
    },
    {
      "dataset": "vienna_102081",
      "format": "cityjsonseq",
      "bytes": 4449108,
      "factor": 4.734569715997004
    },
    {
      "dataset": "vienna_102081",
      "format": "cityparquet",
      "bytes": 1397524,
      "factor": 15.072808767505961
    },
    {
      "dataset": "vienna_102081",
      "format": "flatcitybuf",
      "bytes": 3619146,
      "factor": 5.820326673751211
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "citygml",
      "bytes": 14046392,
      "factor": 1.0
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjson",
      "bytes": 2731804,
      "factor": 5.141800802693019
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityjsonseq",
      "bytes": 2822644,
      "factor": 4.976324325703135
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "cityparquet",
      "bytes": 714089,
      "factor": 19.670366018801577
    },
    {
      "dataset": "rotterdam_delfshaven",
      "format": "flatcitybuf",
      "bytes": 3017520,
      "factor": 4.65494578329224
    }
  ],
  "bloom": {
    "records": [],
    "sizes": [],
    "gaps": [],
    "variants": [],
    "measures": [
      "id-50pct",
      "id-miss",
      "feature-50pct",
      "feature-miss",
      "attr-identificatie-50pct",
      "attr-identificatie-miss",
      "attr-documentnummer-50pct",
      "attr-documentnummer-miss"
    ],
    "not_measured": [
      "id-50pct",
      "id-miss",
      "feature-50pct",
      "feature-miss",
      "attr-identificatie-50pct",
      "attr-identificatie-miss",
      "attr-documentnummer-50pct",
      "attr-documentnummer-miss"
    ]
  },
  "databases": {
    "baseline": "3dcitydb",
    "records": [],
    "sizes": []
  },
  "network": {
    "measured": false,
    "suite_profile": "short",
    "profiles": [],
    "records": [],
    "bloom": []
  }
}
