Skip to main content
Sync runs several Java processes that share the host machine’s RAM. Understanding how Sync allocates memory helps you size your server correctly and tune performance for high-volume workloads.

Sync Processes That Split Memory Allocation

When Sync is running, it starts the following Java processes on the host:
  • Sync: The main application JVM.
  • Replicate Agent: The replication engine that coordinates data movement.
  • LakeBridge daemon: The daemon that is required for Delta Parquet and Apache Iceberg file formats. The daemon spawns one Spark JVM per active LakeBridge job.
Sync manages the memory for the main application JVM and the Replicate Agent together as a combined budget. LakeBridge Spark JVMs are allocated separately, outside that budget.

Default Memory Allocation

By default, Sync allocates memory as follows: The combined budget for the Sync JVM and the Replicate Agent is 60% of total system RAM by default. The remaining 40% is reserved for the operating system, non-heap memory, and any LakeBridge Spark JVMs. Each LakeBridge job runs in its own Spark JVM. Because the RAM for these JVMs comes out of the remaining 40%, the number of concurrent LakeBridge jobs directly affects how much RAM your server requires beyond the base allocation. To change the heap size for a specific connector’s Spark JVM, set the LakeBridge JVM Max Heap field on the connector’s Advanced tab.

Memory Override Settings

You can override the default memory allocation by specifying the following options in System Settings > Advanced > Additional Settings > Other Settings. A Sync restart is required for changes to take effect.
  • MemoryBudgetPercentage: Sets the percentage of total system RAM that is allocated as the combined heap budget for the Sync JVM and the Replicate Agent. The default value is 60.
  • ReplicateAgentMaxHeap: Sets an explicit maximum heap size for the Replicate Agent, expressed as a JVM size value such as 2g or 4g. The minimum accepted value is 1g. When this option is not set, the agent receives the remainder of the MemoryBudgetPercentage budget after Sync takes its share.
  • MaxConcurrentLakeBridgeJobs: Limits the number of LakeBridge jobs that can run at the same time. Because each LakeBridge job allocates a separate Spark JVM outside the memory-percentage budget, capping this value prevents memory overcommitment when many jobs are scheduled concurrently. The default value is 3.