Measured, not promised

The speed is in the design, not in the hardware.

The usual ways to make a load faster are a bigger machine or fewer checks. Nodwise needs neither: every node checked against a closed grammar, on the base configuration our service runs on.

23.6 min

to load 2,113,664 nodes from empty

28 min

to read it all again, search up to date

3%

of a first load spent checking

Don’t take our word for it

How long does your warehouse’s lineage take to load in the tool you use today?

We are not going to tell you we are faster. Time it. Load the lineage you already have into your current tool, with the checks switched on, and put the number next to ours. Your data, your format, your tool — we publish the shape of our test so you can compare like with like.

Your run

While loading, did your tool…

Your tool

—

minutes per million nodes

Nodwise

11.2

minutes per million nodes, at 2.1 million

4 of 4 checks

Type your numbers. Compare at a similar size — the cost per node grows as any store grows — and with the same checks on both sides.

Our figure: 2,113,664 nodes, 6.3 million property values and 4.2 million relations, first load from empty, one run in October 2026 on the base configuration our service runs on. Nothing you type here leaves your browser.

The shape of the test

A time means nothing without the shape it was measured on.

The test is a data catalog: schemas that contain tables, tables that contain columns, and lineage from each column to a column in the next schema. A richer shape — more properties per node, relations that carry properties, responsibilities — costs more. Compare against this shape, not against the headline.

Node type

Nodes

Property values

Relations

Schema

128

128

16 384

Table

16 384

16 384

2 097 152

Column

Description, data type, primary key

2 097 152

6 291 456

2 080 768

Total

2 113 664

6 307 968

4 194 304

Checked

Every node against its declared type and every property, and every relation against the kinds of thing the metamodel allows at each end.

Transactional

Each batch of nodes is written in one transaction.

Recorded

Every node created or changed gets a history entry.

Both ends

Every relation is stored on the nodes at both of its ends: 8.4 million entries in all.

The re-read sends the same test again: about 98% exactly as stored, about 1% renamed, about 1% new.

The run, step by step

Where the time goes — and where it does not.

The steps run in this order for every file and do not overlap, so they add up to the total. A first load is spent writing. A re-read is spent reading what is stored, only to find it unchanged. Checking against the grammar is never the expensive part.

#

Step

First load, seconds

Re-read, seconds

1

Read the files

136
64

2

Convert to the creation model

11
11

3

Tell new from existing, read what is stored

266
725

4

Build the records, work out what changed

105
196

5

Check against the metamodel

47
2

6

Complete the creations

19
—

7

Write the created nodes

269
3

8

Write the changed nodes

—
9

9

Write the relations

491
—

10

Write the history

72
7

+

Bring search up to date

—
675

Total, in seconds

1 416

1 692

One run, measured in October 2026, on the base configuration our service runs on — not a machine sized for the benchmark. The cost per node grows as the store grows: on a quarter of this test a first load took 7.5 minutes per million nodes; here, 11.2. We publish both.

Your turn

Time your own load. Then see what an agent does with ours.

A fully modelled organisation, one click with your work account. No form, no call.