ApiaryActive
Try: pause · settings · learn · wipe
← Community / Reading Room
D
computing · 3 min read

Doozer

Doozer is a distributed lock service originally developed at Google by the Google Storage team. It was designed to provide a way for distributed systems to…

Overview

Doozer is a distributed lock service originally developed at Google by the Google Storage team. It was designed to provide a way for distributed systems to coordinate access to shared resources, such as storage systems, in a scalable and fault-tolerant manner. Doozer is often used in cloud computing and big data processing environments where high availability and reliability are critical.

Architecture

Doozer is a peer-to-peer system, meaning that each node in the cluster is both a client and a server. Each node maintains a lock table, which is a set of keys (or IDs) that the node is responsible for managing. When a client tries to acquire a lock, the Doozer node closest to the client (either geographically or based on load balancing) is asked to manage the lock. If the lock is available, the node assigns a lease to the client and returns the lock ID. The client can then use the lock ID to perform operations on the shared resource.

Doozer uses a Paxos-based consensus algorithm to ensure that locks are consistent across the cluster. Paxos is a fault-tolerant consensus algorithm designed to ensure that a group of nodes agrees on a single value, even in the presence of failures. In Doozer, the Paxos algorithm is used to ensure that only one node can hold a lock at a time, and that locks are updated consistently across the cluster.

Features

Doozer provides several features that make it a popular choice for distributed systems:

  • Scalability: Doozer is designed to scale horizontally, meaning that new nodes can be added to the cluster as needed to increase performance and capacity.
  • Fault tolerance: Doozer uses a Paxos-based consensus algorithm to ensure that locks are consistent across the cluster, even in the presence of node failures.
  • High availability: Doozer is designed to be highly available, with each node able to handle requests independently and automatically failover to another node if the primary node fails.
  • Atomic operations: Doozer provides atomic operations, such as compare-and-swap, to ensure that operations on shared resources are executed atomically.
  • Low latency: Doozer is designed to provide low latency, with responses typically returned within a few milliseconds.

Use cases

Doozer has a wide range of use cases in distributed systems, including:

  • Cloud storage: Doozer is often used in cloud storage systems to manage access to shared storage resources.
  • Big data processing: Doozer is used in big data processing environments to manage access to shared data resources.
  • Distributed databases: Doozer is used in distributed databases to manage access to shared data resources.
  • Microservices architecture: Doozer is used in microservices architecture to manage access to shared resources between services.

Implementations

There are several open-source implementations of Doozer available, including:

  • Google Doozer: The original implementation of Doozer developed at Google.
  • Apache ZooKeeper: A popular implementation of Doozer that provides additional features and scalability.
  • etcd: A distributed lock service that provides a similar set of features to Doozer.
  • ZooKeeper: Another open-source implementation of Doozer that provides high availability and scalability.

References

  • "Doozer: A Lock Service for Distributed Systems" (2007) - Google Storage team
  • "Paxos Made Simple" (2001) - Leslie Lamport
  • "ZooKeeper: Wait-Free Coordination for Internet-scale Systems" (2008) - Apache ZooKeeper team
  • "etcd: A Distributed Lock Service" (2013) - etcd team

Note: The references provided are a selection of the most relevant and influential papers and resources related to Doozer and its use cases.

Frequently asked
What is Doozer about?
Doozer is a distributed lock service originally developed at Google by the Google Storage team. It was designed to provide a way for distributed systems to…
What should you know about overview?
Doozer is a distributed lock service originally developed at Google by the Google Storage team. It was designed to provide a way for distributed systems to coordinate access to shared resources, such as storage systems, in a scalable and fault-tolerant manner. Doozer is often used in cloud computing and big data…
What should you know about architecture?
Doozer is a peer-to-peer system, meaning that each node in the cluster is both a client and a server. Each node maintains a lock table, which is a set of keys (or IDs) that the node is responsible for managing. When a client tries to acquire a lock, the Doozer node closest to the client (either geographically or…
What should you know about features?
Doozer provides several features that make it a popular choice for distributed systems:
What should you know about use cases?
Doozer has a wide range of use cases in distributed systems, including:
References & sources
  1. Apiary Reading RoomOpen, cited knowledge base — funded to keep bee & practical research free.
From the Apiary Reading Room. Opinion & editorial — not financial advice. We don't overclaim.
More from the Reading Room