Product Documentation

c-treeACE V11.0 Update Guide

Previous Topic

Next Topic

Great Performance News for OLTP Applications

Performance remains a significant goal of every database system. FairCom continues a tradition of advanced performance solutions balanced with solid data integrity. Our two most powerful OLTP operating models now have additional performance boosting controls:

  • A new transaction log mode for Delayed Durability
  • New Background Flush controls for safety of non-transaction updates

Delayed Transaction Durability

With full transaction control for complete ACID compliance, transaction logs are synced to disk with each commit operation, ensuring absolute data integrity with complete recoverability. Full, durable ACID transaction control enables many powerful features not available without recoverable log data:

  • Automatic database recovery
  • Live database backups without rebuild on restore
  • Replication
  • Transaction auditing

The most critical of these is automatic recovery in case of system failure. Additionally, full transaction control remains a critical area of database performance tuning. Database updates must be secured in write-ahead logs for guaranteed recoverability. This comes with a performance impact due to the synchronous I/O requirements ensuring data is safely persisted.

 

Preimage (Atomicity Only)

PreImage Transaction Processing

Full Recoverability

Full Transaction Processing

Many applications could benefit from a “relaxed” mode of transaction log writes. With today’s hardware stabilities and power redundancies, it is conceivable to slightly relax full durability constraints and still maintain acceptable risk tolerance. The balance becomes how much loss of recoverability these systems can tolerate.

Allowing database administrators to balance their window of vulnerability against on-line performance, c-treeACE provides a new Delayed Durability feature for transaction logs. Regardless of your durability setting, you will always recover to a known state in time, with full referential integrity. The balancing decision becomes how current must you recover? If you are willing to accept guaranteed recovery, say up to one second ago, you can gain a significant amount of performance.

Deferred Durability (Deferred Logging)

This feature is enabled with the following configuration entry and takes as an argument the maximum number seconds, N, that will elapse between log syncs. This ensures that, after a commit, the transaction log will be synced in no more than N seconds, thereby allowing you to define your window of vulnerability.

DELAYED_DURABILITY <N>

The end result can approach non-transaction performance while ensuring committed transactions are persisted to storage within less than N seconds of vulnerability. In selected test cases, up to 300% faster transaction throughput has been observed when configured with 1 second of delayed durability.

 

Windows Performance


Legend:

V10 - c-treeACE Database Server, Full Transaction Processing, 100 users

V10.3/V1 - c-treeACE / FairCom RTG Database Server, Full Transaction Processing, 100 users

V11.0/V2 - c-treeACE / FairCom RTG Database Server, Full Transaction Processing, 100 users, DELAYED_DURABILITY1


Test Environment:
Dell PowerEdge R710 machine with 2 Xeon 3.6 GHZ Xeon Processors with a total of 32 logical cores, 32 GB RAM, 600G 15000 RPM Drive, Windows Server 2012.


Test Utility:
FairCom’s cttctx load test utility simulating a record add / read / delete sequence on 23 files with 4 indexes per file. 100 threads x 10,000 iterations = 1,000,000 transactions per file for a total of 69,000,000 transactions.

Background Flush of PreImage/Non-transaction Data Updates

c-treeACE offers multiple levels of transaction protection for your data. Some applications do not require the recoverability full transaction support provides for performance reasons. However, these applications become quite vulnerable to data loss should system failure occur. If FairCom Server terminates abnormally, say from a power failure, updates to data and index files that are not under full transaction control are lost if those updates have not yet been written from c-tree’s in-memory data and index caches to the file system. The following factors typically reduce the number of dirty pages that exist:

  1. When an updated cache page is being reused, the updated page is written to the file system cache.
  2. When all connections close a c-tree file, FairCom Server writes the updated pages to the file system cache before closing the file.
  3. An internal thread periodically checks if FairCom Server is idle, and if so it writes updated pages to the file system cache.

However, the combination of using very large data and index caches, keeping files open for extended periods of time, and constant OLTP activity increase your likelihood that more dirty cache pages exist.

This data vulnerability is now greatly reduced in such a way that allows YOU to define your window of vulnerability. Database administrators can balance performance needs with data safety guarantees to within seconds—or they can select immediate safety.

To set a limit on potential loss of updates for non-transaction data and index files, FairCom Server now supports background flush options to write dirty pages to the file system within a specified time period, limiting potential data loss for non-transaction data and index files.

Performance tests have shown that with only a few seconds of data vulnerability, you can obtain the same great performance you are already accustomed to, but now with an assurance that much more of your data is secured to disk thereby substantially reducing your data vulnerability.


See Delayed Durability Transaction Log Mode for Performance.

TOCIndex