Categories
Databases

Querying DynamoDB from Scala

As we’ve seen in this comparison with Apache Cassandra, DynamoDB may be a valuable choice for storing data. It’s fully maintained by AWS you just have to configure your instance and you can start using it straight away. Being one of the Amazon web services DynamoDB offers a JSON/HTTP interface and Amazon provides a set […]

Categories
Databases

Amazon DynamoDB vs Apache Cassandra

Cassandra and DynamoDB both origin from the same paper: Dynamo: Amazon’s Highly Available Key-value store. (By the way – it has been a very influential paper and set the foundations for several NoSQL databases). Of course it means that DynamoDB and Cassandra have a lot in common! (They have the same DNA). However both AWS […]

Categories
Databases

The Cassandra Java Driver

Cassandra drivers are not just a dumb piece of software that sends CQL strings to a Cassandra node and waits for responses. They are actually quite smart and are architectured in a way that should make your life easier while still attempting to get the most performance out of Cassandra. In this post I am […]

Categories
Databases

Querying Cassandra from Scala

When it comes to accessing Cassandra from Scala there are 2 possible approaches: The official Java driver A custom DSL like Quill or Phantom Custom-DSL are nice as they provide all the type-safety you need against your data schema. However in this post I will focus only on the Java driver. Why? Because it’s both […]

Categories
Databases

Understanding Cassandra tombstones

We recently deployed in production a distributed system that uses Cassandra as its persistent storage. Not long after we noticed that there were many warnings about tombstones in Cassandra logs. We found it quite surprising at first because we’ve only inserted data so far and didn’t expect to see that many tombstones in our database. […]

Categories
Databases

Cassandra lightweight transactions

We all know that Cassandra is a distributed database. However there’re situations where one needs to perform an atomic operation and for such cases a consensus must be reached between all the replicas. For instance when dealing with payments we might require that we only insert the row once.

Categories
Databases

DSEGraph under the hood

Today we’ll dig deeper inside DSEGraph and see how it uses Cassandra to distribute the graph over the cluster. We’ll illustrate this post with a classic toy example: a movie graph. Our model is very simple. I consists in “persons” who “acted in”  “movies” which “belongs to” “genres”.

Categories
Databases

DSE Graph vs Neo4J

Last week I took the course on DSEGraph available on Datastax academy so logically this post is about DSEGraph. It turns out I’ve also used Neo4J a couple of months ago. So this post is going to be a comparison between these 2 graph databases.