SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
Building	
  distributed	
  systems	
  using	
  
                       Helix	
  




                h?p://helix.incubator.apache.org	
  
                	
  Apache	
  IncubaGon	
  Oct,	
  2012	
  	
  
                @apachehelix	
  



Kishore	
  Gopalakrishna,	
  @kishoreg1980
h?p://www.linkedin.com/in/kgopalak	
  
	
                                                                1	
  
Outline	
  
•  Introduc)on	
  
•  Architecture	
  
•  How	
  to	
  use	
  Helix	
  
•  Tools	
  
•  Helix	
  usage	
  
	
  


                                          2	
  
Examples	
  of	
  distributed	
  data	
  systems	
  




                                                       3	
  
Lifecycle	
  

                                                        Cluster	
  
                                     Fault	
            Expansion	
  
                                     tolerance	
                •  Thro?le	
  data	
  movement	
  
                      MulG	
                                    •  Re-­‐distribuGon	
  
                                        •  ReplicaGon	
  
                      node	
  
                                        •  Fault	
  detecGon	
  
                                        •  Recovery	
  
         Single	
  
         Node	
  
                      •  ParGGoning	
  
                      •  Discovery	
  
                      •  Co-­‐locaGon	
  



                                                                                               4	
  
Typical	
  Architecture	
  



App.	
     App.	
               App.	
     App.	
  


                                                      Cluster	
  
                      Network	
  
                                                      manager	
  


Node	
     Node	
              Node	
      Node	
  




                                                                    5	
  
 	
  
                          Distributed	
  search	
  service	
  
           INDEX	
  SHARD	
  
                P.1	
        P.2	
                                        P.5	
     P.6	
  
                                             P.3	
       P.4	
  


                P.3	
        P.4	
                                        P.1	
     P.2	
  
                                             P.5	
       P.6	
  


                                                                   REPLICA	
  
                      Node	
  1	
                Node	
  2	
             Node	
  3	
  

               ParGGon	
  
                                         Fault	
  tolerance	
             ElasGcity	
  
              management	
  
           • MulGple	
  replicas	
     • Fault	
  detecGon	
       • re-­‐distribute	
  
           • Even	
                    • Auto	
  create	
            parGGons	
  
             distribuGon	
               replicas	
                • Minimize	
  
           • Rack	
  aware	
           • Controlled	
                movement	
  
             placement	
                 creaGon	
  of	
           • Thro?le	
  data	
  
                                         replicas	
  	
              movement	
  
 	
  
                                           Distributed	
  data	
  store	
  
                   P.1	
        P.2	
        P.3	
       P.5	
          P.6	
       P.7	
       P.9	
          P.10	
       P.11	
  


                   P.4	
        P.5	
        P.6	
       P.8	
          P.1	
       P.2	
       P.12	
         P.3	
        P.4	
  
                                                                        P.1	
  

                   P.9	
        P.10	
                   P.11	
         P.12	
                  P.7	
          P.8	
  
                                                                                                                                       SLAVE	
  
MASTER	
                     Node	
  1	
                            Node	
  2	
                             Node	
  3	
  

                       ParGGon	
  
                                                         Fault	
  tolerance	
                              ElasGcity	
  
                      management	
  
                 • MulGple	
  replicas	
               • Fault	
  detecGon	
                  • Minimize	
  
                 • 1	
  designated	
                   • Promote	
  slave	
                     downGme	
  
                   master	
                              to	
  master	
                       • Minimize	
  data	
  
                 • Even	
                              • Even	
                                 movement	
  
                   distribuGon	
                         distribuGon	
                        • Thro?le	
  data	
  
                                                       • No	
  SPOF	
                           movement	
  
Message	
  consumer	
  group	
  
•  Similar	
  to	
  Message	
  groups	
  in	
  AcGveMQ	
  
   –  guaranteed	
  ordering	
  of	
  the	
  processing	
  of	
  related	
  messages	
  
      across	
  a	
  single	
  queue	
  
   –  load	
  balancing	
  of	
  the	
  processing	
  of	
  messages	
  across	
  
      mulGple	
  consumers	
  
   –  high	
  availability	
  /	
  auto-­‐failover	
  to	
  other	
  consumers	
  if	
  a	
  
      JVM	
  goes	
  down	
  
•  Applicable	
  to	
  many	
  messaging	
  pub/sub	
  
     systems	
  like	
  kada,	
  rabbitmq	
  etc	
  
	
  
                                                                                           8	
  
Message	
  consumer	
  group	
  

ASSIGNMENT	
       SCALING	
     FAULT	
  TOLERANCE	
  




                                                          9	
  
Zookeeper	
  provides	
  low	
  level	
  primiGves.	
  	
     We	
  need	
  high	
  level	
  primiGves.	
  
                                                              	
  


                                                                       ApplicaGon	
  
•  File	
  system	
                                                                                     •      Node	
  
•  Lock	
                                                                                               •      ParGGon	
  
•  Ephemeral	
                                                                                          •      Replica	
  
                                                                                                        •      State	
  
                                                                                                        •      TransiGon	
  
                        ApplicaGon	
                                   Framework	
                      	
  




                                                                       Consensus	
  
                         Zookeeper	
  
                                                                        System	
  


                                                                                                                      10	
  
11	
  
Outline	
  
•  IntroducGon	
  
•  Architecture	
  
•  How	
  to	
  use	
  Helix	
  
•  Tools	
  
•  Helix	
  usage	
  



                                          12	
  
Terminologies 	
  	
  
Node	
          A	
  single	
  machine	
  

Cluster	
       Set	
  of	
  Nodes	
  

Resource	
      A	
  logical	
  en/ty	
  e.g.	
  database,	
  index,	
  task	
  

ParGGon	
       Subset	
  of	
  the	
  resource.	
  

Replica	
       Copy	
  of	
  a	
  parGGon	
  

State	
         Status	
  of	
  a	
  parGGon	
  replica,	
  e.g	
  Master,	
  Slave	
  

TransiGon	
     AcGon	
  that	
  lets	
  replicas	
  change	
  status	
  e.g	
  Slave	
  -­‐>	
  Master	
  




                                                                                                              13	
  
Core	
  concept	
  
            State	
  Machine	
                                        Constraints	
                                      ObjecGves	
  

• States	
                                               • States	
                                            • ParGGon	
  Placement	
  
  • Offline,	
  Slave,	
  Master	
                           • M=1,	
  S=2	
                                     • Failure	
  semanGcs	
  
• TransiGon	
                                            • TransiGons	
  
  • O-­‐>S,	
  S-­‐>M,S-­‐>M,	
  M-­‐>S	
                  • concurrent(0-­‐>S)	
  <	
  5	
  	
  




                                                                   COUNT=2             minimize(maxnj∈N	
  S(nj)	
  )
                                                 t1≤5
                                                                        S	
  
                                                        t1                                  t2

                                                              t3                  t4
                                              O	
                                                   M	
     COUNT=1     minimize(maxnj∈N	
  M(nj)	
  )




                                                                                                                                                         14	
  
Helix	
  soluGon	
  
Message	
  consumer	
  group	
          Distributed	
  search	
  


    Start	
  consumpGon	
  
                      MAX=1	
  
                                                                 MAX	
  per	
  node=5	
  


 Offline	
               Online	
  


     Stop	
  consumpGon	
  

                                                              MAX=3	
  
                                                         (number	
  of	
  replicas)	
  
                                                                                          15	
  
IDEALSTATE	
  

                                                      P1	
   P2	
   P3	
  
 ConfiguraGon	
           Constraints	
  

• 3	
  nodes	
        • 1	
  Master	
  
• 3	
  parGGons	
  
• 2	
  replicas	
  
                      • 1	
  Slave	
  
                      • Even	
  
                                                      N1:M	
     N2:M	
     N3:M	
  
• StateMachine	
        distribuGon	
  


                                   Replica	
  
                                 placement	
  
                                                      N2:S	
     N3:S	
     N1:S	
  
                                    Replica	
  	
  
                                     State	
  

                                                                                   16	
  
CURRENT	
  STATE	
  


N1	
     •  P1:OFFLINE	
  
         •  P3:OFFLINE	
  


N2	
     •  P2:MASTER	
  
         •  P1:MASTER	
  


N3	
     •  P3:MASTER	
  
          •  P2:SLAVE	
  




                             17	
  
EXTERNAL	
  VIEW	
  


P1	
   P2	
   P3	
  
N1:O	
     N2:M	
     N3:M	
  


N2:M	
     N3:S	
     N1:O	
  




                                 18	
  
Helix	
  Based	
  System	
  Roles	
  
                                                                                                                          PARTICIPANT
  IDEAL STATE

                                                                                                                          SPECTATOR
                                                Controller


                                                                                Parition routing
                                                                                      logic
CURRENT STATE
                                    RESPONSE            COMMAND




P.1	
        P.2	
        P.3	
            P.5	
          P.6	
       P.7	
         P.9	
         P.10	
       P.11	
  


P.4	
        P.5	
        P.6	
            P.8	
          P.1	
       P.2	
         P.12	
        P.3	
        P.4	
  
                                                          P.1	
  

P.9	
        P.10	
                        P.11	
         P.12	
                    P.7	
         P.8	
  



          Node	
  1	
                                 Node	
  2	
                              Node	
  3	
  

                                                                                                                                19	
  
Logical	
  deployment	
  




                            20	
  
Outline	
  
•  IntroducGon	
  
•  Architecture	
  
•  How	
  to	
  use	
  Helix	
  
•  Tools	
  
•  Helix	
  usage	
  
	
  
	
  
                                         21	
  
Helix	
  based	
  soluGon	
  
1.  Define	
  
	
  
2.  Configure	
  
	
  
3.  Run	
  


                                          22	
  
Define:	
  State	
  model	
  definiGon	
  
•  States	
                             •  e.g.	
  MasterSlave	
  
    –  All	
  possible	
  states	
  
    –  Priority	
  
•  TransiGons	
  
    –  Legal	
  transiGons	
                          S	
  

    –  Priority	
  
•  Applicable	
  to	
  each	
             O	
                        M	
  
   parGGon	
  of	
  a	
  resource	
  


                                                                             23	
  
Define:	
  state	
  model	
  
    Builder = new StateModelDefinition.Builder(“MASTERSLAVE”);!
    // Add states and their rank to indicate priority. !
    builder.addState(MASTER, 1);!
    builder.addState(SLAVE, 2);!
    builder.addState(OFFLINE);!
!
    //Set the initial state when the node starts!
    builder.initialState(OFFLINE);	
  



    //Add transitions between the states.!
    builder.addTransition(OFFLINE, SLAVE);!
    builder.addTransition(SLAVE, OFFLINE);!
    builder.addTransition(SLAVE, MASTER);!
    builder.addTransition(MASTER, SLAVE);!
    !



                                                                  24	
  
Define:	
  constraints	
  
                 State	
           Transi)on	
  
ParGGon	
               Y	
                  Y	
  
Resource	
               -­‐	
               Y	
  
Node	
                  Y	
                  Y	
  
                                                             COUNT=2
Cluster	
                -­‐	
               Y	
  
                                                               S	
  


                                                                               COUNT=1
                 State	
           Transi)on	
       O	
               M	
  
   ParGGon	
      M=1,S=2	
               -­‐	
  




                                                                                   25	
  
Define:constraints	
  

           // static constraint!
           builder.upperBound(MASTER, 1);!
!
!
           // dynamic constraint!
           builder.dynamicUpperBound(SLAVE, "R");!
!
!
       !
           // Unconstrained !
           builder.upperBound(OFFLINE, -1;	
  
	
  




                                                     26	
  
Define:	
  parGcipant	
  plug-­‐in	
  code	
  




                                                27	
  
Step	
  2:	
  configure	
  
helix-­‐admin	
  –zkSvr	
  <zkAddress>	
  

CREATE	
  CLUSTER	
  

-­‐-­‐addCluster	
  <clusterName>	
  

ADD	
  NODE	
  

-­‐-­‐addNode	
  <clusterName	
  instanceId(host:port)>	
  	
  

CONFIGURE	
  RESOURCE	
  	
  

-­‐-­‐addResource	
  <clusterName	
  resourceName	
  par;;ons	
  statemodel>	
  	
  
REBALANCE	
  èSET	
  IDEALSTATE	
  

-­‐-­‐rebalance	
  <clusterName	
  resourceName	
  replicas>	
  
                                                                                       28	
  
zookeeper	
  view	
  
                 IDEALSTATE	
  




                                  29	
  
Step	
  3:	
  Run	
  
START	
  CONTROLLER	
  
      run-­‐helix-­‐controller	
  	
  -­‐zkSvr	
  localhost:2181	
  –cluster	
  MyCluster	
  

START	
  PARTICIPANT	
  




                                                                                                30	
  
zookeeper	
  view	
  




                        31	
  
Znode	
  content	
  
CURRENT	
  STATE	
               EXTERNAL	
  VIEW	
  




                                                        32	
  
Spectator	
  Plug-­‐in	
  code	
  




                                     33	
  
Helix	
  ExecuGon	
  modes	
  




                                 34	
  
IDEALSTATE	
  

                                                  P1	
   P2	
   P3	
  
 ConfiguraGon	
           Constraints	
  
                                                  N1:M	
     N2:M	
            N3:M	
  
• 3	
  nodes	
        • 1	
  Master	
  
• 3	
  parGGons	
     • 1	
  Slave	
  
• 2	
  replicas	
     • Even	
  
• StateMachine	
        distribuGon	
  
                                                  N2:S	
     N3:S	
             N1:S	
  


                                    Replica	
                           Replica	
  	
  
                                  placement	
                            State	
  



                                                                                           35	
  
ExecuGon	
  modes	
  
•  Who	
  controls	
  what	
  	
  
                            AUTO	
          AUTO	
      CUSTOM	
  
                            REBALANCE	
  

        Replica	
           Helix	
         App	
       App	
  
        placement	
  

        Replica	
  	
       Helix	
         Helix	
     App	
  
        State	
  




                                                                     36	
  
Auto	
  rebalance	
  v/s	
  Auto	
  
AUTO	
  REBALANCE	
          AUTO	
  




                                                  37	
  
In	
  acGon	
  	
  
                  Auto	
  rebalance	
                                                Auto	
  	
  
            MasterSlave	
  p=3	
  r=2	
  N=3	
                              MasterSlave	
  p=3	
  r=2	
  N=3	
  
Node1	
                Node2	
                 Node3	
           Node	
  1	
           Node	
  2	
           Node	
  3	
  
P1:M	
                 P2:M	
                  P3:M	
            P1:M	
                P2:M	
                P3:M	
  
P2:S	
                 P3:S	
                  P1:S	
            P2:S	
                P3:S	
                P1:S	
  
      On	
  failure:	
  Auto	
  create	
  replica	
  	
        On	
  failure:	
  Only	
  change	
  states	
  to	
  saGsfy	
  
      and	
  assign	
  state	
                                 constraint	
  
 Node	
  1	
            Node	
  2	
            Node	
  3	
        Node	
  1	
          Node	
  2	
           Node	
  3	
  
 P1:O	
                 P2:M	
                 P3:M	
             P1:M	
               P2:M	
                P3:M	
  
 P2:O	
                 P3:S	
                 P1:S	
             P2:S	
               P3:S	
                P1:M	
  
                        P1:M	
                 P2:S	
  



                                                                                                                                38	
  
Custom	
  mode:	
  example	
  




                                 39	
  
Custom	
  mode:	
  handling	
  failure	
  
™  Custom	
  code	
  invoker	
  
     ™      Code	
  that	
  lives	
  on	
  all	
  nodes,	
  but	
  acGve	
  in	
  one	
  place	
  
     ™      Invoked	
  when	
  node	
  joins/leaves	
  the	
  cluster	
  
     ™      Computes	
  new	
  idealstate	
  
     ™      Helix	
  controller	
  fires	
  the	
  transiGon	
  without	
  viola)ng	
  constraints	
  



  P1	
   P2	
   P3	
                   P1	
   P2	
   P3	
                 Transi)ons	
  
                                                                          1	
       N1	
   MàS	
  
                                                                          2	
       N2	
   Sà	
  M	
  
  N1:M	
     N2:M	
      N3:M	
         N1:S	
     N2:M	
     N3:M	
  
                                                                         1	
  &	
  2	
  in	
  parallel	
  violate	
  single	
  
                                                                         master	
  constraint	
  

  N2:S	
      N3:S	
     N1:S	
        N2:M	
      N3:S	
     N1:S	
  
                                                                          Helix	
  sends	
  2	
  aser	
  1	
  is	
  finished	
  
                                                                                                                            40	
  
Outline	
  
•  IntroducGon	
  
•  Architecture	
  
•  How	
  to	
  use	
  Helix	
  
•  Tools	
  
•  Helix	
  usage	
  	
  



                                          41	
  
Tools	
  
•  Chaos	
  monkey	
  
•  Data	
  driven	
  tesGng	
  and	
  debugging	
  
•  Rolling	
  upgrade	
  
•  On	
  demand	
  task	
  scheduling	
  and	
  intra-­‐cluster	
  
   messaging	
  
•  Health	
  monitoring	
  and	
  alerts	
  



                                                                      42	
  
Data	
  driven	
  tesGng	
  
•  Instrument	
  –	
  
       •  	
  Zookeeper,	
  controller,	
  parGcipant	
  logs	
  
•  Simulate	
  –	
  Chaos	
  monkey	
  
•  Analyze	
  –	
  Invariants	
  are	
  
       •  Respect	
  state	
  transiGon	
  constraints	
  
       •  Respect	
  state	
  count	
  constraints	
  
       •  And	
  so	
  on	
  
•  Debugging	
  made	
  easy	
  
       •  Reproduce	
  exact	
  sequence	
  of	
  events	
  	
  
	
  
                                                                    43	
  
Structured	
  Log	
  File	
  -­‐	
  sample	
  
 timestamp      partition     instanceName                   sessionId                  state

1323312236368   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236426   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236530   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236530   TestDB_91    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236561   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   SLAVE

1323312236561   TestDB_91    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236685   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   SLAVE

1323312236685   TestDB_91    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236685   TestDB_60    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236719   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   SLAVE

1323312236719   TestDB_91    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   SLAVE

1323312236719   TestDB_60    express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   OFFLINE

1323312236814   TestDB_123   express1-md_16918   ef172fe9-09ca-4d77b05e-15a414478ccc   SLAVE
No	
  more	
  than	
  R=2	
  slaves	
  
Time     State    Number Slaves         Instance
42632   OFFLINE        0          10.117.58.247_12918
42796   SLAVE          1          10.117.58.247_12918
43124   OFFLINE        1          10.202.187.155_12918
43131   OFFLINE        1          10.220.225.153_12918
43275   SLAVE          2          10.220.225.153_12918
43323   SLAVE          3          10.202.187.155_12918
85795   MASTER         2          10.220.225.153_12918
How	
  long	
  was	
  it	
  out	
  of	
  whack?	
  
Number	
  of	
  Slaves	
            Time	
  	
                          Percentage	
  
0	
                                 1082319	
                           0.5	
  
1	
                                 35578388	
                          16.46	
  
2	
                                 179417802	
                         82.99	
  
3	
                                 118863	
                            0.05	
  


              83%	
  of	
  the	
  Gme,	
  there	
  were	
  2	
  slaves	
  to	
  a	
  parGGon	
  
              93%	
  of	
  the	
  Gme,	
  there	
  was	
  1	
  master	
  to	
  a	
  parGGon	
  

Number	
  of	
  Masters	
           Time	
                              Percentage	
  
                  0                                15490456                        7.164960359
                  1                                200706916                       92.83503964
Invariant	
  2:	
  State	
  TransiGons	
  
 FROM	
            TO	
            COUNT	
  

MASTER           SLAVE               55
OFFLINE        DROPPED                0
OFFLINE          SLAVE              298
SLAVE           MASTER              155
SLAVE           OFFLINE               0
Outline	
  
•  IntroducGon	
  
•  Architecture	
  
•  How	
  to	
  use	
  Helix	
  
•  Tools	
  
•  Helix	
  usage	
  	
  



                                          48	
  
Helix	
  usage	
  at	
  LinkedIn	
  
	
  




       	
     Espresso	
  




                                                           49	
  
In	
  flight	
  
•  Apache	
  S4	
  
    –  ParGGoning,	
  co-­‐locaGon	
  
    –  Dynamic	
  cluster	
  expansion	
  
•  Archiva	
  
    –  ParGGoned	
  replicated	
  file	
  store	
  
    –  Rsync	
  based	
  replicaGon	
  
•  Others	
  in	
  evaluaGon	
  
    –  Bigtop	
  

                                                     50	
  
Auto	
  scaling	
  sosware	
  deployment	
  tool	
  
•  States	
                                   Offline
                                                        < 100

    •  Download,	
  Configure,	
  Start	
     Download


    •  AcGve,	
  Standby	
                   Configure

•  Constraint	
  for	
  each	
  state	
  
                                               Start
    •  Download	
  	
  <	
  100	
  
    •  AcGve	
  1000	
                         Active   1000



    •  Standby	
  100	
                       Standby   100




                                                                51	
  
Summary	
  
•  Helix:	
  A	
  Generic	
  framework	
  for	
  building	
  
   distributed	
  systems	
  
•  Modifying/enhancing	
  system	
  behavior	
  is	
  easy	
  
   –  AbstracGon	
  and	
  modularity	
  is	
  key	
  
•  Simple	
  programming	
  model:	
  declaraGve	
  state	
  
   machine	
  



                                                             52	
  
Roadmap	
  

•  Features	
  
       •    Span	
  mulGple	
  data	
  centers	
  
       •    AutomaGc	
  Load	
  balancing	
  
       •    Distributed	
  health	
  monitoring	
  
       •    YARN	
  Generic	
  ApplicaGon	
  master	
  for	
  real	
  Gme	
  
            Apps	
  
       •  Stand	
  alone	
  Helix	
  agent	
  
       	
  
	
  
website	
   h?p://helix.incubator.apache.org	
  

user	
       user@helix.incubator.apache.org	
  

dev	
        dev@helix.incubator.apache.org	
  
twi?er	
     @apachehelix,	
  @kishoreg1980	
  




                                                   54	
  

Mais conteúdo relacionado

Destaque

Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInBuilding a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInAmy W. Tang
 
Suit up Presentation
Suit up PresentationSuit up Presentation
Suit up Presentationowildman
 
Intervento renza luigi_contratto
Intervento renza luigi_contrattoIntervento renza luigi_contratto
Intervento renza luigi_contrattoRenza Cambini
 
HML Mortgage Investor Report
HML Mortgage Investor ReportHML Mortgage Investor Report
HML Mortgage Investor ReportHML Ltd
 
프레젠테이션1
프레젠테이션1프레젠테이션1
프레젠테이션1daheelim
 
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...Amirah Morss
 
J2 l technology_otherconcepts_recruiting
J2 l technology_otherconcepts_recruitingJ2 l technology_otherconcepts_recruiting
J2 l technology_otherconcepts_recruitingGrace Ruhland
 
Georgia Caddick - Visual Influences - The Tempest
Georgia Caddick - Visual Influences - The TempestGeorgia Caddick - Visual Influences - The Tempest
Georgia Caddick - Visual Influences - The Tempestgeorgiacaddick
 
NCCU School of Business Year In Review
NCCU School of Business Year In ReviewNCCU School of Business Year In Review
NCCU School of Business Year In ReviewLadyKJ02
 
Do_Your_Company's_Policies_Need_a_Social_Media_Overhaul
Do_Your_Company's_Policies_Need_a_Social_Media_OverhaulDo_Your_Company's_Policies_Need_a_Social_Media_Overhaul
Do_Your_Company's_Policies_Need_a_Social_Media_OverhaulParsons Behle & Latimer
 
Delivering next generation enterprise no sql database technology
Delivering next generation enterprise no sql database technologyDelivering next generation enterprise no sql database technology
Delivering next generation enterprise no sql database technologymarcmcneill
 
Law of attraction new
Law of attraction newLaw of attraction new
Law of attraction newNeel Bajpai
 
a geografia e organização do espaço
a geografia e organização do espaçoa geografia e organização do espaço
a geografia e organização do espaçoGirleno Oliveira
 
Presentasi bd2 jefri 4.3 logging
Presentasi bd2 jefri 4.3 loggingPresentasi bd2 jefri 4.3 logging
Presentasi bd2 jefri 4.3 loggingJefri Fahrian
 

Destaque (20)

Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInBuilding a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
 
Suit up Presentation
Suit up PresentationSuit up Presentation
Suit up Presentation
 
Intervento renza luigi_contratto
Intervento renza luigi_contrattoIntervento renza luigi_contratto
Intervento renza luigi_contratto
 
HML Mortgage Investor Report
HML Mortgage Investor ReportHML Mortgage Investor Report
HML Mortgage Investor Report
 
프레젠테이션1
프레젠테이션1프레젠테이션1
프레젠테이션1
 
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...
Micron Technology Management Discusses Q3 2012 Results - Earnings Call Transc...
 
J2 l technology_otherconcepts_recruiting
J2 l technology_otherconcepts_recruitingJ2 l technology_otherconcepts_recruiting
J2 l technology_otherconcepts_recruiting
 
Georgia Caddick - Visual Influences - The Tempest
Georgia Caddick - Visual Influences - The TempestGeorgia Caddick - Visual Influences - The Tempest
Georgia Caddick - Visual Influences - The Tempest
 
NCCU School of Business Year In Review
NCCU School of Business Year In ReviewNCCU School of Business Year In Review
NCCU School of Business Year In Review
 
Do_Your_Company's_Policies_Need_a_Social_Media_Overhaul
Do_Your_Company's_Policies_Need_a_Social_Media_OverhaulDo_Your_Company's_Policies_Need_a_Social_Media_Overhaul
Do_Your_Company's_Policies_Need_a_Social_Media_Overhaul
 
Delivering next generation enterprise no sql database technology
Delivering next generation enterprise no sql database technologyDelivering next generation enterprise no sql database technology
Delivering next generation enterprise no sql database technology
 
Barriers2
Barriers2Barriers2
Barriers2
 
04 2013 alumnes_cm_sils
04 2013 alumnes_cm_sils04 2013 alumnes_cm_sils
04 2013 alumnes_cm_sils
 
Law of attraction new
Law of attraction newLaw of attraction new
Law of attraction new
 
Presentation1
Presentation1Presentation1
Presentation1
 
a geografia e organização do espaço
a geografia e organização do espaçoa geografia e organização do espaço
a geografia e organização do espaço
 
Distress company
Distress companyDistress company
Distress company
 
Presentasi bd2 jefri 4.3 logging
Presentasi bd2 jefri 4.3 loggingPresentasi bd2 jefri 4.3 logging
Presentasi bd2 jefri 4.3 logging
 
Memòria
MemòriaMemòria
Memòria
 
Meu slide
Meu slideMeu slide
Meu slide
 

Semelhante a Building Distributed Systems Using Helix

Untangling Cluster Management with Helix
Untangling Cluster Management with HelixUntangling Cluster Management with Helix
Untangling Cluster Management with HelixAmy W. Tang
 
Multi-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiMulti-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiglynnormington
 
Data driven testing: Case study with Apache Helix
Data driven testing: Case study with Apache HelixData driven testing: Case study with Apache Helix
Data driven testing: Case study with Apache HelixKishore Gopalakrishna
 
Searching conversations with hadoop
Searching conversations with hadoopSearching conversations with hadoop
Searching conversations with hadoopDataWorks Summit
 
Casing3d opengl
Casing3d openglCasing3d opengl
Casing3d openglgowell
 
Behind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling StorytimeBehind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling StorytimeSergeyChernyshev
 
MongoDB as Message Queue
MongoDB as Message QueueMongoDB as Message Queue
MongoDB as Message QueueMongoDB
 
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e..."JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...eLiberatica
 
Linked Data Access Goes Mobile: Context Aware Authorization for Graph Stores
Linked Data Access Goes Mobile: Context Aware Authorization for Graph StoresLinked Data Access Goes Mobile: Context Aware Authorization for Graph Stores
Linked Data Access Goes Mobile: Context Aware Authorization for Graph StoresLuca Costabello
 
HPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaHPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaTed Dunning
 
Hadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetupHadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetupJunping Du
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Modelsiammutex
 
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim CrontabsPaolo Negri
 
You thought you understood Product Backlog
You thought you understood Product BacklogYou thought you understood Product Backlog
You thought you understood Product BacklogAgile Vietnam
 
Smashing the stack with Hydra
Smashing the stack with HydraSmashing the stack with Hydra
Smashing the stack with Hydrapratap21
 
Scala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformScala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformTomoharu ASAMI
 
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)Ontico
 
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HivePerformance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HiveYukinori Suda
 

Semelhante a Building Distributed Systems Using Helix (20)

Untangling Cluster Management with Helix
Untangling Cluster Management with HelixUntangling Cluster Management with Helix
Untangling Cluster Management with Helix
 
Multi-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiMulti-bundle Scoping in OSGi
Multi-bundle Scoping in OSGi
 
Data driven testing: Case study with Apache Helix
Data driven testing: Case study with Apache HelixData driven testing: Case study with Apache Helix
Data driven testing: Case study with Apache Helix
 
Philly DB MapR Overview
Philly DB MapR OverviewPhilly DB MapR Overview
Philly DB MapR Overview
 
Searching conversations with hadoop
Searching conversations with hadoopSearching conversations with hadoop
Searching conversations with hadoop
 
Casing3d opengl
Casing3d openglCasing3d opengl
Casing3d opengl
 
Behind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling StorytimeBehind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling Storytime
 
MongoDB as Message Queue
MongoDB as Message QueueMongoDB as Message Queue
MongoDB as Message Queue
 
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e..."JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
 
Linked Data Access Goes Mobile: Context Aware Authorization for Graph Stores
Linked Data Access Goes Mobile: Context Aware Authorization for Graph StoresLinked Data Access Goes Mobile: Context Aware Authorization for Graph Stores
Linked Data Access Goes Mobile: Context Aware Authorization for Graph Stores
 
HPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaHPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with Katta
 
Euruko 2012 - JRuby
Euruko 2012 - JRubyEuruko 2012 - JRuby
Euruko 2012 - JRuby
 
Hadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetupHadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetup
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
 
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
 
You thought you understood Product Backlog
You thought you understood Product BacklogYou thought you understood Product Backlog
You thought you understood Product Backlog
 
Smashing the stack with Hydra
Smashing the stack with HydraSmashing the stack with Hydra
Smashing the stack with Hydra
 
Scala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformScala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud Platform
 
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)
Анализ телеметрии при масштабировании, Theo Schlossnagle (Circonus)
 
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HivePerformance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
 

Mais de Amy W. Tang

Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)Amy W. Tang
 
LinkedIn Graph Presentation
LinkedIn Graph PresentationLinkedIn Graph Presentation
LinkedIn Graph PresentationAmy W. Tang
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedIn Data Infrastructure at LinkedIn
Data Infrastructure at LinkedIn Amy W. Tang
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedInAmy W. Tang
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State DrivesAmy W. Tang
 
All Aboard the Databus
All Aboard the DatabusAll Aboard the Databus
All Aboard the DatabusAmy W. Tang
 
Introduction to Databus
Introduction to DatabusIntroduction to Databus
Introduction to DatabusAmy W. Tang
 

Mais de Amy W. Tang (7)

Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
 
LinkedIn Graph Presentation
LinkedIn Graph PresentationLinkedIn Graph Presentation
LinkedIn Graph Presentation
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedIn Data Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State Drives
 
All Aboard the Databus
All Aboard the DatabusAll Aboard the Databus
All Aboard the Databus
 
Introduction to Databus
Introduction to DatabusIntroduction to Databus
Introduction to Databus
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Building Distributed Systems Using Helix

  • 1. Building  distributed  systems  using   Helix   h?p://helix.incubator.apache.org    Apache  IncubaGon  Oct,  2012     @apachehelix   Kishore  Gopalakrishna,  @kishoreg1980 h?p://www.linkedin.com/in/kgopalak     1  
  • 2. Outline   •  Introduc)on   •  Architecture   •  How  to  use  Helix   •  Tools   •  Helix  usage     2  
  • 3. Examples  of  distributed  data  systems   3  
  • 4. Lifecycle   Cluster   Fault   Expansion   tolerance   •  Thro?le  data  movement   MulG   •  Re-­‐distribuGon   •  ReplicaGon   node   •  Fault  detecGon   •  Recovery   Single   Node   •  ParGGoning   •  Discovery   •  Co-­‐locaGon   4  
  • 5. Typical  Architecture   App.   App.   App.   App.   Cluster   Network   manager   Node   Node   Node   Node   5  
  • 6.     Distributed  search  service   INDEX  SHARD   P.1   P.2   P.5   P.6   P.3   P.4   P.3   P.4   P.1   P.2   P.5   P.6   REPLICA   Node  1   Node  2   Node  3   ParGGon   Fault  tolerance   ElasGcity   management   • MulGple  replicas   • Fault  detecGon   • re-­‐distribute   • Even   • Auto  create   parGGons   distribuGon   replicas   • Minimize   • Rack  aware   • Controlled   movement   placement   creaGon  of   • Thro?le  data   replicas     movement  
  • 7.     Distributed  data  store   P.1   P.2   P.3   P.5   P.6   P.7   P.9   P.10   P.11   P.4   P.5   P.6   P.8   P.1   P.2   P.12   P.3   P.4   P.1   P.9   P.10   P.11   P.12   P.7   P.8   SLAVE   MASTER   Node  1   Node  2   Node  3   ParGGon   Fault  tolerance   ElasGcity   management   • MulGple  replicas   • Fault  detecGon   • Minimize   • 1  designated   • Promote  slave   downGme   master   to  master   • Minimize  data   • Even   • Even   movement   distribuGon   distribuGon   • Thro?le  data   • No  SPOF   movement  
  • 8. Message  consumer  group   •  Similar  to  Message  groups  in  AcGveMQ   –  guaranteed  ordering  of  the  processing  of  related  messages   across  a  single  queue   –  load  balancing  of  the  processing  of  messages  across   mulGple  consumers   –  high  availability  /  auto-­‐failover  to  other  consumers  if  a   JVM  goes  down   •  Applicable  to  many  messaging  pub/sub   systems  like  kada,  rabbitmq  etc     8  
  • 9. Message  consumer  group   ASSIGNMENT   SCALING   FAULT  TOLERANCE   9  
  • 10. Zookeeper  provides  low  level  primiGves.     We  need  high  level  primiGves.     ApplicaGon   •  File  system   •  Node   •  Lock   •  ParGGon   •  Ephemeral   •  Replica   •  State   •  TransiGon   ApplicaGon   Framework     Consensus   Zookeeper   System   10  
  • 11. 11  
  • 12. Outline   •  IntroducGon   •  Architecture   •  How  to  use  Helix   •  Tools   •  Helix  usage   12  
  • 13. Terminologies     Node   A  single  machine   Cluster   Set  of  Nodes   Resource   A  logical  en/ty  e.g.  database,  index,  task   ParGGon   Subset  of  the  resource.   Replica   Copy  of  a  parGGon   State   Status  of  a  parGGon  replica,  e.g  Master,  Slave   TransiGon   AcGon  that  lets  replicas  change  status  e.g  Slave  -­‐>  Master   13  
  • 14. Core  concept   State  Machine   Constraints   ObjecGves   • States   • States   • ParGGon  Placement   • Offline,  Slave,  Master   • M=1,  S=2   • Failure  semanGcs   • TransiGon   • TransiGons   • O-­‐>S,  S-­‐>M,S-­‐>M,  M-­‐>S   • concurrent(0-­‐>S)  <  5     COUNT=2 minimize(maxnj∈N  S(nj)  ) t1≤5 S   t1 t2 t3 t4 O   M   COUNT=1 minimize(maxnj∈N  M(nj)  ) 14  
  • 15. Helix  soluGon   Message  consumer  group   Distributed  search   Start  consumpGon   MAX=1   MAX  per  node=5   Offline   Online   Stop  consumpGon   MAX=3   (number  of  replicas)   15  
  • 16. IDEALSTATE   P1   P2   P3   ConfiguraGon   Constraints   • 3  nodes   • 1  Master   • 3  parGGons   • 2  replicas   • 1  Slave   • Even   N1:M   N2:M   N3:M   • StateMachine   distribuGon   Replica   placement   N2:S   N3:S   N1:S   Replica     State   16  
  • 17. CURRENT  STATE   N1   •  P1:OFFLINE   •  P3:OFFLINE   N2   •  P2:MASTER   •  P1:MASTER   N3   •  P3:MASTER   •  P2:SLAVE   17  
  • 18. EXTERNAL  VIEW   P1   P2   P3   N1:O   N2:M   N3:M   N2:M   N3:S   N1:O   18  
  • 19. Helix  Based  System  Roles   PARTICIPANT IDEAL STATE SPECTATOR Controller Parition routing logic CURRENT STATE RESPONSE COMMAND P.1   P.2   P.3   P.5   P.6   P.7   P.9   P.10   P.11   P.4   P.5   P.6   P.8   P.1   P.2   P.12   P.3   P.4   P.1   P.9   P.10   P.11   P.12   P.7   P.8   Node  1   Node  2   Node  3   19  
  • 21. Outline   •  IntroducGon   •  Architecture   •  How  to  use  Helix   •  Tools   •  Helix  usage       21  
  • 22. Helix  based  soluGon   1.  Define     2.  Configure     3.  Run   22  
  • 23. Define:  State  model  definiGon   •  States   •  e.g.  MasterSlave   –  All  possible  states   –  Priority   •  TransiGons   –  Legal  transiGons   S   –  Priority   •  Applicable  to  each   O   M   parGGon  of  a  resource   23  
  • 24. Define:  state  model   Builder = new StateModelDefinition.Builder(“MASTERSLAVE”);! // Add states and their rank to indicate priority. ! builder.addState(MASTER, 1);! builder.addState(SLAVE, 2);! builder.addState(OFFLINE);! ! //Set the initial state when the node starts! builder.initialState(OFFLINE);   //Add transitions between the states.! builder.addTransition(OFFLINE, SLAVE);! builder.addTransition(SLAVE, OFFLINE);! builder.addTransition(SLAVE, MASTER);! builder.addTransition(MASTER, SLAVE);! ! 24  
  • 25. Define:  constraints   State   Transi)on   ParGGon   Y   Y   Resource   -­‐   Y   Node   Y   Y   COUNT=2 Cluster   -­‐   Y   S   COUNT=1 State   Transi)on   O   M   ParGGon   M=1,S=2   -­‐   25  
  • 26. Define:constraints   // static constraint! builder.upperBound(MASTER, 1);! ! ! // dynamic constraint! builder.dynamicUpperBound(SLAVE, "R");! ! ! ! // Unconstrained ! builder.upperBound(OFFLINE, -1;     26  
  • 28. Step  2:  configure   helix-­‐admin  –zkSvr  <zkAddress>   CREATE  CLUSTER   -­‐-­‐addCluster  <clusterName>   ADD  NODE   -­‐-­‐addNode  <clusterName  instanceId(host:port)>     CONFIGURE  RESOURCE     -­‐-­‐addResource  <clusterName  resourceName  par;;ons  statemodel>     REBALANCE  èSET  IDEALSTATE   -­‐-­‐rebalance  <clusterName  resourceName  replicas>   28  
  • 29. zookeeper  view   IDEALSTATE   29  
  • 30. Step  3:  Run   START  CONTROLLER   run-­‐helix-­‐controller    -­‐zkSvr  localhost:2181  –cluster  MyCluster   START  PARTICIPANT   30  
  • 32. Znode  content   CURRENT  STATE   EXTERNAL  VIEW   32  
  • 35. IDEALSTATE   P1   P2   P3   ConfiguraGon   Constraints   N1:M   N2:M   N3:M   • 3  nodes   • 1  Master   • 3  parGGons   • 1  Slave   • 2  replicas   • Even   • StateMachine   distribuGon   N2:S   N3:S   N1:S   Replica   Replica     placement   State   35  
  • 36. ExecuGon  modes   •  Who  controls  what     AUTO   AUTO   CUSTOM   REBALANCE   Replica   Helix   App   App   placement   Replica     Helix   Helix   App   State   36  
  • 37. Auto  rebalance  v/s  Auto   AUTO  REBALANCE   AUTO   37  
  • 38. In  acGon     Auto  rebalance   Auto     MasterSlave  p=3  r=2  N=3   MasterSlave  p=3  r=2  N=3   Node1   Node2   Node3   Node  1   Node  2   Node  3   P1:M   P2:M   P3:M   P1:M   P2:M   P3:M   P2:S   P3:S   P1:S   P2:S   P3:S   P1:S   On  failure:  Auto  create  replica     On  failure:  Only  change  states  to  saGsfy   and  assign  state   constraint   Node  1   Node  2   Node  3   Node  1   Node  2   Node  3   P1:O   P2:M   P3:M   P1:M   P2:M   P3:M   P2:O   P3:S   P1:S   P2:S   P3:S   P1:M   P1:M   P2:S   38  
  • 40. Custom  mode:  handling  failure   ™  Custom  code  invoker   ™  Code  that  lives  on  all  nodes,  but  acGve  in  one  place   ™  Invoked  when  node  joins/leaves  the  cluster   ™  Computes  new  idealstate   ™  Helix  controller  fires  the  transiGon  without  viola)ng  constraints   P1   P2   P3   P1   P2   P3   Transi)ons   1   N1   MàS   2   N2   Sà  M   N1:M   N2:M   N3:M   N1:S   N2:M   N3:M   1  &  2  in  parallel  violate  single   master  constraint   N2:S   N3:S   N1:S   N2:M   N3:S   N1:S   Helix  sends  2  aser  1  is  finished   40  
  • 41. Outline   •  IntroducGon   •  Architecture   •  How  to  use  Helix   •  Tools   •  Helix  usage     41  
  • 42. Tools   •  Chaos  monkey   •  Data  driven  tesGng  and  debugging   •  Rolling  upgrade   •  On  demand  task  scheduling  and  intra-­‐cluster   messaging   •  Health  monitoring  and  alerts   42  
  • 43. Data  driven  tesGng   •  Instrument  –   •   Zookeeper,  controller,  parGcipant  logs   •  Simulate  –  Chaos  monkey   •  Analyze  –  Invariants  are   •  Respect  state  transiGon  constraints   •  Respect  state  count  constraints   •  And  so  on   •  Debugging  made  easy   •  Reproduce  exact  sequence  of  events       43  
  • 44. Structured  Log  File  -­‐  sample   timestamp partition instanceName sessionId state 1323312236368 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236426 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236530 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236530 TestDB_91 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236561 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc SLAVE 1323312236561 TestDB_91 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236685 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc SLAVE 1323312236685 TestDB_91 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236685 TestDB_60 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236719 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc SLAVE 1323312236719 TestDB_91 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc SLAVE 1323312236719 TestDB_60 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc OFFLINE 1323312236814 TestDB_123 express1-md_16918 ef172fe9-09ca-4d77b05e-15a414478ccc SLAVE
  • 45. No  more  than  R=2  slaves   Time State Number Slaves Instance 42632 OFFLINE 0 10.117.58.247_12918 42796 SLAVE 1 10.117.58.247_12918 43124 OFFLINE 1 10.202.187.155_12918 43131 OFFLINE 1 10.220.225.153_12918 43275 SLAVE 2 10.220.225.153_12918 43323 SLAVE 3 10.202.187.155_12918 85795 MASTER 2 10.220.225.153_12918
  • 46. How  long  was  it  out  of  whack?   Number  of  Slaves   Time     Percentage   0   1082319   0.5   1   35578388   16.46   2   179417802   82.99   3   118863   0.05   83%  of  the  Gme,  there  were  2  slaves  to  a  parGGon   93%  of  the  Gme,  there  was  1  master  to  a  parGGon   Number  of  Masters   Time   Percentage   0 15490456 7.164960359 1 200706916 92.83503964
  • 47. Invariant  2:  State  TransiGons   FROM   TO   COUNT   MASTER SLAVE 55 OFFLINE DROPPED 0 OFFLINE SLAVE 298 SLAVE MASTER 155 SLAVE OFFLINE 0
  • 48. Outline   •  IntroducGon   •  Architecture   •  How  to  use  Helix   •  Tools   •  Helix  usage     48  
  • 49. Helix  usage  at  LinkedIn       Espresso   49  
  • 50. In  flight   •  Apache  S4   –  ParGGoning,  co-­‐locaGon   –  Dynamic  cluster  expansion   •  Archiva   –  ParGGoned  replicated  file  store   –  Rsync  based  replicaGon   •  Others  in  evaluaGon   –  Bigtop   50  
  • 51. Auto  scaling  sosware  deployment  tool   •  States   Offline < 100 •  Download,  Configure,  Start   Download •  AcGve,  Standby   Configure •  Constraint  for  each  state   Start •  Download    <  100   •  AcGve  1000   Active 1000 •  Standby  100   Standby 100 51  
  • 52. Summary   •  Helix:  A  Generic  framework  for  building   distributed  systems   •  Modifying/enhancing  system  behavior  is  easy   –  AbstracGon  and  modularity  is  key   •  Simple  programming  model:  declaraGve  state   machine   52  
  • 53. Roadmap   •  Features   •  Span  mulGple  data  centers   •  AutomaGc  Load  balancing   •  Distributed  health  monitoring   •  YARN  Generic  ApplicaGon  master  for  real  Gme   Apps   •  Stand  alone  Helix  agent      
  • 54. website   h?p://helix.incubator.apache.org   user   user@helix.incubator.apache.org   dev   dev@helix.incubator.apache.org   twi?er   @apachehelix,  @kishoreg1980   54