Skip to main content
Version: Next (Incubating)

System Properties

Before adjusting system properties in BifroMQ, it's necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead to unexpected behavior. Additionally, these system properties are closely linked with BifroMQ's internal implementation and may not be compatible across different versions. System properties can be set via JVM startup parameters, allowing for flexible customization of BifroMQ's behavior. For example, setting -Dmqtt_utf8_sanity_check=false disables the check for MQTT protocol-defined UTF8 string formats.

Below is a table listing the system properties supported by the current version:

Property KeyDefault ValueDescription
client_redirect_check_interval_seconds600The client redirection check interval in seconds
cluster_domain_resolve_timeout_seconds120This parameter specifies the timeout duration for DNS resolution when constructing a cluster using the "clusterConfig.clusterDomainName". The process involves resolving the cluster domain to discover seed nodes that can join the cluster. A successful resolution is marked by obtaining a non-empty set of IP addresses. This parameter controls the maximum amount of time allowed for this DNS resolution to complete successfully.This parameter specifies the timeout duration for DNS resolution when constructing a cluster using the "clusterConfig.clusterDomain". The process involves resolving the cluster domain to discover seed nodes that can join the cluster. A successful resolution is marked by obtaining a non-empty set of IP addresses. The cluster_domain_resolve_timeout_seconds parameter controls the maximum amount of time allowed for this DNS resolution to complete successfully.
control_plane_burst_latency_ms5000LThe max latency in milliseconds tolerated for the control plane burst.
data_plane_burst_latency_ms5000LThe max latency in milliseconds tolerated for the data plane burst.
dist_server_dist_worker_call_queuesCPU coresNumber of dist worker call queues.
dist_worker_inline_fanout_threshold1000The threshold of the fanout to be executed in calling thread
dist_worker_fanout_parallelismMax(2, CPU cores)Parallelism level for fanout operations.
dist_worker_fanout_split_threshold100000Threshold for splitting fanout operations when fanout split hinter enabled.
dist_worker_load_estimation_window_seconds5LTime window in seconds for load estimation when fanout split hinter enabled.
dist_worker_match_parallelismMax(2, CPU cores / 2)Parallelism level for match operations.
dist_worker_max_cached_subs_per_tenant200_000LMaximum cached subscriptions per tenant.
dist_worker_topic_match_expiry_seconds5Expiry time in seconds for topic matches.
inbox_check_queues_per_range1Number of check queues per range.
inbox_deliverers100Number of inbox deliverers.
inbox_fetch_queues_per_rangeMax(1, CPU cores / 4)Number of fetch queues per range.
inbox_store_load_estimation_window_seconds5LTime window in seconds for load estimation in inbox store.
ingress_slowdown_direct_memory_usage0.95Threshold for slowing down the acceptance of ingress traffic based on direct memory usage. When the direct memory usage exceeds this threshold, the system will begin to slow down incoming traffic to manage resource consumption effectively.
ingress_slowdown_heap_memory_usage0.9Threshold for slowing down the acceptance of ingress traffic based on heap memory usage. When the heap memory usage exceeds this threshold, the system will initiate measures to slow down incoming traffic to prevent memory overload.
mqtt_utf8_sanity_checkfalseEnables/disables UTF8 sanity checks according to MQTT-1.5.3.
max_mqtt3_client_id_length65535Maximum client ID length for MQTT 3 clients.
max_mqtt5_client_id_length65535Maximum client ID length for MQTT 5 clients.
max_slowdown_timeout_seconds5Maximum duration (in seconds) that the slowdown mechanism is allowed to operate before further backpressure protection measures are taken. This ensures that if the slowdown is not sufficient to manage resource usage, additional steps will be implemented to protect the system.
mqtt_deliverers_per_serverCPU coresNumber of MQTT deliverers per server.
persistent_session_detach_timeout_second7200The timeout seconds to consider persistent session is probably detached from mqtt client.
retain_store_load_estimation_window_seconds5LTime window in seconds for load estimation in retain store.
session_register_num1000Number of concurrent session registers.