Use cases of SingleStore and MariaDB

Hello SingleStore Community,

We are looking into options for a DBMS that can serve application purposes (CRUD), but also analytics and reporting on that data. We’re migrating away from a proprietary setup.

Currently we are looking between SingleStore and MariaDB. SS appears to have some interesting perfomance promises for large analytical workloads. On the other hand, I have some questions on things I can’t immediately find an anwser online and I’m interested to get some extra information on these topics:

  • How performant is the SS Rowstore engine in insert speeds compared to MyRocks for example? Any tuning best practices? Can RocksDB be added as a plugin engine to SS?

  • I see no option for data masking and GDPR compliance from an above-DBMS level in SS. Ideally, we’d be able to apply a sort of JSON configmap on the machine/server level that (partially) masks some fields without having to touch SQL itself through partial views for example. This would allow a better separation of strict DBA and business query roles.

  • For some of our applications (bi)temporal tables are in use. System-versioning by itself however would be nice already. Is this in the development scope the coming years?

  • Recursive CTEs are time saving when working with hierarchical data.

Lastly, is there any comparison available between the SS ColumnStore engine and the ColumnStore by MariaDB? Pro’s and cons of each, can be like a very short ELI5 post. I just can’t find much about it online.

I don’t have specific data related to MyRocks but SingleStore INSERT speeds are a unique strength of our system. We support truly phenomenal insert speeds. We don’t talk about it much anymore because we virtually always win against other SQL databases in INSERT/UPSERT comparisons. Here’s an older blog about it: Can S3 pipeline read new file named same as deleted file which was already processed by this pipeline?

Long story short, we can insert/upsert millions of rows per seconds pretty easily on a reasonable amount of hardware.

I’m not really sure what you’re looking for regarding masking. Perhaps you could add more details here.

We don’t currently support bi-temporal tables (time travel) as a built-in feature. You can use some application logic to model bi-temporal behavior but of course that adds application complexity. We have some interesting time series features. See FIRST, LAST, TIME_BUCKET, and SERIES TIMESTAMP features.

Recursive CTEs are actively being developed. I expect that we’ll ship them by the end of next summer, maybe sooner.

I don’t have a comparison of our columnstore engine to that of MariaDB, but ours is quite advanced and mature. We use batch-oriented and vectorized processing, SIMD instructions, and late materialization. We’re competitive with special-purpose cloud data warehouses that have state-of-the-art columnstores.

Check this out:

and this: