Snap! Database

The Snap! Database System

Snap! Database — a diverse database system for the Snap! CMSThe Snap! C++ Content Management System makes use of two databases at this point: Cassandra and Snap! Database System (sdbt).

The Cassandra system has several drawbacks which we are slowly fixing by implementing the SDBT environment. The main one at first is to have a set of journaling tables which Cassandra has a really hard time with. This is because it creates tombstones and the Cassandra files grow indefinitely rendering the whole system very slow over time. It is slow because Cassandra ends up having to scan these large files from start to finish to gather the data on a read. Such reads end up being very long. When over about 10 seconds, it tends to timeout and more or less it breaks everything. So Cassandra is not a good solution for this type of tables.

We could have gone with a different system for our journals, such as Redis, but then we would end up with so many different systems that it becomes complicated to manage everything. Instead we want to have one system that is capable of managing all the data in one single cluster. Our SDBT tables will be specialized to work well with our CMS. They will also be broad enough for others to use the system for other reasons.

The very first version is to include the journaling feature. The other types of tables will have to wait for a while.

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly