vaticle / typedb-benchmark

TypeDB Simulation and Benchmarking Library
GNU Affero General Public License v3.0
9 stars 15 forks source link

Convert to generic simulation library #141

Closed alexjpwalker closed 1 year ago

alexjpwalker commented 1 year ago

What is the goal of this PR?

We converted the repo from a specific Genealogy simulation to a generic simulation library, that can be imported to run a simulation against any schema and dataset.

What are the changes implemented in this PR?

We took out all the genealogy-specific code, leaving behind a generic Runner, Simulation and Agent.

TypeDBClient and Neo4jClient packages also remain, to aid implementations in conforming to a generic initialisation model (connect server -> create DB -> define schema -> insert data).

The overall simulation Config remains as well, but implementations can optionally define their own ModelParams to further configure model-specific simulation parameters.

The genealogy-specific Region was renamed to Partition, which accurately represents its purpose: to partition the data (and enable reproducible parallelised runs.) A constraint of the resulting system is that each implementation is expected to provide some partitioning entity type.