Search code examples
phpsqlcassandrahigh-availabilityceph

Always being available, any thoughts?


I work for a small company who wants to expand an existing system but by doing so there are also some issues. The system itself is used to store images and video's.

Always being available

So we talked to our host and they recommended us to use Ceph and Cassandra. Now I did some research on both of them and I really like the idea of Ceph - but Cassandra.. well, it would take a while for the existing system to be adapted to it.

The reason they recommended Cassandra was so our database would always be available. Now - the DB won't increase massively, it would only be used to keep some user-info, image-tags and other small meta-data.

Another issue is that many queries use "like" in order to find the tags. CQL does not support this.

Now we don't have any developers who have knowledge of Cassandra so it might take some time to take used to that.

My question

  • Is there an alternative for Cassandra, preferred a relational database (so not NoSQL) which is still highly available (like when one server goes down, another takes over).
  • In case there isn't - how long would it take to get used to Cassandra's query language for relatively inexperienced developers (~ 1 year of experience), including the knowhow of how to adapt a system to it.
  • Just in case I didn't do my research properly, is Cassandra even the system we are looking for, the DB is pretty much only used for storage and some small functions.
  • In case you recommend a NoSQL language, what other options do I have of searching and finding data (as we now do by using " ..where x like 'something'")

Solution

  • Another issue is that many queries use "like" in order to find the tags. CQL does not support this.

    It does, since Cassandra 3.5 with SASI secondary index

    Now we don't have any developers who have knowledge of Cassandra so it might take some time to take used to that.

    It's not a problem, you have hours of free online video and training at Datastax Academy

    In case there isn't - how long would it take to get used to Cassandra's query language for relatively inexperienced developers (~ 1 year of experience), including the knowhow of how to adapt a system to it.

    Just watch the data modeling videos, you should grasp quickly the fundamentals ideas behind Cassandra data model.

    Just in case I didn't do my research properly, is Cassandra even the system we are looking for, the DB is pretty much only used for storage and some small functions.

    If you're looking for extreme high availability (0 downtime) Cassandra is for you.

    If you can handle a downtime of some minutes, there are also other systems that can be a good fit.