Database Partition Mode
Smile CDR has supported partitioning an RDBMS since the 2020.05.R01, although this support has had some limitations. The partitioning feature uses two database columns present on every resource table in the database, PARTITION_ID
and PARTITION_DATE
, to indicate which partition a given resource is in.
This column however is not a part of the primary key of the affected tables, and is not always used in SQL as an expression, meaning that this feature is often inadequate to fully take advantage of native RDBMS partitioning/sharding techniques. See the Database Partition Mode for more background.
RDBMS Platform | Variant | Suitable |
---|---|---|
Oracle SQL Server (MSSQL) MySQL MariaDB |
Not tested | |
Postgresql | Standard Deployment (includes managed-service/PaaS offerings such as AWS Aurora Postgres Azure Database for Postgres). | Supported |
Postgresql | Citus Database Extension (includes Azure Cosmos DB for PostgreSQL) | Supported (See Citus section below) |
< name="limitless" />
Smile CDR can be deployed to an AWS Limitless Database, which is a managed service that provides a horizontally scalable, distributed database solution. This deployment requires a specific database schema to be used. To install this schema, set Database Partition Mode Initial Schema to POSTGRES_AWS_LIMITLESS
.
Smile CDR can be deployed to a Citus cluster, including a managed Azure Cosmos DB for PostgreSQL on the Azure cloud when Database Partition Mode is enabled.
Using Smile CDR in this environment requires a database schema with several modifications. To install this schema, set Database Partition Mode Initial Schema to POSTGRES_CITUS
.
Due to limitations that Citus imposes on database actions, chained searches are slow, and chained sorts are not supported at all in a Citus-backed deployment.
For example, this query will be slow:
And this query will not work at all:
If you require support for this type of search on a Citus cluster, you can use Uplifted Refchains to define a SearchParameter which indexes the entire chain. This technique works for both of the examples above.
You are about to leave the Smile Digital Health documentation and navigate to the Open Source HAPI-FHIR Documentation.