Volume, Velocity, and Variety

Dynamic Data

The Volume, Velocity, and Variety (commonly referred to as the “3Vs”) of data being captured today are at an all-time high, and projections are these attributes will only continue to grow exponentially. As the capacity for our computer systems to be able to digest, analyze, and make intelligent decisions from this explosion of data continues to improve, it is clear that you will need a database that is able to keep pace. Regardless where the data is coming from—system logs, machine sensors, financial data, health care information, or somewhere you have only dreamed of—rest assured the c‑treeACE database will be able to keep pace with your dynamic data needs.

Integration and Access

Dynamic Queries

While the 3Vs of data are increasing, another dynamic is that data is no longer kept in proprietary silos. Virtually all industry segments need real-time methods for leveraging this valuable data for integration with other parts of the enterprise, business intelligence (BI), governance, web and mobile access, and so on.

Multimodel Database

Dynamic Data + Dynamic Queries = c‑treeACE

With many database systems, an ETL (extract, transform, load) process is required to gain relational access to traditionally non-relational data. ETL creates two problems: (1) you now have two copies of data to maintain and; (2) you now have relational access over “stale” data, the D+1 problem. Additionally, some solutions are limited to read-only access to the exported SQL data.

SQL is the natural choice for external integration. With c‑treeACE, applications remain as-is and schema requirements can “follow the data” allowing NoSQL data to come to life in SQL. With multi-schema and subrecord data, FILESET support, and on-the-fly types conversion via our types SDK, c‑treeACE allows extensive access to nearly all forms of existing application data, whether schema, semi-schema, or schema-less.

Customer Case Study - Time Series Data Implementation

To put these concepts into context, let’s look at a real-world application that involves time series data. On the left side of this diagram, you’ll see large Volumes of high-velocity data that is Variable in nature. In this particular example, we have financial data that has information packed into variable-size arrays to improve the speed and performance of writing data to disk as rapidly as possible. Rather than writing a single small record for each piece of financial data, the data is packed into large blocks, without a strict data schema, and pushed to disk as these blocks. Millions of data points per second are logged to disk with this technique. This is a good example of dynamic 3Vs data.

Now, what happens when you want to perform data analysis over this dynamic data? Often the data will go through some form of ETL process on its way to a data warehouse or a relational database. But, if you leave the data in place and perform data analysis over the live data for reporting and web/enterprise/mobile device integration, you save a lot of time and you produce a wealth of opportunities for your business. You’ve also greatly lowered the strain on IT resources. You no longer need to move the data; you reduce system complexity by having a single source of data.

Time Series Diagram

Only a true multimodel database supporting multiple data access techniques can address this very real modern example. This is a classic NoSQL case of schema-less data as it combines a variety of record types in a single table. This mix of formats is at odds with the relational model, which requires all records in a table to conform to a single schema (think of the third V, Variety). FairCom engineers overcame this problem with our unique Multi-Schema Data solution, which provides robust SQL access to non-relational data. When multi-schema data is accessed via SQL, we make it appear as multiple “virtual” tables, one for each schema. The SQL application is unaware of the non-relational structure of the underlying data, as it simply sees multiple “virtual” tables. Since the NoSQL portion of the application isn’t forced to impose a fixed schema over each piece of data being written to the database, the Volume and Velocity of data flowing through the application isn’t impacted. In this example, we show the benefits of c-treeACE No+SQL for data flexibility, reduced code overhead, stellar data throughput, and ease of data integration and reporting through SQL.

Get the Whitepaper

Learn how to Achieve NoSQL Performance with Full Read/Write Access to SQL Features

c-treeACE - A True Multimodel Database

How is it possible to build a single application that leverages the best attributes of both NoSQL and SQL? The secret to our seamless multimodel integration of NoSQL and SQL is our unique layered API. With many database fundamentals—such as ACID-compliant transactions, row and key level locking, deadlock detection, and more—implemented in our lowest common denominator API, the NoSQL API, you can mix and match any combination of the above interfaces, all over the same single instance of your NoSQL data without fear of deadlocks or other multi-user interference.

The following API diagram illustrates the choices available for accessing c‑treeACE data. The API and Frameworks can be separated into two categories: 1) NoSQL APIs, shaded in Blue and Green and 2) SQL APIs, shaded in orange.

c-treeACE API Diagram


The Benefits of Using NoSQL

  • More control than SQL APIs. For example, the c‑treeDB API has over 300 function calls empowering the application developer to solve their precise data storage and retrieval needs. A typical program will only use about 20 of these function calls, however, when you need advanced locking control, key level access, and less reliance on data schema, you have a full API library at your disposal, in your choice of C, C++, ADO.NET or Java.
  • Support for structured and unstructured data. Today’s data is dynamic and can’t often be constrained to a fixed schema definition. One of the many benefits provided by the flexibility and control of the NoSQL APIs listed in this section is the ability to dynamically capture this data as it comes in without needing to enforce strict schema rules.
  • Less Code Overhead. Many common operations are much easier with direct record-level API data access, introducing only a nominal impact on your application size.
  • Exceptional Performance. The points above all work in conjunction to provide opportunities for greater throughput at the NoSQL level than you can typically achieve at a relational level.

c-treeACE API

This C language API provides the maximum level of control and performance over the underlying data, and produces a very small footprint application. At this level, the relationship between data files and indexes is maintained for the programmer, while the programmer is responsible for record buffer management and individual relationships between files.

c-treeDB C API

This C language API sits on top of the c‑treeACE API and at this level the database takes care of record buffer management and concepts of sessions, databases and tables are introduced, further simplifying application coding.

c-treeDB C++ API

This is a C++ implementation of the c‑treeDB C API.

c-treeDB .NET

This layer offers two APIs that are both identical to the c‑treeDB C API, except coded for easy use within C# and Visual Basic.

c-treeDB VCL

This layer is identical to the c‑treeDB C API, except coded for easy use within Embarcadero’s RAD Studio VCL framework.

c-treeDB Java

This layer is a Java NoSQL implementation based on the object-oriented c-treeDB C++ API. This unique non-relational implementation provides a sizable performance gain (over 40%) over applications written using JDBC.

c-treeDB JEE

The c‑treeDB Java Enterprise Edition (JEE) offers an implementation of a Resource Adapter for JEE Application Servers such as Glassfish. It publishes c‑treeACE NoSQL methods, which allows enterprise-class, distributed applications to view c‑treeACE data as a registered resource.

c-treeDB JPA

The c‑treeDB Java Persistence API (JPA) provides an object-oriented abstraction layer to manage relational data without the need to use SQL commands, which allows applications to be independent of any specific database. Unlike many SQL-based JPA implementations, such as Hibernate, FairCom makes available an alternative low-overhead, non-relational NoSQL based interface technology for improved performance for selected applications.


This product is a drop-in file system replacement for several of the more popular COBOL compilers: Microfocus, AccuCOBOL, Veryant’s IS COBOL, and RM/COBOL. This client-side driver leverages the Low-Level File System, NoSQL Key-Value Store, and c‑treeDB APIs to provide a means for existing COBOL applications to be modernized by providing a full database engine with full SQL access, replication, ACID transaction support, etc., all without making any code changes.

c-treeRTG BTRV

This product is written as a drop-in replacement for the Btrieve database. Like its sister, c‑treeRTG COBOL, this driver uses a blend of the Low Level and C Key-Value Store APIs and provides a quick way to migrate applications off the Btrieve database.


The Benefits of Using SQL

  • Easy Data Integration. The SQL APIs available in this block provide industry standard data integration with all segments of your enterprise including third-party applications, websites, mobile applications, etc.
  • Standards-based. c-treeACE SQL APIs are standards-based APIs when applicable, making it easy to find programmers and DBAs that are familiar with these APIs.
  • Given all these options, mix and match SQL data access to your broad application requirements. Consider Python for new Linux-based development, PHP for traditional web access, and ADO.NET for you desktop Windows-based application. And don’t forget, data can derive from non-traditional NoSQL sources.

c-treeACE ODBC

This is a server-side Open DataBase Connectivity (ODBC) driver that provides a subset of the SQL standard. This driver is primarily used for integration with other third-party applications such as report writers and BI tools. A direct link library is available for this API for use on Linux and Unix platforms.

c-treeACE JDBC

This is a server-side, Type IV Java DataBase Connectivity (JDBC) driver, perfect for web integration and connecting to mobile devices. c‑treeACE SQL JDBC provides an API that allows you to exploit Java’s “Write Once, Run Anywhere” capabilities for applications that run on different platforms and access enterprise data.

c-treeACE PHP

This is a drop-in native PHP module for interfacing this popular web interface into c‑treeACE data.


This is a relational version of the c‑treeDB .NET NoSQL API. The advantage of using the relational ADO.NET version is it’s a more open standard and you’ll more easily find developer’s already familiar with this API.

c-treeACE Python

This is a drop-in native Python module that interfaces with c‑treeACE data through the well-known Python ctypes module. This architecture has been chosen because it makes the module immediately available for multiple Python implementations, such as PyPy and Jython.

c-treeACE Direct SQL (DSQL)

This is an inline SQL API designed for developers who wish to embed SQL statements directly into their C/C++ programs.

c-treeACE DBX

This is a driver that provides access to c‑treeACE data through applications created with Embarcadero’s Delphi or C++ Builder RAD development tools. Although ODBC or ADO.NET Drivers could be used for this integration, having a native dbExpress Driver simplifies the integration within this development framework. This relational DBX implementation is a sister to the c‑treeACE VCL NoSQL API. The advantage of using the relational DBX version is it’s a more open standard and you’ll more easily find developers already familiar with this API.


Download the most robust No+SQL Database Technology for Free