Transbase® Architecture & Performance
Transbase® Client-Server Architecture
Transbase® Server is implemented as a multiplexer, which assigns Transbase® kernel processes as required for processing the client requests. This allocation is for the entire transaction.
The individual kernel processes process the requests of the application programs and access the data store via a shared, global database cache. As a result, read and write accesses can be optimized transactionally.
Thanks to its modular architecture, Transbase® is very scalable and adapts perfectly to the possibilities of the given hardware. The parallel processing of individual queries within a Transbase® kernel supports optimal use of existing resources.
Different table types for different implementation purposes:
- Standard tables with clustered data storage as the primary B-trees
- Tables without B-tree index for faster insertion (for example for log entries)
- Remote tables in other Transbase® databases (Transbase® D)
- Tables in other databases via JDBC or OCI for read-only operation
- external files in CSV format (can be integrated into the database structure)
Transbase® has a wide range of indexing techniques for primary and secondary indices:
- As a standard index, Transbase® uses B trees - both for tables (with primary keys) and for indexes on secondary keys.
- Compact bitmap indexing is offered for single-column secondary indexes on INTEGER fields and, with the bitmap algorithms, supports the combination of many less-selective features.
- The Transbase® Hypercube Special Index provides multidimensional indexing for primary and secondary indices. It is especially suitable for multidimensional data, especially for data warehouse applications.
- Transbase® Fulltext search offers full-text indices for the indexing of texts, with which also large text bases can be searched in the shortest time for full-text predicates, combined with structural predicates.
Additional objects supported by Transbase® are
- Domains (central definition of application-specific data types)
- Sequences (secure and unambiguous ID generation)
- Trigger (for further action on data changes)
- Stored Procedures and User-Defined Functions (to be edited in Java or C)
Transbase® Performance (resource needs, scalability, partitioning)
Transbase® is characterized by its excellent performance, which is due to the following characteristics:
Minimal resource requirements:
The resource requirement of Transbase® is very low due to the use of efficient algorithms and minimal data structures both for the hard disk and for the main memory: 2 MB process size and 4 MB cache already result in a very high performance overall system. The logical and physical compression of the data at the page level significantly reduces the required memory space and thus also the IO times.
One of the most important features of database algorithms is the scalability, ie the behavior of the effort in terms of the size of the database to be evaluated. At Transbase®, this results mainly from the guaranteed performance of the B-Trees used for data access. The access times for key accesses grow only with the height of the tree and therefore only logarithmically with respect to the stored data volume. Since B-Trees are the basis of all access paths, the overall result is perfect scalability for Transbase® databases with large volumes of data.
Due to its streamlined architecture as a client-server database and its resource-efficient implementation, Transbase® has excellent scalability and can be used very versatile:
- As a database server, Transbase® has sophisticated caching mechanisms and lock-logs in multi-user operation that allow efficient parallel processing of many client queries. Database replication can increase this capacity even more. Not only does this provide load balancing on a database grid, it also enables deployment of fail-over servers for hot standby.
- As a local database, Transbase® stands out for its simple embedding option in the respective application. This also facilitates the installation and operation of the respective application and saves development effort. Transbase® can be operated both as a local database server in a network and locally on the respective client computer. For smaller computers or special devices,Transbase® Edge is a resource-efficient variant of Transbase®.
Cache / Partitioning:
The Transbase® Cache is located as a shared memory object in the main memory and coordinates the access of various Transbase® kernel processes and the common, cross-process buffering of frequently used pages in main memory. In addition, each Transbase® kernel process may include local storage areas, e.g. create dynamically for sorting operations or intermediate results. To increase the possibilities of parallel processing the Transbase® Cache can be partitioned. Currently, up to 128 partitions are possible, allowing for up to 6,400,000 page operations per second. Each cache partition is limited in size to a maximum of 1 GB, resulting in a maximum total size of 128 GB for the Transbase® Cache.
The Transbase® IO system uses the possibilities given by the operating system and parallelizes IO jobs, so that e.g. RAID systems or distributed on multiple disk databases with optimal performance. IO transfers are handled directly between disk and Transbase® so that the operating system cache is not affected. The (configurable) size of the Transbase® Cache is crucial for IO performance; depending on the architecture and performance requirements, it can be between a few MB and a few GB.
P-O-E Transbase® Query in three steps: P-O-E
P - translation of an SQL query into an execution plan
O - subsequent optimization of this plan with special reference to indexes and access paths
E - subsequent evaluation
The optimization identifies parts of the operator tree that can be processed in parallel. The evaluation then generates load-dependent threads to maximize the speed of the query. This ensures that modern multi-CPU architectures are used effectively even if only one request is active in the system.