Copenhagen Atomics trusts QuestDB for real-time monitoring
Copenhagen Atomics, manufacturer of next generation molten salt reactors, uses QuestDB to monitor their thorium reactors in real time.
Introduction
Founded by a group of scientists and engineers in 2014, Copenhagen Atomics aims to address one of the most burning issues for our planet: the bottleneck in the supply of energy resources. The team develops Generation IV reactors, which are molten salt reactors. These reactors use thorium to burn spent nuclear fuel, which reduces the radioactivity of the nuclear waste while producing high energy output. The design of these reactors fits in a container. This results in lower costs of construction and increased safety, as both issues are associated with traditional large scale nuclear power plants.

Modelling on how offshore windmill energy achieved economies of scale through mass production, Copenhagen Atomics aims to scale up the production of molten salt reactors to provide Energy as a Service. Depending on the energy needs of each client, the company will lease the reactors and sell the generated energy while managing the equipment after decommission.
QuestDB was our choice for real time data due to high performance, open source, high flexibility and great support. Performance was significantly better than the competition and we believe that QuestDB will become market leading.
Architecture overview

Reactors function in a sealed environment, and monitoring this environment is a crucial step for anomaly detection. QuestDB is the time series database behind the growing number of sensors, which continuously send back information such as temperature, liquid flow and pressure. The data is then filtered and presented to the plot systems, accessible via the web browser for monitoring purposes.
Copenhagen Atomics deploys its architecture on Azure and hosts API servers as well as QuestDB's engine on Kubernetes. Each reactor sends thousands of data points to the API servers every 10 milliseconds. The number of reactor sensor values is likely to grow by a factor of 10 in the near future.
From the API servers, the team runs two parallel processes: ingesting sensor
data to QuestDB using the .NET ILP client and sending queried (downsampled)
data to their plot systems for monitoring. They customize their own plot systems
for fetching and displaying data.

Copenhagen Atomics also sells loops for
testing equipment. The plot
shown above is a selection of some of the temperature sensors delivered in real
time with the loop. Selecting what to see in a plot is done by the end user
(properties such as colors and scaling can be configured). All data is fetched
from QuestDB and downsampled with the query SAMPLE BY, using interpolation to
fill any gaps in the data.
This way, operators can adjust the granularity of the data by zooming in and out and visualize the updated chart in milliseconds. The team is really impressed with the response time they see when querying data.
SELECTtimestamp,AVG(aircon) AS aircon,AVG(ac01_temperature) AS ac01_temperature,AVG(dc01_temperature) AS dc01_temperatureFROM'loop'WHEREtimestamp BETWEEN'2022-08-26T07:16:15.104000Z'AND '2022-08-26T08:01:15.104000Z'SAMPLE BY 1s FILL(LINEAR);
Why QuestDB?
Copenhagen Atomics wanted to choose an open source time series database that they could trust and see evolve in the open. They also wanted to contribute to the project and open source allows this. QuestDB caught the team's eye due to its performance both on ingestion and time series as well as analytical queries. QuestDB's traction in the market also made them confident about this choice. The team has enjoyed the effective communication on Slack with the QuestDB team as well as QuestDB's growing community.
What's Next?
Copenhagen Atomics has been collaborating with the QuestDB team by providing product feedback, and integrating new features. Here are the next steps for their project:
-
Cold storage: As the amount of data increases, it is crucial to migrate older data to cold storage to resolve the limitation of disk space and to reduce hardware costs. QuestDB Enterprise tiered storage seamlessly moves older partitions in
Parquetformat to object storage. QuestDB queries can still access data stored in this cold layer and combine it with recent data in a single SQL query. Data science teams can also access theParquetfiles directly with their own tools when they need raw data, without going through the QuestDB engine. -
User access control: Copenhagen Atomics needs to define different user groups with different rights when running queries from the Web Console. QuestDB Enterprise provides flexible authentication and authorization, allowing the creation of user groups and service accounts, with permissions that can be scoped down to individual columns.