Project

General

Profile

Wiki » History » Version 1

Version 1/38 - Next ยป - Current version
Chad Trabant, 08/14/2012 11:23 AM


Ringserver
Ringserver is a generic ring buffer. The server is commonly used as a buffer for (near) real-time streaming feeds of time series data. Each individual time series is commonly identified with a stream name (for seismological data these are equivalent to unique channels by convention), but the stream names are completely arbitrary. In general, data clients connect to the server and submit a "subscription" for specific streams and as other data clients submit data into the system they are sent to clients with matching subscriptions. By identifying each buffer packet uniquely and allowing a client to select a starting point in the buffer clients can resume broken connections without data loss.

Communicating with a server is generally done using the DataLink protocol over TCP/IP. A DataLink client can query the server for various server details, submit data, and subscribe to streams. Server details can include stream lists, client lists and server statistics.

Server configuration, on-the-fly changes
Most common options can be configured using command line arguments to ringserver. All options can be configured via a configuration file. Most options, if specified via the configuration file, can be changed on the fly. The server will monitor the configuration file for changes and apply them as needed, this reduces the amount of down-time and eases the maintenance of a ringserver node.

SeedLink support
While the architecture implemented by ringserver is completely generic some additions have been made to support the SeedLink protocol. In particular for packets where the data is a 512-byte miniSEED record the server

Stand alone SeedLink server
Read the How to configure ringserver as a simple SeedLink streaming server

Implementation and resource requirements

3rd party libraries used
The ringserver program uses the following opensource libraries: *