SlideShare a Scribd company logo
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	
  

More Related Content

What's hot

Uber: Kafka Consumer Proxy
Uber: Kafka Consumer ProxyUber: Kafka Consumer Proxy
Uber: Kafka Consumer Proxy
confluent
 
Spark Compute as a Service at Paypal with Prabhu Kasinathan
Spark Compute as a Service at Paypal with Prabhu KasinathanSpark Compute as a Service at Paypal with Prabhu Kasinathan
Spark Compute as a Service at Paypal with Prabhu Kasinathan
Databricks
 
Apache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage ServiceApache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage Service
Sijie Guo
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
confluent
 
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
confluent
 
Troubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesTroubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issues
Michael Klishin
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
Chandler Huang
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Databricks
 
HBase Storage Internals
HBase Storage InternalsHBase Storage Internals
HBase Storage Internals
DataWorks Summit
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
DataWorks Summit/Hadoop Summit
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
confluent
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
Ryan Cuprak
 
Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium
confluent
 
Virtual Nodes: Rethinking Topology in Cassandra
Virtual Nodes: Rethinking Topology in CassandraVirtual Nodes: Rethinking Topology in Cassandra
Virtual Nodes: Rethinking Topology in Cassandra
Eric Evans
 
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
Spark Summit
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
涛 吴
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
Redis Labs
 
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
HostedbyConfluent
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache KafkaKafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
confluent
 

What's hot (20)

Uber: Kafka Consumer Proxy
Uber: Kafka Consumer ProxyUber: Kafka Consumer Proxy
Uber: Kafka Consumer Proxy
 
Spark Compute as a Service at Paypal with Prabhu Kasinathan
Spark Compute as a Service at Paypal with Prabhu KasinathanSpark Compute as a Service at Paypal with Prabhu Kasinathan
Spark Compute as a Service at Paypal with Prabhu Kasinathan
 
Apache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage ServiceApache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage Service
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
 
Troubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesTroubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issues
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
 
HBase Storage Internals
HBase Storage InternalsHBase Storage Internals
HBase Storage Internals
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium
 
Virtual Nodes: Rethinking Topology in Cassandra
Virtual Nodes: Rethinking Topology in CassandraVirtual Nodes: Rethinking Topology in Cassandra
Virtual Nodes: Rethinking Topology in Cassandra
 
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
 
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache KafkaKafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
 

Similar to Apache Helix presentation at ApacheCon 2013

Conole vilnius 3_nov
Conole vilnius 3_novConole vilnius 3_nov
Conole vilnius 3_nov
grainne
 
Multi-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiMulti-bundle Scoping in OSGi
Multi-bundle Scoping in OSGi
glynnormington
 
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
Kishore Gopalakrishna
 
Philly DB MapR Overview
Philly DB MapR OverviewPhilly DB MapR Overview
Philly DB MapR Overview
MapR Technologies
 
Searching conversations with hadoop
Searching conversations with hadoopSearching conversations with hadoop
Searching conversations with hadoop
DataWorks Summit
 
Casing3d opengl
Casing3d openglCasing3d opengl
Casing3d opengl
gowell
 
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
SergeyChernyshev
 
MongoDB as Message Queue
MongoDB as Message QueueMongoDB as Message Queue
MongoDB as Message Queue
MongoDB
 
"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 Stores
Luca 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 Katta
Ted Dunning
 
Euruko 2012 - JRuby
Euruko 2012 - JRubyEuruko 2012 - JRuby
Euruko 2012 - JRuby
Charles Nutter
 
Hadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetupHadoop virtualization extensions hadoop world meetup
Hadoop virtualization extensions hadoop world meetup
Junping Du
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
iammutex
 
%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
Paolo Negri
 
You thought you understood Product Backlog
You thought you understood Product BacklogYou thought you understood Product Backlog
You thought you understood Product Backlog
Agile Vietnam
 
Smashing the stack with Hydra
Smashing the stack with HydraSmashing the stack with Hydra
Smashing the stack with Hydra
pratap21
 
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
Tomoharu 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 Hive
Yukinori Suda
 

Similar to Apache Helix presentation at ApacheCon 2013 (20)

Conole vilnius 3_nov
Conole vilnius 3_novConole vilnius 3_nov
Conole vilnius 3_nov
 
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
 

Recently uploaded

Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 

Recently uploaded (20)

Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 

Apache Helix presentation at ApacheCon 2013

  • 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  

Editor's Notes

  1. Moving from single node to scalable, fault tolerant distributed mode is non trivial and slow, even though core functionality remains the same.
  2. Limit the number of partitions on a single node,
  3. You must define correct behavior of your system. How do you partition? What is the replication factor? Are replicas the same or are there different roles such as master/slave replicas? How should the system behave when nodes fail, new nodes are added etc. This differs from system to system.2. Once you have defined how the system must behave, you have to implement that behavior in code, maybe on top of ZK or otherwise. That implementation is non-trivial, hard to debug, hard to test. Worse, in response to requirements, if the behavior of the system were to change even slightly, the entire process has to repeat.MOVING FROM ONE SHARD PER NODE to MULTIPLE SHARD PER NODEInstead, wouldn&apos;t it be nice if all you had to do was step 1 i.e. simply define the correct behavior of your distributed system and step 2 was somehow taken care of?
  4. Core helix concepts What makes it generic
  5. In this slide, we will look at the problem from a different perspective and possibly re-define the cluster management problem.So re-cap to solve dds we need to define number of partitions and replicas, and for each replicas we need to different roles like master/slave etcOne of the well proven way to express such behavior is use a state machine
  6. Dynamically change number of replicasAdd new resources, add nodesChange behavior easilyChange what runs whereelasticity
  7. Design choicesCommunicationZK optimizationsMultiple deployment optionsNo SPOF
  8. Mention configuration etc
  9. Auto rebalance: Applicable to message consumer group, searchAutoDistributed data store
  10. Allows one to come up with common toolsThink of maven plugins
  11. Used in production and manage the core infrastructure components in the companyOperation is easy and easy for dev ops to operate multiple systems
  12. S4 Apps and processing tasks, each have different state modelMultitenancy multiple resources
  13. Define statesHow many you want in each stateState modelHelix provides MasterSlaveOnlineOfflineLeaderStandbyTwo master systemAutomatic replica creation
  14. Provides the right combination of abstraction and flexibilityCode is stable and deployed in productionIntegration between multiple systems co-locatingGood thing helps think more about your design putting in right level of abstraction and modularity
  15. contribution