SlideShare a Scribd company logo
1 of 54
Download to read 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	
  

More Related Content

What's hot

Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...Databricks
 
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital Kedia
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital KediaTuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital Kedia
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital KediaDatabricks
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesDatabricks
 
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
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeFlink Forward
 
Apache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudApache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudDatabricks
 
Care and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerCare and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerDatabricks
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Flink Forward
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Databricks
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperSaurav Haloi
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planningconfluent
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022HostedbyConfluent
 
Radical Speed for SQL Queries on Databricks: Photon Under the Hood
Radical Speed for SQL Queries on Databricks: Photon Under the HoodRadical Speed for SQL Queries on Databricks: Photon Under the Hood
Radical Speed for SQL Queries on Databricks: Photon Under the HoodDatabricks
 
Real-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotReal-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotXiang Fu
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producerconfluent
 
Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi TenancyNatan Yellin
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 

What's hot (20)

Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
 
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital Kedia
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital KediaTuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital Kedia
Tuning Apache Spark for Large-Scale Workloads Gaoxiang Liu and Sital Kedia
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
 
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...
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Apache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudApache Spark At Scale in the Cloud
Apache Spark At Scale in the Cloud
 
Care and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerCare and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst Optimizer
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
What's New in Apache Hive
What's New in Apache HiveWhat's New in Apache Hive
What's New in Apache Hive
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
Radical Speed for SQL Queries on Databricks: Photon Under the Hood
Radical Speed for SQL Queries on Databricks: Photon Under the HoodRadical Speed for SQL Queries on Databricks: Photon Under the Hood
Radical Speed for SQL Queries on Databricks: Photon Under the Hood
 
Real-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotReal-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache Pinot
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi Tenancy
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 

Similar to Apache Helix presentation at ApacheCon 2013

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

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

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 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