Skip to content

GraphQL Performance

In this section, GraphQL for selecting Observation resources with a certain code is used.

Download of Resources

All measurements are done after Blaze is in a steady state with all resources to download in it's resource cache in order to cancel out resource load times from disk or file system cache.

Download is done using the following curl command:

sh
curl -s -H "Content-Type: application/graphql" -d "{ ObservationList { subject { reference } } }" "http://localhost:8080/\$graphql" > /dev/null"
CPUHeap MemBlock Cache# Res. ¹# Obs. ²Code# HitsTime (s)T / 1M ³
EPYC 7543P8 GB1 GB29 M28 M17861-6171 k1.0456.11
EPYC 7543P8 GB1 GB29 M28 M39156-5967 k5.7405.94
EPYC 7543P8 GB1 GB29 M28 M29463-71.3 M8.0576.20
EPYC 7543P30 GB10 GB292 M278 M17861-61.7 M10.7446.32
EPYC 7543P30 GB10 GB292 M278 M39156-59.7 M70.1227.23
EPYC 7543P30 GB10 GB292 M278 M29463-713 M96.7357.44

¹ Number of Resources, ² Number of Observations, ³ Time in seconds per 1 million resources, The amount of system memory was 128 GB in all cases.

According to the measurements, the time needed by Blaze to deliver Observations containing only the subject reference is about twice as fast as returning the same information via Subsetted FHIR Search and 4 times as fast as downloading the whole Observation Resources using FHIR Search.

Used Dataset

The dataset was the same as in FHIR Search performance tests.