This is an automated email from the ASF dual-hosted git repository.

hanm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 4fd1098  ZOOKEEPER-3529: add a new doc: zookeeperUseCases.md
4fd1098 is described below

commit 4fd1098348ff75b1d79607aa79d89a4c93e9d4d8
Author: maoling <maoling199210...@sina.com>
AuthorDate: Mon Sep 23 13:22:15 2019 -0700

    ZOOKEEPER-3529: add a new doc: zookeeperUseCases.md
    
    - The preview is 
[here](https://github.com/maoling/zookeeper/blob/ZOOKEEPER-3529/zookeeper-docs/src/main/resources/markdown/zookeeperUseCases.md)
    - more details in the 
[ZOOKEEPER-3529](https://issues.apache.org/jira/browse/ZOOKEEPER-3529)
    
    Author: maoling <maoling199210...@sina.com>
    
    Reviewers: Michael Han <h...@apache.org>, Enrico Olivelli 
<eolive...@gmail.com>
    
    Closes #1073 from maoling/ZOOKEEPER-3529
---
 .../src/main/resources/markdown/index.md           |   1 +
 .../main/resources/markdown/zookeeperOtherInfo.md  |  22 --
 .../main/resources/markdown/zookeeperUseCases.md   | 385 +++++++++++++++++++++
 3 files changed, 386 insertions(+), 22 deletions(-)

diff --git a/zookeeper-docs/src/main/resources/markdown/index.md 
b/zookeeper-docs/src/main/resources/markdown/index.md
index 8b38d3f..c1979f9 100644
--- a/zookeeper-docs/src/main/resources/markdown/index.md
+++ b/zookeeper-docs/src/main/resources/markdown/index.md
@@ -38,6 +38,7 @@ archives.
     Documents for Developers using the ZooKeeper Client API
     + [API Docs](api/index.html) - the technical reference to ZooKeeper Client 
APIs
     + [Programmer's Guide](zookeeperProgrammers.html) - a client application 
developer's guide to ZooKeeper
+    + [ZooKeeper Use Cases](zookeeperUseCases.html) - a series of use cases 
using the ZooKeeper.
     + [ZooKeeper Java Example](javaExample.html) - a simple Zookeeper client 
application, written in Java
     + [Barrier and Queue Tutorial](zookeeperTutorial.html) - sample 
implementations of barriers and queues
     + [ZooKeeper Recipes](recipes.html) - higher level solutions to common 
problems in distributed applications
diff --git a/zookeeper-docs/src/main/resources/markdown/zookeeperOtherInfo.md 
b/zookeeper-docs/src/main/resources/markdown/zookeeperOtherInfo.md
deleted file mode 100644
index e3c0ae5..0000000
--- a/zookeeper-docs/src/main/resources/markdown/zookeeperOtherInfo.md
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-Copyright 2002-2004 The Apache Software Foundation
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-//-->
-
-# ZooKeeper
-
-## Other Info
-
-currently empty
-
diff --git a/zookeeper-docs/src/main/resources/markdown/zookeeperUseCases.md 
b/zookeeper-docs/src/main/resources/markdown/zookeeperUseCases.md
new file mode 100644
index 0000000..eab3c78
--- /dev/null
+++ b/zookeeper-docs/src/main/resources/markdown/zookeeperUseCases.md
@@ -0,0 +1,385 @@
+<!--
+Copyright 2002-2019 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# ZooKeeper Use Cases
+
+- Applications and organizations using ZooKeeper include (alphabetically) [1].
+- If your use case wants to be listed here. Please do not hesitate, submit a 
pull request or write an email to **d...@zookeeper.apache.org**,
+  and then, your use case will be included.
+- If this documentation has violated your intellectual property rights or you 
and your company's privacy, write an email to **d...@zookeeper.apache.org**,
+  we will handle them in a timely manner.
+
+
+## Free Software Projects
+
+### [AdroitLogic UltraESB](http://adroitlogic.org/)
+  - Uses ZooKeeper to implement node coordination, in clustering support. This 
allows the management of the complete cluster,
+  or any specific node - from any other node connected via JMX. A Cluster wide 
command framework developed on top of the
+  ZooKeeper coordination allows commands that fail on some nodes to be retried 
etc. We also support the automated graceful
+  round-robin-restart of a complete cluster of nodes using the same framework 
[1].
+
+### [Akka](http://akka.io/)
+  - Akka is the platform for the next generation event-driven, scalable and 
fault-tolerant architectures on the JVM.
+  Or: Akka is a toolkit and runtime for building highly concurrent, 
distributed, and fault tolerant event-driven applications on the JVM [1].
+
+### [Eclipse Communication Framework](http://www.eclipse.org/ecf)
+  - The Eclipse ECF project provides an implementation of its Abstract 
Discovery services using Zookeeper. ECF itself
+  is used in many projects providing base functionallity for communication, 
all based on OSGi [1].
+
+### [Eclipse Gyrex](http://www.eclipse.org/gyrex)
+  - The Eclipse Gyrex project provides a platform for building your own Java 
OSGi based clouds. 
+  - ZooKeeper is used as the core cloud component for node membership and 
management, coordination of jobs executing among workers,
+  a lock service and a simple queue service and a lot more [1].
+
+### [GoldenOrb](http://www.goldenorbos.org/)
+  - massive-scale Graph analysis [1].
+
+### [Juju](https://juju.ubuntu.com/)
+  - Service deployment and orchestration framework, formerly called Ensemble 
[1].
+
+### [Katta](http://katta.sourceforge.net/)
+  - Katta serves distributed Lucene indexes in a grid environment.
+  - Zookeeper is used for node, master and index management in the grid [1].
+
+### [KeptCollections](https://github.com/anthonyu/KeptCollections)
+  - KeptCollections is a library of drop-in replacements for the data 
structures in the Java Collections framework.
+  - KeptCollections uses Apache ZooKeeper as a backing store, thus making its 
data structures distributed and scalable [1].
+
+### [Neo4j](https://neo4j.com/)
+  - Neo4j is a Graph Database. It's a disk based, ACID compliant transactional 
storage engine for big graphs and fast graph traversals,
+    using external indicies like Lucene/Solr for global searches.
+  - We use ZooKeeper in the Neo4j High Availability components for 
write-master election,
+    read slave coordination and other cool stuff. ZooKeeper is a great and 
focused project - we like! [1].
+
+### [Norbert](http://sna-projects.com/norbert)
+  - Partitioned routing and cluster management [1].
+
+### [spring-cloud-zookeeper](https://spring.io/projects/spring-cloud-zookeeper)
+  - Spring Cloud Zookeeper provides Apache Zookeeper integrations for Spring 
Boot apps through autoconfiguration
+    and binding to the Spring Environment and other Spring programming model 
idioms. With a few simple annotations
+    you can quickly enable and configure the common patterns inside your 
application and build large distributed systems with Zookeeper.
+    The patterns provided include Service Discovery and Distributed 
Configuration [38].
+
+### [spring-statemachine](https://projects.spring.io/spring-statemachine/)
+  - Spring Statemachine is a framework for application developers to use state 
machine concepts with Spring applications.
+  - Spring Statemachine can provide this feature:Distributed state machine 
based on a Zookeeper [31,32].
+
+### [spring-xd](https://projects.spring.io/spring-xd/)
+  - Spring XD is a unified, distributed, and extensible system for data 
ingestion, real time analytics, batch processing, and data export.
+    The project’s goal is to simplify the development of big data applications.
+  - ZooKeeper - Provides all runtime information for the XD cluster. Tracks 
running containers, in which containers modules
+    and jobs are deployed, stream definitions, deployment manifests, and the 
like [30,31].
+
+### [Talend 
ESB](http://www.talend.com/products-application-integration/application-integration-esb-se.php)
+  - Talend ESB is a versatile and flexible, enterprise service bus.
+  - It uses ZooKeeper as endpoint repository of both REST and SOAP Web 
services.
+    By using ZooKeeper Talend ESB is able to provide failover and load 
balancing capabilities in a very light-weight manner [1].
+
+### [redis_failover](https://github.com/ryanlecompte/redis_failover)
+  - Redis Failover is a ZooKeeper-based automatic master/slave failover 
solution for Ruby [1].
+
+
+## Apache Projects
+
+### [Apache Accumulo](https://accumulo.apache.org/)
+  - Accumulo is a distributed key/value store that provides expressive, 
cell-level access labels.
+  - Apache ZooKeeper plays a central role within the Accumulo architecture. 
Its quorum consistency model supports an overall
+    Accumulo architecture with no single points of failure. Beyond that, 
Accumulo leverages ZooKeeper to store and communication 
+    configuration information for users and tables, as well as operational 
states of processes and tablets [2].
+
+### [Apache Atlas](http://atlas.apache.org)
+  - Atlas is a scalable and extensible set of core foundational governance 
services – enabling enterprises to effectively and efficiently meet
+    their compliance requirements within Hadoop and allows integration with 
the whole enterprise data ecosystem.
+  - Atlas uses Zookeeper for coordination to provide redundancy and high 
availability of HBase,Kafka [31,35].
+
+### [Apache BookKeeper](https://bookkeeper.apache.org/)
+  - A scalable, fault-tolerant, and low-latency storage service optimized for 
real-time workloads.
+  - BookKeeper requires a metadata storage service to store information 
related to ledgers and available bookies. BookKeeper currently uses
+    ZooKeeper for this and other tasks [3].
+
+### [Apache CXF DOSGi](http://cxf.apache.org/distributed-osgi.html)
+  - Apache CXF is an open source services framework. CXF helps you build and 
develop services using frontend programming
+    APIs, like JAX-WS and JAX-RS. These services can speak a variety of 
protocols such as SOAP, XML/HTTP, RESTful HTTP,
+    or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
+  - The Distributed OSGi implementation at Apache CXF uses ZooKeeper for its 
Discovery functionality [4].
+
+### [Apache Drill](http://drill.apache.org/)
+  - Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage
+  - ZooKeeper maintains ephemeral cluster membership information. The 
Drillbits use ZooKeeper to find other Drillbits in the cluster,
+    and the client uses ZooKeeper to find Drillbits to submit a query [28].
+
+### [Apache Druid(Incubating)](https://druid.apache.org/)
+  - Apache Druid (incubating) is a high performance real-time analytics 
database.
+  - Apache Druid (incubating) uses Apache ZooKeeper (ZK) for management of 
current cluster state. The operations that happen over ZK are [27]:
+    - Coordinator leader election
+    - Segment "publishing" protocol from Historical and Realtime
+    - Segment load/drop protocol between Coordinator and Historical
+    - Overlord leader election
+    - Overlord and MiddleManager task management
+
+### [Apache Dubbo](http://dubbo.apache.org)
+  - Apache Dubbo is a high-performance, java based open source RPC framework.
+  - Zookeeper is used for service registration discovery and configuration 
management in Dubbo [6].
+
+### [Apache Flink](https://flink.apache.org/)
+  - Apache Flink is a framework and distributed processing engine for stateful 
computations over unbounded and bounded data streams.
+    Flink has been designed to run in all common cluster environments, perform 
computations at in-memory speed and at any scale.
+  - To enable JobManager High Availability you have to set the 
high-availability mode to zookeeper, configure a ZooKeeper quorum and set up a 
masters file with all JobManagers hosts and their web UI ports.
+    Flink leverages ZooKeeper for distributed coordination between all running 
JobManager instances. ZooKeeper is a separate service from Flink,
+    which provides highly reliable distributed coordination via leader 
election and light-weight consistent state storage [23].
+
+### [Apache Flume](https://flume.apache.org/)
+  - Flume is a distributed, reliable, and available service for efficiently 
collecting, aggregating, and moving large amounts
+    of log data. It has a simple and flexible architecture based on streaming 
data flows. It is robust and fault tolerant
+    with tunable reliability mechanisms and many failover and recovery 
mechanisms. It uses a simple extensible data model
+    that allows for online analytic application.
+  - Flume supports Agent configurations via Zookeeper. This is an experimental 
feature [5].
+
+### [Apache Fluo](https://fluo.apache.org/)
+  - Apache Fluo is a distributed processing system that lets users make 
incremental updates to large data sets.
+  - Apache Fluo is built on Apache Accumulo which uses Apache Zookeeper for 
consensus [31,37].
+
+### [Apache Griffin](https://griffin.apache.org/)
+  - Big Data Quality Solution For Batch and Streaming.
+  - Griffin uses Zookeeper for coordination to provide redundancy and high 
availability of Kafka [31,36].
+
+### [Apache Hadoop](http://hadoop.apache.org/)
+  - The Apache Hadoop software library is a framework that allows for the 
distributed processing of large data sets across
+    clusters of computers using simple programming models. It is designed to 
scale up from single servers to thousands of machines,
+    each offering local computation and storage. Rather than rely on hardware 
to deliver high-availability,
+    the library itself is designed to detect and handle failures at the 
application layer, so delivering a highly-available service on top of a cluster 
of computers, each of which may be prone to failures.
+  - The implementation of automatic HDFS failover relies on ZooKeeper for the 
following things:
+    - **Failure detection** - each of the NameNode machines in the cluster 
maintains a persistent session in ZooKeeper.
+      If the machine crashes, the ZooKeeper session will expire, notifying the 
other NameNode that a failover should be triggered.
+    - **Active NameNode election** - ZooKeeper provides a simple mechanism to 
exclusively elect a node as active. If the current active NameNode crashes,
+      another node may take a special exclusive lock in ZooKeeper indicating 
that it should become the next active.
+  - The ZKFailoverController (ZKFC) is a new component which is a ZooKeeper 
client which also monitors and manages the state of the NameNode.
+    Each of the machines which runs a NameNode also runs a ZKFC, and that ZKFC 
is responsible for:
+    - **Health monitoring** - the ZKFC pings its local NameNode on a periodic 
basis with a health-check command.
+      So long as the NameNode responds in a timely fashion with a healthy 
status, the ZKFC considers the node healthy.
+      If the node has crashed, frozen, or otherwise entered an unhealthy 
state, the health monitor will mark it as unhealthy.
+    - **ZooKeeper session management** - when the local NameNode is healthy, 
the ZKFC holds a session open in ZooKeeper.
+      If the local NameNode is active, it also holds a special “lock” znode. 
This lock uses ZooKeeper’s support for “ephemeral” nodes;
+      if the session expires, the lock node will be automatically deleted.
+    - **ZooKeeper-based election** - if the local NameNode is healthy, and the 
ZKFC sees that no other node currently holds the lock znode,
+      it will itself try to acquire the lock. If it succeeds, then it has “won 
the election”, and is responsible for running a failover to make its local 
NameNode active.
+      The failover process is similar to the manual failover described above: 
first, the previous active is fenced if necessary,
+      and then the local NameNode transitions to active state [7].
+
+### [Apache HBase](https://hbase.apache.org/)
+  - HBase is the Hadoop database. It's an open-source, distributed, 
column-oriented store model.
+  - HBase uses ZooKeeper for master election, server lease management, 
bootstrapping, and coordination between servers.
+    A distributed Apache HBase installation depends on a running ZooKeeper 
cluster. All participating nodes and clients
+    need to be able to access the running ZooKeeper ensemble [8].
+  - As you can see, ZooKeeper is a fundamental part of HBase. All operations 
that require coordination, such as Regions
+    assignment, Master-Failover, replication, and snapshots, are built on 
ZooKeeper [20].
+
+### [Apache Helix](http://helix.apache.org/)
+  - A cluster management framework for partitioned and replicated distributed 
resources.
+  - We need a distributed store to maintain the state of the cluster and a 
notification system to notify if there is any change in the cluster state.
+    Helix uses Apache ZooKeeper to achieve this functionality [21].
+    Zookeeper provides:
+    - A way to represent PERSISTENT state which remains until its deleted
+    - A way to represent TRANSIENT/EPHEMERAL state which vanishes when the 
process that created the state dies
+    - A notification mechanism when there is a change in PERSISTENT and 
EPHEMERAL state
+
+### [Apache Hive](https://hive.apache.org)
+  - The Apache Hive data warehouse software facilitates reading, writing, and 
managing large datasets residing in distributed
+    storage using SQL. Structure can be projected onto data already in 
storage. A command line tool and JDBC driver are provided to connect users to 
Hive.
+  - Hive has been using ZooKeeper as distributed lock manager to support 
concurrency in HiveServer2 [25,26].
+
+### [Apache Ignite](https://ignite.apache.org/)
+  - Ignite is a memory-centric distributed database, caching, and processing 
platform for
+    transactional, analytical, and streaming workloads delivering in-memory 
speeds at petabyte scale
+  - Apache Ignite discovery mechanism goes with a ZooKeeper implementations 
which allows scaling Ignite clusters to 100s and 1000s of nodes
+    preserving linear scalability and performance [31,34].​
+
+### [Apache James Mailbox](http://james.apache.org/mailbox/)
+  - The Apache James Mailbox is a library providing a flexible Mailbox storage 
accessible by mail protocols
+    (IMAP4, POP3, SMTP,...) and other protocols.
+  - Uses Zookeeper and Curator Framework for generating distributed unique 
ID's [31].
+
+### [Apache Kafka](https://kafka.apache.org/)
+  - Kafka is a distributed publish/subscribe messaging system
+  - Apache Kafka relies on ZooKeeper for the following things:
+    - **Controller election**
+    The controller is one of the most important broking entity in a Kafka 
ecosystem, and it also has the responsibility
+    to maintain the leader-follower relationship across all the partitions. If 
a node by some reason is shutting down,
+    it’s the controller’s responsibility to tell all the replicas to act as 
partition leaders in order to fulfill the
+    duties of the partition leaders on the node that is about to fail. So, 
whenever a node shuts down, a new controller
+    can be elected and it can also be made sure that at any given time, there 
is only one controller and all the follower nodes have agreed on that.
+    - **Configuration Of Topics**
+    The configuration regarding all the topics including the list of existing 
topics, the number of partitions for each topic,
+    the location of all the replicas, list of configuration overrides for all 
topics and which node is the preferred leader, etc.
+    - **Access control lists**
+    Access control lists or ACLs for all the topics are also maintained within 
Zookeeper.
+    - **Membership of the cluster**
+    Zookeeper also maintains a list of all the brokers that are functioning at 
any given moment and are a part of the cluster [9].
+
+### [Apache Kylin](http://kylin.apache.org/)
+  - Apache Kylin is an open source Distributed Analytics Engine designed to 
provide SQL interface and multi-dimensional analysis (OLAP) on Hadoop/Spark 
supporting extremely large datasets,
+    original contributed from eBay Inc.
+  - Apache Kylin leverages Zookeeper for job coordination [31,33].
+
+### [Apache Mesos](http://mesos.apache.org/)
+  - Apache Mesos abstracts CPU, memory, storage, and other compute resources 
away from machines (physical or virtual),
+    enabling fault-tolerant and elastic distributed systems to easily be built 
and run effectively.
+  - Mesos has a high-availability mode that uses multiple Mesos masters: one 
active master (called the leader or leading master)
+    and several backups in case it fails. The masters elect the leader, with 
Apache ZooKeeper both coordinating the election
+    and handling leader detection by masters, agents, and scheduler drivers 
[10].
+
+### [Apache Oozie](https://oozie.apache.org)
+  - Oozie is a workflow scheduler system to manage Apache Hadoop jobs.
+  - the Oozie servers use it for coordinating access to the database and 
communicating with each other. In order to have full HA,
+    there should be at least 3 ZooKeeper servers [29].
+
+### [Apache Pulsar](https://pulsar.apache.org)
+  - Apache Pulsar is an open-source distributed pub-sub messaging system 
originally created at Yahoo and now part of the Apache Software Foundation
+  - Pulsar uses Apache Zookeeper for metadata storage, cluster configuration, 
and coordination. In a Pulsar instance:
+    - A configuration store quorum stores configuration for tenants, 
namespaces, and other entities that need to be globally consistent.
+    - Each cluster has its own local ZooKeeper ensemble that stores 
cluster-specific configuration and coordination such as ownership metadata,
+      broker load reports, BookKeeper ledger metadata, and more [24].
+
+### [Apache Solr](https://lucene.apache.org/solr/)
+  - Solr is the popular, blazing-fast, open source enterprise search platform 
built on Apache Lucene.
+  - In the "Cloud" edition (v4.x and up) of enterprise search engine Apache 
Solr, ZooKeeper is used for configuration,
+    leader election and more [12,13].
+
+### [Apache Spark](https://spark.apache.org/)
+  - Apache Spark is a unified analytics engine for large-scale data processing.
+  - Utilizing ZooKeeper to provide leader election and some state storage, you 
can launch multiple Masters in your cluster connected to the same ZooKeeper 
instance.
+    One will be elected “leader” and the others will remain in standby mode. 
If the current leader dies, another Master will be elected,
+    recover the old Master’s state, and then resume scheduling [14].
+
+### [Apache Storm](http://storm.apache.org)
+  - Apache Storm is a free and open source distributed realtime computation 
system. Apache Storm makes it easy to reliably
+    process unbounded streams of data, doing for realtime processing what 
Hadoop did for batch processing.
+    Apache Storm is simple, can be used with any programming language, and is 
a lot of fun to use!
+  - Storm uses Zookeeper for coordinating the cluster [22].
+
+
+## Companies
+
+### [AGETO](http://www.ageto.de/)
+ - The AGETO RnD team uses ZooKeeper in a variety of internal as well as 
external consulting projects [1].
+
+### [Benipal Technologies](http://www.benipaltechnologies.com/)
+ - ZooKeeper is used for internal application development with Solr and Hadoop 
with Hbase [1].
+
+### [Box](http://box.net/)
+ - Box uses ZooKeeper for service discovery, service coordination, Solr and 
Hadoop support, etc [1].
+
+### [Deepdyve](http://www.deepdyve.com/)
+ - We do search for research and provide access to high quality content using 
advanced search technologies Zookeeper is used to
+   manage server state, control index deployment and a myriad other tasks [1].
+
+### [Facebook](https://www.facebook.com/)
+ - Facebook uses the Zeus ([17,18]) for configuration management which is a 
forked version of ZooKeeper, with many scalability
+   and performance en- hancements in order to work at the Facebook scale.
+   It runs a consensus protocol among servers distributed across mul- tiple 
regions for resilience. If the leader fails,
+   a follower is converted into a new leader.
+
+### [Idium Portal](http://www.idium.no/no/idium_portal/)
+ - Idium Portal is a hosted web-publishing system delivered by Norwegian 
company, Idium AS.
+ - ZooKeeper is used for cluster messaging, service bootstrapping, and service 
coordination [1].
+
+### [Makara](http://www.makara.com/)
+ - Using ZooKeeper on 2-node cluster on VMware workstation, Amazon EC2, Zen
+ - Using zkpython
+ - Looking into expanding into 100 node cluster [1].
+
+### [Midokura](http://www.midokura.com/)
+ - We do virtualized networking for the cloud computing era. We use ZooKeeper 
for various aspects of our distributed control plane [1].
+
+### [Pinterest](https://www.pinterest.com/)
+ - Pinterest uses the ZooKeeper for Service discovery and dynamic 
configuration.Like many large scale web sites, Pinterest’s infrastructure 
consists of servers that communicate with
+   backend services composed of a number of individual servers for managing 
load and fault tolerance. Ideally, we’d like the configuration to reflect only 
the active hosts,
+   so clients don’t need to deal with bad hosts as often. ZooKeeper provides a 
well known pattern to solve this problem [19].
+
+### [Rackspace](http://www.rackspace.com/email_hosting)
+ - The Email & Apps team uses ZooKeeper to coordinate sharding and 
responsibility changes in a distributed e-mail client
+   that pulls and indexes data for search. ZooKeeper also provides distributed 
locking for connections to prevent a cluster from overwhelming servers [1].
+
+### [Sematext](http://sematext.com/)
+ - Uses ZooKeeper in SPM (which includes ZooKeeper monitoring component, 
too!), Search Analytics, and Logsene [1].
+
+### [Tubemogul](http://tubemogul.com/)
+ - Uses ZooKeeper for leader election, configuration management, locking, 
group membership [1].
+
+### [Twitter](https://twitter.com/)
+ - ZooKeeper is used at Twitter as the source of truth for storing critical 
metadata. It serves as a coordination kernel to
+   provide distributed coordination services, such as leader election and 
distributed locking.
+   Some concrete examples of ZooKeeper in action include [15,16]:
+   - ZooKeeper is used to store service registry, which is used by Twitter’s 
naming service for service discovery.
+   - Manhattan (Twitter’s in-house key-value database), Nighthawk (sharded 
Redis), and Blobstore (in-house photo and video storage),
+     stores its cluster topology information in ZooKeeper.
+   - EventBus, Twitter’s pub-sub messaging system, stores critical metadata in 
ZooKeeper and uses ZooKeeper for leader election.
+   - Mesos, Twitter’s compute platform, uses ZooKeeper for leader election.
+
+### [Vast.com](http://www.vast.com/)
+ - Used internally as a part of sharding services, distributed synchronization 
of data/index updates, configuration management and failover support [1].
+
+### [Wealthfront](http://wealthfront.com/)
+ - Wealthfront uses ZooKeeper for service discovery, leader election and 
distributed locking among its many backend services.
+   ZK is an essential part of Wealthfront's continuous [deployment 
infrastructure](http://eng.wealthfront.com/2010/05/02/deployment-infrastructure-for-continuous-deployment/)
 [1].
+
+### [Yahoo!](http://www.yahoo.com/)
+ - ZooKeeper is used for a myriad of services inside Yahoo! for doing leader 
election, configuration management, sharding, locking, group membership etc [1].
+
+### [Zynga](http://www.zynga.com/)
+ - ZooKeeper at Zynga is used for a variety of services including 
configuration management, leader election, sharding and more [1].
+
+
+#### References
+- [1] https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
+- [2] https://www.youtube.com/watch?v=Ew53T6h9oRw
+- [3] 
https://bookkeeper.apache.org/docs/4.7.3/getting-started/concepts/#ledgers
+- [4] http://cxf.apache.org/dosgi-discovery-demo-page.html
+- [5] https://flume.apache.org/FlumeUserGuide.html
+- [6] http://dubbo.apache.org/en-us/blog/dubbo-zk.html
+- [7] 
https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html
+- [8] https://hbase.apache.org/book.html#zookeeper
+- [9] 
https://www.cloudkarafka.com/blog/2018-07-04-cloudkarafka_what_is_zookeeper.html
+- [10] http://mesos.apache.org/documentation/latest/high-availability/
+- [11] http://incubator.apache.org/projects/s4.html
+- [12] 
https://lucene.apache.org/solr/guide/6_6/using-zookeeper-to-manage-configuration-files.html#UsingZooKeepertoManageConfigurationFiles-StartupBootstrap
+- [13] 
https://lucene.apache.org/solr/guide/6_6/setting-up-an-external-zookeeper-ensemble.html
+- [14] 
https://spark.apache.org/docs/latest/spark-standalone.html#standby-masters-with-zookeeper
+- [15] 
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/zookeeper-at-twitter.html
+- [16] 
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/dynamic-configuration-at-twitter.html
+- [17] TANG, C., KOOBURAT, T., VENKATACHALAM, P.,CHANDER, A., WEN, Z., 
NARAYANAN, A., DOWELL,P., AND KARL, R. Holistic Configuration Management
+       at Facebook. In Proceedings of the 25th Symposium on Operating System 
Principles (SOSP’15) (Monterey, CA,USA, Oct. 2015).
+- [18] https://www.youtube.com/watch?v=SeZV373gUZc
+- [19] 
https://medium.com/@Pinterest_Engineering/zookeeper-resilience-at-pinterest-adfd8acf2a6b
+- [20] https://blog.cloudera.com/what-are-hbase-znodes/
+- [21] https://helix.apache.org/Architecture.html
+- [22] http://storm.apache.org/releases/current/Setting-up-a-Storm-cluster.html
+- [23] 
https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/jobmanager_high_availability.html
+- [24] 
https://pulsar.apache.org/docs/en/concepts-architecture-overview/#metadata-store
+- [25] https://cwiki.apache.org/confluence/display/Hive/Locking
+- [26] *ZooKeeperHiveLockManager* implementation in the 
[hive](https://github.com/apache/hive/) code base
+- [27] https://druid.apache.org/docs/latest/dependencies/zookeeper.html
+- [28] https://mapr.com/blog/apache-drill-architecture-ultimate-guide/
+- [29] https://oozie.apache.org/docs/4.1.0/AG_Install.html
+- [30] https://docs.spring.io/spring-xd/docs/current/reference/html/
+- [31] https://cwiki.apache.org/confluence/display/CURATOR/Powered+By
+- [32] https://projects.spring.io/spring-statemachine/
+- [33] https://www.tigeranalytics.com/blog/apache-kylin-architecture/
+- [34] https://apacheignite.readme.io/docs/cluster-discovery
+- [35] http://atlas.apache.org/HighAvailability.html
+- [36] http://griffin.apache.org/docs/usecases.html
+- [37] https://fluo.apache.org/
+- [38] https://spring.io/projects/spring-cloud-zookeeper
\ No newline at end of file

Reply via email to