You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For an update, the REST layer first reads the current existing resource to obtain the latest version number. This is expensive because the full resource is retrieved and parsed.
Only the metadata is required, which can now be achieved by a simple select from xx_logical_resources.
This will improve performance in two ways:
Less CPU required on the FHIR server to decompress and parse the resource payload
Only need to access the xx_logical_resources row which is much "thinner" and more likely to be cached than reading the data blob from xx_resources.
To implement this properly, we may want to consider storing the resource fingerprint (hash) in the xx_logical_resources table too. This is required so that we can compare the inbound resource with an existing resource, and skip the update if requested.
A similar fingerprint value could be stored to detect parameter changes, which could significantly improve reindex performance.
The text was updated successfully, but these errors were encountered:
While discussing with Robin we realized that including the full contents of the previous resource is currently part of our contract for both audit logging and for the persistence event (used by persistence interceptors and therefor our notification mechanism as well). It would be hard to remove that and not break folks.
For an update, the REST layer first reads the current existing resource to obtain the latest version number. This is expensive because the full resource is retrieved and parsed.
Only the metadata is required, which can now be achieved by a simple select from xx_logical_resources.
This will improve performance in two ways:
To implement this properly, we may want to consider storing the resource fingerprint (hash) in the xx_logical_resources table too. This is required so that we can compare the inbound resource with an existing resource, and skip the update if requested.
A similar fingerprint value could be stored to detect parameter changes, which could significantly improve reindex performance.
The text was updated successfully, but these errors were encountered: