On this page:
   35.39    Versioned References 35.41    FHIR Performance Tracing   

35.40FHIR Performance

 

The FHIR Performance configuration category includes the following configurable options:

  • Default Total Calculation Mode

  • Delete Enabled

  • Expire Search Results After Minutes

  • Expunge Batch Size

  • Expunge Thread Count

  • 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

35.40.1Property: 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 = 

35.40.2Property: 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

35.40.3Property: 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

35.40.4Property: 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

35.40.5Property: 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

35.40.6Property: 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

35.40.7Property: 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

35.40.8Property: 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

35.40.9Property: 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 = 

35.40.10Property: 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

35.40.11Property: 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

35.40.12Property: 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

35.40.13Property: 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 this can negatively impact write performance, perticularly 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

35.40.14Property: 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

35.40.15Property: 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

35.40.16Property: 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
   35.39    Versioned References 35.41    FHIR Performance Tracing