Oracle® GoldenGate Veridata Administrator's Guide 11g Release 2 (11.2.1.0.0) Part Number E29092-01 |
|
|
PDF · Mobi · ePub |
This chapter describes parameters that adjust different aspects of the sort memory configuration when using server-side sorting.
This chapter includes the following sections:
Oracle GoldenGate Veridata Server uses virtual memory in the following ways:
Server memory for basic operation. This is the amount of virtual memory that the Veridata server and web components need simply to operate. It stores object pools, database access libraries, and other information. This is usually about 200 MB.
Sort memory. This is the memory that is used when server-side sorting is used. The virtual memory for sorting is allocated for the entire comparison, not per thread. The rows are read from the agent and submitted to be sorted. The sorting occurs in a thread that is separate from the thread that reads from the agent, and the sort may use more threads to work in parallel. Once all of the rows from the agent are submitted to the sort process, the server process retrieves the sorted rows from the sort for comparison.
Row hash queue memory. This is the memory that buffers data between the agent processes, the sort process, and the server process. A comparison that uses database sorting requires a single queue each for the source and target. Each queue has a capacity of 20 MG. The memory usage by the queues is affected by the relative speed of the comparison and by the data coming from the agent. The relative speed between the two agents also affects the memory usage. A larger differential in speed increases the amount of memory that is used, because the queue needs to buffer the data.
MOOS queue memory. This is the memory that holds potentially out-of-sync records between the initial comparison and confirmation steps of a comparison. The size of the MOOS queue is limited to 50K of records. Memory usage is also dependent on the width of each record.
IPC buffer memory. This is the memory that is used to exchange messages between the server and the agent.
Scratch runtime transient memory. This is virtual memory space.
The amount of memory that can be used by the sort process cannot be greater than the minimum of:
System physical memory
Available memory in swap
Java boot option -Xmx
maximum memory setting
The maximum amount of memory available to Oracle GoldenGate Veridata is specified by the Java boot option -Xmx
. When server-side sorting is used, a large portion of this memory is reserved for sorting during comparisons. This reserved amount is controlled by the server.max_sort_memory
configuration parameter.
When a comparison is run, two buffers are allocated from the reserved sort memory. Each of these is equal to the size specified as Maximum Memory Usage (MB). To access this setting click the Edit option from the Profile Configuration screen, then Sorting Method from the Profile settings categories.
To Estimate Memory based on the Number of Concurrent Comparisons
The maximum amount of memory that can be used for any comparison is set by the parameter server.max_comparison_sort_memory
. The -Xmx
Java boot option should be set large enough to allow the desired number of concurrent comparisons.
The maximum number of concurrent comparisons is defined by the server.max.concurrent_comparison_threads
configuration parameter. Therefore the maximum amount of sort memory can be as large as:
server.max_comparison_sort_memory
* server_max_comparison_threads
For example, if you set server.max_concurrent_comparison_threads
to allow 10 concurrent comparisons and leave server.max_comparison_sort_memory
set to the default value of 100 MB, you will need 1 GB of available memory.
To Estimate the Amount of Memory Used per Row
Refer to Section 2.4.2, "Disk and Memory Requirements for the Server Component" for the calculation to estimate the amount of memory used per row.
To set a parameter, edit its entry in the veridata.cfg
file. This file is stored in the shared/conf
directory within the Oracle GoldenGate Veridata Server installation directory.
Note:
You should back up the conf
directory prior to changing the server configuration or Tomcat users.
Open an Oracle service request before changing these parameters. For more information, go to http://support.oracle.com.
This section describes the parameters that can be set in the veridata.cfg
file.
Sets the maximum amount of sort virtual memory that is available to all running comparisons that use server-side sorting. The default amount is the Java boot option -Xmx
maximum memory setting less the 200 MB needed for basic tasks. You can limit this amount to make more memory available for the Oracle GoldenGate Web User Interface.
If a comparison cannot get enough virtual memory when it starts, it fails or tries again depending on the setting of the server.sort_waiting_threshold
parameter. If a comparison does get enough virtual memory, the currently available sort virtual memory gets decremented by the amount that the comparison reserves. When a comparison completes, it increments the amount of available sort virtual memory by the amount of sort virtual memory that it had reserved.
server.max_sort_memory {default | number{M | m}}
default
allows Oracle GoldenGate Veridata to define a maximum value that is dependent on the operating system.
number
{M | m}
specifies a value in megabytes. For example, 1000M means a limit of 1000 megabytes. If this number exceeds the amount of available memory, the value will be reduced to the amount of available memory.
Sets the maximum number of concurrent comparisons that can be executed. In general, the amount configured by the server is the optimal value, given the machines resources. You can lower this number to reduce the impact of the server on your system. When this limit is reached, no new comparisons will start until an active comparison completes.
server.max_concurrent_comparison_threads {default | number}
default
allows Oracle GoldenGate Veridata to compute the maximum number of concurrent threads based on the server.max_comparison_sort_memory
and available resources. The default value is the server.max_sort_memory
divided by server.max_comparison_sort_memory
.
number
is a positive integer that sets the maximum number of concurrent comparison threads.
Sets the maximum amount of virtual memory that can be reserved by a single comparison that is using server sorting. A comparison that tries to reserve more than this amount will fail, even if it is configured to retry.
The amount set for this property limits the amount that can be set in the Oracle GoldenGate Web User Interface Profile.
If the value of this parameter is changed, it might cause the concurrent comparisons that use server-side sorting to fail or retry, depending on the sorting parameters defined in the profile that is being used.
server.max_comparison_sort_memory {default | number{ M | m }}
default
is 100 MB.
number
{M | m}
specifies a value in megabytes. For example, 600M sets the limit for any comparison to be 600 megabytes.
Sets a threshold above which new jobs will fail if there are too many comparisons waiting to retry a virtual memory reservation.
server.sort_waiting_threshold {default | number}
default
is zero; if memory cannot be allocated the job will not be allowed to run.
number
sets the number of comparisons that can be waiting before new jobs will fail. For example, a value of 100 means that if there are 100 comparisons waiting to retry a memory reservation, and there is a job that is ready to begin execution, this job will not be allowed to run.