Thread Impersonate - This advanced feature supports a connection impersonating another connection. The c-treeACE Server maintains a separate thread for each connected client. Each server thread has its own internal “Owner ID” to maintain the context information related to that user/connection. A new API can be called to evoke a connection to impersonate another connection.
c-treeACE listens on two separate communications ports: one for SQL, and another for ISAM connections. When a SQL client connects, it has its own server thread/context. When an ISAM client connects, it has its own server thread/context. Customers requested both the SQL and ISAM operations to be coordinated under a single database transaction which was not previously possible within the same transaction context.
A user may now connect a SQL client and an ISAM client and then indicate to the server that the ISAM client wants to impersonate the SQL client. On the server-side, both connections use the same “Owner ID” allowing the server to view them as the same thread/context. Sophisticated users can now have SQL and ISAM code intermingled within the same code/database transaction. This is a great technique to gain performance advantages when a well-crafted ISAM call is preferable to SQL query overhead.
Thread Impersonate is an advanced feature that requires careful implementation. For more information, see Thread Impersonate - Connection Impersonating Another Connection.
Memory Files - Exceptional in-memory file and index support offers blazing I/O speeds. We have improved this performance even more in this release. Concurrency of operations on memory files is improved when adding records. Also, on 64-bit systems with memory address values over 4GB, an alternative hash function has been implemented that improves overall performance. See Memory Files.
Distinct Key Counts for Duplicate Index - To optimize SQL queries, a more precise estimation of the duplicate index selectivity was required, which implies knowing how many distinct keys there are in an index allowing duplicates. Counting distinct partial key values on indices improves the index selectivity calculations and results in overall improved performance of c-treeACE SQL. See Distinct Key Counts for Duplicate Index.
Diagnostics and Monitoring Improvements - Including disk-full conditions, memory allocation tracking, run-time control over low-level file I/O diagnostics, improved internal statistics available from the SnapShot API call and ctstat utility.