DataTurbine Server

What is RBNB?

The DataTurbine server is contained in rbnb.jar it is the core of DataTurbine and is used as a center point that applications (sources and sinks) interface with.

It is not a replacement for a database and is designed for speed. Because of this although it is possible to store years of data in a DataTurbine server, for most applications data is also archived in permanent storage in a database.

The acronym RBNB stands for Ring Buffered Network Bus, and is the technology inside the DataTurbine server.  To data sources (applications that generate data), it acts as a middleware ring buffer which stores heterogeneous time-sequenced data. To data sinks (applications that read data), it acts as a consolidated repository of data.  Key to RBNB scalability is each source (ring buffer) and sink (network bus connection) act independently of each other.

The DataTurbine Server

It can be thought of as a series of rotating disks (a ring buffer) with new data being added and old data removed when the archive becomes full.

Source (applications that add data to the server) will specify their own archive sizes and cache size. Each source can specify its own archive and cache sizes.

The archives size specified by a source determines the size of it’s ring buffer and how much data is buffered before it is discarded. DataTurbine can use as much storage as a systems physical drives allows. A good value depend on the storage space of the device the server is running on and the needs of the project.

The cache size specified by a source determines how much of it’s ring buffer is contained in memory (RAM). This is again determined by the nature of the system is running on and the applications. A cache can increase speed, but a bigger cache does not necessarily mean a faster system.

This approach allows applications to interact with data in near real-time. Sinks can read data as it is collected and display it online, in Matlab, or other applications. Sinks can also interact with the data and move it into permanent storage.


The server is agnostic to the data it receives and can accept heterogeneous data types including numerical, video, audio, text, or any other digital medium. It acts as a black box with sources adding in data and sinks reading the data out.

The server expects an accurate timestamp for every data point. One limitation of this is that datacannot be back-loaded into the server. That means that data has to be entered sequentially and so for a give source each data point has to have a timestamp that is greater than the previous timestamp on record.

What is a Frame

Sizes are specified in the number of frames. Each time a source application flushes data it adds one frame.  A frame is a data structure of one or more channels, with 1 or more data objects per channel.  Thus the size of a frame may be small to large, and may vary frame to frame.

Open Source DataTurbine Initiative © 2017 Frontier Theme