> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Memory Management

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:

| Process | Default Allocation |
| :- | :- |
| Sync JVM | 25% of total system RAM |
| Replicate Agent JVM | Remainder of the 60% combined budget (approximately 35% of total RAM on a default installation) |
| Each LakeBridge Spark JVM | 4 GB (outside the 60% budget) |

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**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.