Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Performance Sharding (Simple) #13

Open
juliangruendner opened this issue May 28, 2024 · 0 comments
Open

Performance Sharding (Simple) #13

juliangruendner opened this issue May 28, 2024 · 0 comments
Assignees

Comments

@juliangruendner
Copy link
Contributor

Sharding concept information

Sharding provides the potential for large performance improvements as the overhead for creating the federated query accross each shard and the

merging of the results is significantly less costly than the query execution on a server.

Given the potential size of the data we would start with shard sizes of 250.000 patients per shard each shard with 8 cores and 64GB of RAM (see also: Tuning Guide).

=> for 2 million patients this would result in 8 shards with a total cost of 64 cores and 512GB of RAM.

Sharding facades - a first prototype

A first solution for sharding will be to develop a FHIR server independent sharding by patient ID support across our tooling.

This will in a first step require the following prototypes to be build:

Loading transaction federation for loading of multiple FHIR Servers
Sharding by Patient ID
Note that resources that are not patient specific (do not reference a patient directly - e.g. Medication should simply be copied to each shard)

federated CQL query facade (first version only feasibility)
Library and Measure Resources are created on each shard (transaction endpoint will already do this)
$evaluate-measure operation will call $evaluate-measure on every shard, collect and merge all MeasureReports and return the merged MeasureReport

federated FLARE query
one FLARE per shard
a federation component that executes the query on each FLARE and sums the results

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant