This relates to #47 and #66.
I believe there is a opportunity to improve response and ingest times by implementing table partitioning. PostgreSQL documentation describe it as "...splitting what is logically one large table into smaller physical pieces". As scenarios are independent from each other, partitioning of scenarios table could be done via scenarioId property.
To validate this approach, we would need to add migrations and update the CLI to create/remove scenario partitions after they are ingested/deleted. The API server wouldn't be affected because database queries would remain the same.
@danielfdsilva remembered that there is a lot of post-processing on the API server to calculate summaries after the data is fetched from the DB, so there might not be gain from this side. But I believe that the ingest process could benefit from it and the index size could be significantly smaller.
I'm tagging this as enhancement for a future development cycle, as it is not something straightforward to do now.
cc @olafveerman @EricSoroos
This relates to #47 and #66.
I believe there is a opportunity to improve response and ingest times by implementing table partitioning. PostgreSQL documentation describe it as "...splitting what is logically one large table into smaller physical pieces". As scenarios are independent from each other, partitioning of
scenariostable could be done viascenarioIdproperty.To validate this approach, we would need to add migrations and update the CLI to create/remove scenario partitions after they are ingested/deleted. The API server wouldn't be affected because database queries would remain the same.
@danielfdsilva remembered that there is a lot of post-processing on the API server to calculate summaries after the data is fetched from the DB, so there might not be gain from this side. But I believe that the ingest process could benefit from it and the index size could be significantly smaller.
I'm tagging this as enhancement for a future development cycle, as it is not something straightforward to do now.
cc @olafveerman @EricSoroos