Smile CDR v2022.11.PRE
On this page:
   38.41    FHIR MDM Server 38.43    FHIR Performance Tracing   

38.42FHIR Performance

 

The FHIR Performance configuration category includes the following configurable options:

  • Concurrent Bundle Validation Thread Count

  • Concurrent Bundle Validation

  • Default Total Calculation Mode

  • Delete Enabled

  • Expire Search Results After Minutes

  • Expunge Batch Size

  • Expunge Thread Count

  • Inline Resource Storage Below Size (chars)

  • Internal Synchronous Search Size

  • Mass Ingestion Mode

  • Match URL Cache Enabled

  • Maximum Transaction Bundle Size

  • Reindex Batch Size

  • Reindex Thread Count

  • Reuse Cached Results Timeout (Millis)

  • Index Missing Search Params

  • Suppress Scheduled Maintenance Jobs

  • Write-Semaphore Mode: Enabled

  • Write-Semaphore Mode: Log Waits

38.42.1Property: Concurrent Bundle Validation Thread Count

 
Property Name Concurrent Bundle Validation Thread Count
Property Key
Property Type POSITIVE_INTEGER
Description This value is only used when Concurrent Bundle Validation property is enabled. It specifies the number of threads allocated to validating bundle resources.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 4
Example Property
module.[MODULE_ID].config.dao_config.bundle_validation_thread_count = 4

38.42.2Property: Concurrent Bundle Validation

 
Property Name Concurrent Bundle Validation
Property Key
Property Type BOOLEAN
Description If this is enabled, bundle resources will be validated in parallel threads. The number of threads is determined by the value of Concurrent Bundle Validation Thread Count property. Note that enabling this feature means bundle structure itself is not validated, only the resources within it are validated.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.dao_config.concurrent_bundle_validation = false

38.42.3Property: Default Total Calculation Mode

 
Property Name Default Total Calculation Mode
Property Key
Property Type ENUM
Values
  • NONE
  • ESTIMATED
  • ACCURATE
Description This setting may be used to force the calculation of the total number of results when large searches are performed. This setting can have an impact on performance, since calculating the total can mean an extra (potentially expensive) database query.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value (no default)
Example Property
module.[MODULE_ID].config.dao_config.default_total_mode = 

38.42.4Property: Delete Enabled

 
Property Name Delete Enabled
Property Key
Property Type BOOLEAN
Description If set to false, deletes will not be supported on this server. This should be disabled if the server does not need to support any resource deletion, as it improves performance by reducing the number of deletion checks performed during write operations.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value true
Example Property
module.[MODULE_ID].config.dao_config.delete_enabled = true

38.42.5Property: Expire Search Results After Minutes

 
Property Name Expire Search Results After Minutes
Property Key
Property Type POSITIVE_INTEGER
Description The number of minutes that search results for a given client search should be preserved before being purged from the database. See Caching Results for more information.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 60
Example Property
module.[MODULE_ID].config.dao_config.expire_search_results_after_minutes = 60

38.42.6Property: Expunge Batch Size

 
Property Name Expunge Batch Size
Property Key
Property Type NON_NEGATIVE_INTEGER
Description The expunge batch size determines the number of records deleted within a single transaction by the expunge operation.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 800
Example Property
module.[MODULE_ID].config.dao_config.expunge_batch_size = 800

38.42.7Property: Expunge Thread Count

 
Property Name Expunge Thread Count
Property Key
Property Type NON_NEGATIVE_INTEGER
Description This setting controls the number of threads allocated to the expunge operation
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 2
Example Property
module.[MODULE_ID].config.dao_config.expunge_thread_count = 2

38.42.8Property: Inline Resource Storage Below Size (chars)

 
Property Name Inline Resource Storage Below Size (chars)
Property Key
Property Type NON_NEGATIVE_INTEGER
Description If set to a positive number, resource body contents with a length below the given number of characters will be stored inline in the HFJ_RES_VER table. See Resource Body Storage for more information.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 0
Example Property
module.[MODULE_ID].config.dao_config.inline_resource_storage_below_size = 0

38.42.9Property: Internal Synchronous Search Size

 
Property Name Internal Synchronous Search Size
Property Key
Property Type POSITIVE_INTEGER
Description The internal synchronous search size determines the maximum size that the DAO will use for internal searches. Increasing this may impact performance. This setting is used during operations such as delete with expunge, and certain CodeSystem searches.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 10000
Example Property
module.[MODULE_ID].config.dao_config.internal_synchronous_search_size = 10000

38.42.10Property: Mass Ingestion Mode

 
Property Name Mass Ingestion Mode
Property Key
Property Type BOOLEAN
Description If this is enabled, the server will be placed in Mass Ingestion Mode. In this mode, the server is tuned specifically for loading of data. This means that caches are increased and certain runtime checks are disabled (only checks that are not useful for purely write-oriented workloads are disabled).
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.dao_config.mass_ingestion_mode = false

38.42.11Property: Match URL Cache Enabled

 
Property Name Match URL Cache Enabled
Property Key
Property Type BOOLEAN
Description When this setting is enabled, an in-memory cache stores the resolution results for conditional URLs in REST conditional operations (e.g. conditional create, conditional update, inline match URLs, etc.). In scenarios where conditional operations are heavily used and the targets will not change (e.g. during back-loading of data) this setting can improve performance by reducing reads during write operations. Note that the cache does not invalidate automatically, so this setting should not be used if conditional URL targets are expected to change.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.dao_config.match_url_cache.enabled = false

38.42.12Property: Maximum Transaction Bundle Size

 
Property Name Maximum Transaction Bundle Size
Property Key
Property Type POSITIVE_INTEGER
Description Specifies the maximum number of resources permitted within a single transaction bundle. If a transaction bundle is submitted with more than this number of resources, it will be rejected with a PayloadTooLarge exception. If blank, there is no limit.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value (no default)
Example Property
module.[MODULE_ID].config.dao_config.maximum_transaction_bundle_size = 

38.42.13Property: Reindex Batch Size

 
Property Name Reindex Batch Size
Property Key
Property Type NON_NEGATIVE_INTEGER
Description This setting controls the number of resources reindexed in a single transaction.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 800
Example Property
module.[MODULE_ID].config.dao_config.reindex_batch_size = 800

38.42.14Property: Reindex Thread Count

 
Property Name Reindex Thread Count
Property Key
Property Type NON_NEGATIVE_INTEGER
Description This setting controls the number of threads allocated to resource reindexing (which is only ever used if SearchParameters change, or a manual reindex is triggered due to a Smile CDR upgrade or some other reason).
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 2
Example Property
module.[MODULE_ID].config.dao_config.reindex_thread_count = 2

38.42.15Property: Reuse Cached Results Timeout (Millis)

 
Property Name Reuse Cached Results Timeout (Millis)
Property Key
Property Type NON_NEGATIVE_INTEGER
Description If set, any searches repeated during this period for the exact same criteria will reuse the same search results instead of performing a new search. Set this value to 0 to disable the query cache entirely or set to a positive number of milliseconds to specify a specific timeout. See The Query Cache for more information.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value 60000
Example Property
module.[MODULE_ID].config.dao_config.reuse_cached_results_timeout_millis = 60000

38.42.16Property: Index Missing Search Params

 
Property Name Index Missing Search Params
Property Key
Property Type ENUM
Values
  • ENABLED
  • DISABLED
Description If disabled, the FHIR endpoint will not support :missing modifiers on searches. Disabling this feature causes fewer index rows to be generated in the database when persisting resources. Note that enabling this feature can negatively impact write performance, particularly on systems with a large number of search parameters enabled.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value DISABLED
Example Property
module.[MODULE_ID].config.indexing.index_missing_search_params = DISABLED

38.42.17Property: Suppress Scheduled Maintenance Jobs

 
Property Name Suppress Scheduled Maintenance Jobs
Property Key
Property Type BOOLEAN
Description If this is enabled, no scheduled tasks will be invoked by this module. This setting is only useful in cases where multiple master FHIR Storage modules are pointed at the same database, in order to ensure that only one of them performs scheduled jobs.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.suppress_scheduled_maintenance_jobs = false

38.42.18Property: Write-Semaphore Mode: Enabled

 
Property Name Write-Semaphore Mode: Enabled
Property Key
Property Type BOOLEAN
Description When enabled, the system will attempt to prevent multiple FHIR transactions from writing to the same resource at the same time by using a local semaphore. This can improve performance when loading data in a highly concurrent environment if it is not possible to avoid concurrent writes to the same resources. When enabling this setting, it is a good idea to compare performance before and after enabling.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.write_semaphore_mode.enabled = false

38.42.19Property: Write-Semaphore Mode: Log Waits

 
Property Name Write-Semaphore Mode: Log Waits
Property Key
Property Type BOOLEAN
Description When operating in Write-Semaphore mode, write a log message any time a writing thread blocks waiting for a semaphore. This can be useful when trying to diagnose where contention exists in loading processes.
Applies to Modules
  • FHIR Storage (DSTU2 Relational)
  • FHIR Storage (R3 Relational)
  • FHIR Storage (R4 Relational)
Default Value false
Example Property
module.[MODULE_ID].config.write_semaphore_mode.log_waits = false
   38.41    FHIR MDM Server 38.43    FHIR Performance Tracing