What is it?

Round Robin SQL (RRS) is a SQL implementation of a round robin database. Why would you want to do this? Imagine if you have a large number of things you want to track, say the number of hits a website gets from each network space (ie: all hits from 11.22.33.xxx would be grouped together while all hits from 11.22.44.xxx would be grouped separately). To do this with a conventional RRD, you would have to setup 255^3 separate RRDs, something that's clearly not very practical. Another way to gather this data would be to log every request in a log file or database, but that would quickly become a very large amount of data for even a moderately busy website.

RRS is a way to combine these two techniques: the compact data storage of a RRD with the ability to track a large number of data points. There isn't even a need to predefine the different types of data you will be tracking. In the case of the website logging example, you would log requests into a log table. RRS would then take data from that log table and insert it into a summary table in an RRD format, making for very efficient storage. Data that had been processed by RRS could then be removed from the log table.

Supported Databases

Currently only PostgreSQL is supported, but it should be straightforward to port this to any other database with stored procedure support.


The current version of RRS can be downloaded here. Older versions are available in our download directory. You may also view our SVN Repository.


If you find RRS useful or would like to help improve it, I'd love to hear from you! Or better yet, join one of our mailing lists.