Product Documentation

c-treeDB API for C++

Previous Topic

Next Topic

Introduction to the c-treeDB API for C++

The c-tree Database API for C++ is a record-oriented database API. Its short name is c-treeDB for C++ or simply CTDB. It is in the "NAV" family of APIs because it makes it easy for application developers to navigate data — no matter how complex.

c-treeDB for C++ is an object-oriented API that provides precise control over every aspect of data processing. It leverages the familiar concepts of databases, tables, records and fields. For example, it can connect to a database, open a table, find a record by key, and walk records in key order.

The c-treeDB API makes it easy to navigate and process data very quickly across multiple databases no matter where they are located. Its unique ability is to simultaneously open cursors into multiple databases and remote control them. Applications use cursors to control every detail of record lookup and traversal. There are multiple types of cursors: index, table, filtered, range, metadata, batch query, batch insert, batch update, and batch delete. Each is optimized to make different use cases easy and fast. For example, your application can retrieve a record from one database and use its data to quickly position a cursor in another database to batch retrieve additional records.

Because the FairCom Database Engine is optimized specifically for cursors, applications can easily do very complex data processing tasks at high speed. Developers are not limited to using built-in SQL or GQL algorithms. A software developer can easily implement algorithms to traverse data as hierarchies, graphs, objects, tables, etc. A data engineer or data scientist can implement unique algorithms for machine learning, graph analytics, knowledge graphs, big data, etc. A back-end programmer can implement optimized algorithms for real-time transaction processing, high-velocity inserts, specialized microservices, etc.

While navigating records, a developer can do anything with the data, such as insert, update, and delete records. c-treeDB can find, retrieve, and process field values. Field values can be any common data type: JSON, custom binary structures, arrays, strings, numbers of all types, dates, times, monetary values, Boolean, etc. The database can automatically index fields containing these data types.

c-treeDB works simultaneously with SQL. Applications can use SQL and c-treeDB at the same time on the same data. SQL tools can simultaneously work with the same data as an application using c-treeDB.

SQL is ideal for writing queries that join data. c-treeDB is ideal for navigating complex data, such as walking hierarchies and graphs or implementing custom data processing algorithms. c-treeDB is easier than SQL because there is very little to learn and it is 100% predictable.

c-treeDB makes it easy to process complex data because developers can leverage the full power of their development language to break down complexity into manageable code. c-treeDB extends a developer's favorite development language directly into the database. In other words, a programmer can use their favorite programming language to remote control the database and directly process data. c-treeDB eliminates the need to learn a proprietary database language; instead, a developer’s favorite language becomes the database language.

c-treeDB is ideal for achieving extreme, predictable performance because it gives developers complete control over:

  • Navigating records in any order
    • Index- or table-order
    • Forward or backward
    • Filtered
    • Ranged
    • Partial-key
    • Bulk processed
    • Etc.
  • Saving record positions
  • Jumping back to saved positions
  • Controlling if and how each record is locked
  • Managing which records participate in transactions
  • Using custom algorithms to join data across tables
  • etc.

TOCIndex