Polyglot Persistence

I came across this term polyglot persistence  while reading a  post about ACID in the context of NoSQL databases.

The post  gave me insights  into the world of NoSQL  databases, and  how to think about ACID in the context  of NoSQL systems.

It has some great links and pointers. in particular some interesting pointers to Eric Brewers posts on highscalability.com

Check it out!

Distributed Locks

One reason why Redis has custom locking, instead of using operating system–level locks, language-level locks, and so forth, is a matter of scope. Clients want to have exclusive access to data stored on Redis, so clients need to have access to a lock defined in a scope that all clients can see—Redis.

Redis does have a basic sort of lock already available as part of the command set (SETNX), which we use, but it’s not full-featured and doesn’t offer advanced functionality that users would expect of a distributed lock.

In fact there are two patterns which have emerged for locking in Redis.

  1. Locking with SETNX
    • it’s not full-featured and doesn’t offer advanced functionality
  2. Redlock
    • the distributed locking algorithm.

 

References: