Systemic Object Marking

In Deephaven, a systemic object is an object of critical importance—such as a table essential for reliable data analysis. If a systemic object fails, Deephaven terminates the entire worker process to maintain data integrity. By default, any object created on a thread is marked as systemic, providing maximum protection for your data flow. This guide explains how to manage this behavior using the deephaven.systemic_obj_tracker module.

Enable Systemic Object Marking

Systemic object marking is not user-configurable at runtime by default. To enable this feature, start the server with the JVM option:

To check if systemic object marking is enabled:

Manage Thread Systemic Status

Systemic object creation is controlled per thread. When systemic object marking is enabled, you can programmatically set a thread as systemic or non-systemic at runtime. While a thread is systemic, any object it creates is also systemic; when non-systemic, objects are not marked as systemic.

To check and toggle the systemic status of the current thread:

Context Managers

The deephaven.systemic_obj_tracker module provides context managers to enable or disable systemic object creation within code blocks.

Systemic scripts from the Python Client

When executing a script on the server from the Python client, you can control whether objects created by that script are marked as systemic by using the systemic argument—provided systemic object marking is enabled on the server. If systemic object marking is disabled on the server, the systemic argument has no effect, and all objects created by the script will be systemic by default.