Ring Buffered Network Bus
Ring Buffered Network Bus (RBNB) was created by Creare Inc.. It is also called Data Turbine.
- Uses a finite-sized ring buffer to handle data.
- The copy of most recent data is kept in memory and the rest is on disk. Size of both can be configured.
- Data on disk is called Archive.
- Data on memory is called Cache.
- Data is saved to and retrieved from the RBNB server by applications termed sources and sinks, respectively.
- Each source application generates its own ring buffer, which is managed by the RBNB server.
- Sink applications can request data from the RBNB server, which retrieves information from the appropriate ring buffer(s) and passes it back to the requesting sink application.
- Sources and sinks communicate with RBNB by passing messages via channel map objects.
- Each channel in a channel map is named and contains timestamped data.
- An RBNB frame is created each time a channel map is written/flushed to disk.
- Size of a frame is variable.
- The sizes of both the cache and the archive are defined in terms of the number of frames.
- Sink applications use channel maps to request data from the RBNB server in the following ways:
- Subcribe: The server pushes new data as it is received to the sink application's designated channel map. All data is sent to the application in a continuous stream regardless of whether the application can keep up.
- Monitor: The server pushes new data as it is received to the sink application's designated channel map. The server skips ahead, dropping data if necessary, if the sink application gets too far behind in its processing.
- Request: The sink application sends the server a channel map containing the name of the channel, timestamp, and duration of the requested data. The server responds by returning the channel map with the requested data filled in.
In REAP, we will start by designing a an API for RBNB operations and an RBNBSink actor that can operate in all three modes of using channel maps. We will build the actor based on the defined APIs. This is discussed in RBNB Sink Actor Design page.
There's a more complete Getting Started with Data Turbine document at the NEESit website.