Open topic with navigation

TIBCO BusinessEvents® Enterprise Edition 6.3.1

# Database Write Tuning Options

Various properties affect how database operations in each RTC transaction are processed and committed to the backing store.

These properties affect the way RTC actions are processed and written to the database when the following property is used:

`Agent.`agentClassName`.enableParallelOps=true`

Figure 24: Cache Aside Tuning Options

Note: Tuning the parameters in this section can improve performance. However larger values do not imply improved performance. For example, in heavy workload situations, increasing `dbOpsBatchSize` and `dbOpsQueueSize` values results in longer post-RTC times, which in turn delays release of cache locks — which are not released until after the post-RTC

## Database Write Queue and Thread Pool (Agent Level)

Actions for one or more RTCs are done in one or more batches, depending on tuning options.

In each batch, TIBCO BusinessEvents does the following actions (as needed):

    deleteConcepts
    deleteEvents
    insertConcepts
    insertEvents
    modifyConcepts
    removeObjectTable
    saveObjectTable

You can tune each agent’s database write behavior using the following options:

    Agent.AgentClassName.dbOpsQueueSize
    Agent.AgentClassName.dbOpsBatchSize
    Agent.AgentClassName.dbthreadcount

The post-RTC database (backing store) transactions are queued into a database-operations queue whose maximum size (set per agent) is defined by `dbOpsQueueSize`. Each slot in the queue contains all the actions from one RTC.

Database write threads process the RTC transactions from the queue. The number of threads is defined by `dbthreadcount`.

A database write thread takes up to the `dbOpsBatchSize` number of RTC transactions, processes them and commits them to the database. (When database write threads are idle, they take available jobs from the database operations queue, even if there are less jobs than `dbOpsBatchSize`.)

You can monitor JMX parameter `AvgDBOpsBatchSize` to see the effective value used in your use case.

## Database Batching Option (Cluster Level)

All RTC transactions in one batch can be handled as one job (in agents that have the property set to a number larger than one) depending on the cluster-level property setup.

To achieve that, the following cluster-level property has to be set to true:

    be.engine.cluster.useDBBatching

and the following agent level property has to be set to greater than one:

    Agent.AgentClassName.dbOpsBatchSize

In this case, all the RTC transactions in one batch are handled as one job (in agents that have the property set to a number larger than one).

It is important to balance the cost of processing fewer, larger jobs against the gains. The efficiencies gained by setting the `useDBBatching` property to true are greater if many operations of the same kind apply to the same table. The database writing process has to do an operation for each of update, insert and delete on each database table. So you don't get any gain if only one RTC in the batch is updating, inserting, or deleting in a particular table.

For reference documentation see TIBCO BusinessEvents Developer Guide.

Did you find this helpful?

YesNo
Great!
Thanks for taking the time to give us some feedback.
Sorry about that

Why wasn't this helpful? (check all that apply)

Could not find what I was looking for
Instructions confusing or unclear
Instructions did not work

Want to tell us more?

Please select at least one option or provide details about the issue!!

Error occurred while submitting feedback.

Error2 occurred while submitting feedback.

TIBCO BusinessEvents® Enterprise Edition

Copyright © 2004-2024. Cloud Software Group, Inc. All Rights Reserved.