December 31, 2012
Scale Up with V10!
The FairCom team is pleased to present our tenth major edition of c‑treeACE database technology. This release benefits from the extensive feedback from customers whose implementations you encounter every day. Whether you are using your credit card, shipping a package, picking up a lottery chance, or buying tickets for your favorite concert, you are supported by the power of c‑treeACE—we work closely with the vendors of these commercial applications around the world.
V10 Performance
30% Faster Transaction Throughput |
60% SQL Performance Improvement |
200% Better Replication Throughput |
26% Faster Read Performance Testing |
Commit Read Lock optimizations Advanced hash lookups speed filename searches Unbuffered I/O bypasses file system cache Faster numbering of transactions |
Reduced memory suballocator contention scalability Reader/Writer Locks enhance synchronization efficiency Numerous SQL query optimizations Range search optimizations |
Unix shared-memory connections Reduced index node contention Critical Section Spin Count Optimizations on Windows Reduced file header reads |
Intelligent file open/close logic for increased efficiency of file handlers Improved PreImage search of transaction hash entries |
Test Environment |
Test Environment |
Test Environment |
Test Environment |
• 100 threads |
• 20 threads |
• 100 threads |
• 100 threads |
• Hardware: Dell PowerEdge, 16 Cores, 3.6 GHz, 32 GB RAM, Seagate ST3600057SS SCSI Hard Drive, 2 X 600GB, 15K rpm
• Windows Server 2008 R2 64-bit, Datacenter Service Pack 1
The considerable performance gains experienced with this V10 release are a result of astute profiling of the c‑treeACE database engine internals. Scalability issues, bottlenecks, contention points, wait times, capacity sizes, as well as many other details were wholly critiqued through thorough profiling, testing, and extensive benchmarking. Additionally we encouraged and considered “real world” feedback from customers. We are excited with the results and encourage you to adopt this V10 technology as soon as possible and experience these rewards.
Multi-record Support
Many users have taken advantage of the flexibility of c‑treeACE’s ISAM or Low-Level record-oriented interface and have defined their own data record layouts. In many cases these layouts do not conform to the relational model required by a SQL engine. Proprietary data types, multiple record types based on a “record type” flag are common in many older c‑treeACE based data files. This situation is most likely in prior c‑treeACE applications that are later ported to c‑treeACE SQL with minimal application changes.
We have added the ability to handle data files that contain multiple data record formats (proprietary, non-relational) and map them into a relational representation. With support for handling this type of data, c‑treeACE can convert data formats at runtime and map non-relational data into a relational model “on-the-fly” to access this data via c‑treeACE SQL advancing your data into the open standards world.
Data Compression
Data volumes are exploding, and, as a result, database file sizes are proportionately increasing. Managing large files remains an important consideration. Compressing data is a valuable technique to reduce this data storage challenge. As low-level data records are read from or written to disk, just before they are passed to the operating system’s file system, c‑treeACE now intervenes and compresses before writing and un-compresses after reading each data record. In some cases we’ve observed compression ratios of 80:1 and more.
Tighter Security
The increasing demand to provide users with highly secured access to systems and data continues to impact developers in these and many other industries. Providing the necessary security required to safeguard mission-critical data is crucial.
In our ongoing reviews we have implemented additional defenses for securely storing and transmitting your data as follows:
- Added a master encryption key store. Support was implemented for specifying a file from which to read the master encryption key.
- Advanced encryption master key length has been increased from 128 to 256 bits. Advanced encryption uses a master encryption key to encrypt the following items using the AES cipher: a) the security resource in c‑treeACE data and index files b) the encryption key in the transaction log file header. We also use a 256-bit key to encrypt the transaction logs and theFAIRCOM.FCS user information file.
- Tighter security restrictions prevent a member of the ADMIN group from changing the password of the super administrator account. Prior to this change, c‑treeACE allowed ADMIN group users to change the password for any ADMIN user account, including the super ADMIN account.
- Secured client-server communications. Passwords are securely hashed (SHA2) and salted for secure storage and client connection negotiation.
Auto-numbering Sequences
Sequential numbering is a requirement for many applications. Accounting data is a particularly heavy application usage with respect to invoices, quotations, and other receivables and payables documentation. c‑treeACE offers several forms of automated numbering. The serial segment (SRLSEG) feature has long served this purpose. However, it suffers some limitations as it is an additional index overhead on a per-file basis. IDENTITY support is more flexible and performs better, although it is still limited to a single table. Consider global operations against multiple servers that require a single numbering scheme. This requires a persisted pool, and indeed, many c‑treeACE applications have implemented their own unique solutions.
c‑treeACE V10 introduces a generic method to create, maintain, and access multiple sources of sequential numbers through a new persisted Sequence feature.
Latest Interface Technologies
c‑treeDB for Java
The c‑treeDB Java, JTDB, native Java interface utilizing the c‑treeDB paradigm. This is a record oriented c‑treeACE interface providing advanced flexibility to the Java developer. This record-oriented c‑treeACE interface utilizes the simplified concepts of sessions, databases, and tables in addition to the standard concepts of records, fields, indices, and segments. It allows Java applications access to data with the same high throughput rates previously only available to C, C++, and .NET applications.
Python
Python is an easy to use dynamic programming language. It includes a powerhouse of included functionality allowing very complex operations in just a few lines of code. Clear readable syntax, strong introspection and many extensions make it the modern programmer’s choice.
The c‑treeACE SQL Python interface gives the means to access your data from c‑treeACE SQL.
Important Compatibility Reminders
- V10 security changes now prevent prior clients from connecting to V10 servers, as well as V10 clients connecting to prior servers.
- Java support is now 1.6. Stay tuned to FairCom as this will become 1.7 support in the very near future.
- The SERVER_DIRECTORY keyword is now deprecated. Please switch to the LOCAL_DIRECTORY keyword to position your default file locations.
View all the latest changes in Notable Compatibility Changes section of the V10 Update Guide.