Github user kishoreg commented on a diff in the pull request:

    https://github.com/apache/helix/pull/266#discussion_r226866986
  
    --- Diff: designs/aggregated-cluster-view/design.md ---
    @@ -0,0 +1,353 @@
    +Aggregated Cluster View Design
    +==============================
    +
    +## Introduction
    +Currently Helix organize information by cluster - clusters are autonomous 
entities that holds resource / node information.
    +In real practice, a helix client might need to access aggregated 
information of helix clusters from different data center regions for management 
or coordination purpose.
    +This design proposes a service in Helix ecosystem for clients to retrieve 
cross-datacenter information in a more efficient way. 
    +
    +
    +## Problem Statement
    +We identified a couple of use cases for accessing cross datacenter 
information. [Ambry](https://github.com/linkedin/ambry) is one of them.
    +Here is a simplified example: some service has Helix cluster "MyDBCluster" 
in 3 data centers respectively, and each cluster has a resource named "MyDB".
    +To federate this "MyDBCluster", current usage is to have each federation 
client (usually Helix spectator) to connect to metadata store endpoints in all 
fabrics to retrieve information and aggregate them locally.
    +Such usge has the following drawbacks:
    +
    +* As there are a lot of clients in each DC that need cross-dc information, 
there are a lot of expensive cross-dc traffics
    +* Every client needs to know information about metadata stores in all 
fabrics which
    +  * Increases operational cost when these information changes
    +  * Increases security concern by allowing cross data center traffic
    +
    +To solve the problem, we have the following requirements:
    +* Clients should still be able to GET/WATCH aggregated information from 1 
or more metadata stores (likely but not necessarily from different data centers)
    +* Cross DC traffic should be minimized
    +* Reduce amount of information about data center that a client needs
    +* Agility of information aggregation can be configured
    +* Currently, it's good enough to have only LiveInstance, InstanceConfig, 
and ExternalView aggregated
    +
    +
    +
    +
    +
    +## Proposed Design
    +
    +To provide aggregated cluster view, the solution I'm proposing is to add a 
special type of cluster, i.e. **View Cluster**.
    +View cluster leverages current Helix semantics to store aggregated 
information of various **Source Clusters**.
    +There will be another micro service (Helix View Aggregator) running, 
fetching information from clusters (likely from other data centers) to be 
aggregated, and store then to the view cluster.
    --- End diff --
    
    why cant we just set up zookeeper observers?


---

Reply via email to