SlideShare a Scribd company logo
1 of 22
Download to read offline
Couchbase	
  Server	
  for	
  Speed	
  and	
  
Scale	
  with	
  Interac8ve	
  Applica8ons	
  

                           Perry	
  Krug	
  
                           Presenter	
  Title	
  




                                                    1	
  
Agenda	
  (just	
  an	
  outline)	
  

 •  Needs	
  for	
  Interac8ve	
  Apps	
  
     –  Speed	
  
          •  Speed	
  of	
  access	
  
          •  Speed	
  of	
  app	
  development	
  
     –  Scale	
  
          •  Built	
  to	
  scale	
  
     –  Unique	
  architectural	
  principals	
  
          •  Clustered	
  system	
  
                 –  Simple	
  for	
  applica8ons	
  
                 –  Automa8c	
  sharding	
  of	
  data	
  across	
  cluster	
  
          •  Single	
  index	
  view	
  
                 –  No	
  need	
  to	
  define	
  sharding	
  keys	
  
                 –  Automa8c,	
  online	
  transfer	
  of	
  data	
  across	
  cluster	
  

                                                                                             2	
  
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.




                                                                                                              EXAMPLE	
  OF	
  AN	
  
                                                                                                             INTERACTIVE	
  APP	
  




                                                                                                                                                                                                                                                                              3	
  
Instagrowth:	
  Android	
  Launch	
  

E xample
 •  Instagram	
  gained	
  nearly	
  1	
  million	
  users	
  overnight	
  
    when	
  they	
  expanded	
  to	
  Android	
  




                                                                              4	
  
xample
E          1 Instagram
                =
           7.5M MAU*



                         5	
  
Draw	
  Something	
  -­‐	
  Social	
  Game	
  

 •  50	
  million	
  downloads	
  in	
  50	
  days	
  
 •  That’s	
  almost	
  5	
  Instagrams.	
  In	
  2	
  months.	
  




                                                                     6	
  
Goes	
  Viral	
  3	
  Weeks	
  AZer	
  Launch	
  


                    Draw	
  Something	
  by	
  OMGPOP	
  
                    Daily	
  Ac8ve	
  Users	
  (millions)	
  

           16	
  




           14	
  




           12	
  




           10	
  




            8	
  




            6	
  




            4	
  




            2	
  




                         2/6	
     8	
     10	
     12	
     14	
     16	
     18	
     20	
     22	
     24	
     26	
     28	
     3/1	
     3	
     5	
     7	
     9	
     11	
     13	
     15	
     17	
     19	
     21	
  
                                                                                                                                                                                                                                     7	
  
 Database	
  Opera8ons	
  


            Draw	
  Something	
  by	
  OMGPOP	
  
            Daily	
  Ac8ve	
  Users	
  (millions)	
  

   16	
  




   14	
  




   12	
  




   10	
  




    8	
  


                                                     By	
  March	
  19,	
  there	
  were	
  	
  
                                  over	
  30,000,000	
  downloads	
  of	
  the	
  app,	
  
    6	
  
                         over	
  5,000	
  drawings	
  being	
  stored	
  per	
  second,	
  
                                     over	
  2,200,000,000	
  drawings	
  stored,	
  
                       over	
  105,000	
  database	
  transac8ons	
  per	
  second,	
  
    4	
  
                                    and	
  over	
  3.3	
  terabytes	
  of	
  data	
  stored.	
  


    2	
  




                 2/6	
     8	
     10	
     12	
      14	
     16	
     18	
     20	
     22	
     24	
     26	
     28	
     3/1	
     3	
     5	
     7	
     9	
     11	
     13	
     15	
     17	
     19	
     21	
  
                                                                                                                                                                                                                              8	
  
Social	
  Gaming	
  on	
  Couchbase	
  




          iki	
  




                                          9	
  
Speed	
  

 •  Modern,	
  interac8ve	
  applica8ons	
  require	
  speed	
  
     –  Web	
  pages	
  are	
  dynamic,	
  interac8ve	
  and	
  may	
  incrementally	
  
        fetch	
  content	
  for	
  display	
  
     –  Mobile	
  applica8ons	
  cannot	
  carry	
  all	
  of	
  the	
  content,	
  so	
  they	
  
        need	
  to	
  be	
  able	
  to	
  fetch	
  data	
  on	
  demand	
  
 •  Couchbase	
  Speed	
  via…	
  
     –  Managed,	
  built	
  in	
  cache	
  
          •  memcached	
  compa8ble,	
  built	
  on	
  memcached	
  
     –  Protocol	
  design	
  
          •  Client	
  can	
  directly	
  access	
  data	
  objects	
  within	
  the	
  cluster	
  
          •  No	
  quorum	
  reads	
  needed	
  to	
  determine	
  version,	
  always	
  consistent	
  


                                                                                                          10	
  
Scale	
  

 •  Modern	
  app	
  deployments	
  are	
  always	
  on,	
  available	
  
    24x7x365	
  
     –  Some	
  applica8ons	
  may	
  have	
  a	
  lifecycle	
  which	
  requires	
  
        scaling	
  down,	
  in	
  addi8onal	
  to	
  scaling	
  up	
  
 •  Couchbase	
  scales	
  via…	
  
     –  Automa8cally	
  sharding	
  data	
  among	
  the	
  nodes	
  of	
  the	
  cluster	
  
        and	
  atomically	
  transferring	
  vbuckets	
  
     –  Coordina8ng	
  these	
  changes	
  with	
  client	
  libraries	
  accessing	
  
        the	
  cluster	
  




                                                                                            11	
  
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.




                                                            CLUSTERING	
  ARCHITECTURE	
  




                                                                                                                                                                                                                                                                              12	
  
Basic	
  Opera8on	
  
                           APP	
  SERVER	
  1	
                                                   APP	
  SERVER	
  2	
  

                               	
                                                                  	
  
                                                                                                                                                             Docs	
  distributed	
  evenly	
  across	
  
                               	
                                                                  	
     COUCHBASE	
  CLIENT	
  LIBRARY	
  
                                                                                                                                                              servers	
  in	
  the	
  cluster	
  
                                       COUCHBASE	
  CLIENT	
  LIBRARY	
  
                               	
                                                                  	
  
                               	
  
                                                     	
  
                                                                                                   	
  
                                                                                                                        	
                                   Each	
  server	
  stores	
  both	
  ac/ve	
  
                                               CLUSTER	
  MAP	
  
                                                     	
                                                            CLUSTER	
  MAP	
  
                                                                                                                        	
  
                               	
                         	
                                       	
                        	
                               &	
  replica	
  docs	
  
                                                          	
                                                                 	
                                  Only	
  one	
  server	
  ac8ve	
  at	
  a	
  8me	
  
                                                                                                                                                             Client	
  library	
  provides	
  app	
  with	
  
                                          Read/Write/Update	
                           Read/Write/Update	
                                                   simple	
  interface	
  to	
  database	
  
                                                                                                                                                             Cluster	
  map	
  provides	
  map	
  to	
  
                                                                                                                                                              which	
  server	
  doc	
  is	
  on	
  
                                                                                                                                                                 App	
  never	
  needs	
  to	
  know	
  
             SERVER	
  1	
                                        SERVER	
  2	
                                       SERVER	
  3	
  
                                                                                                                                                              App	
  reads,	
  writes,	
  updates	
  
             Ac8ve	
  Docs	
                                      Ac8ve	
  Docs	
                                    Ac8ve	
  Docs	
  
              	
                                                   	
                                                 	
                                       docs	
  
              	
   Doc	
  5	
         DOC	
                        	
   Doc	
  4	
      DOC	
                         	
   Doc	
  1	
      DOC	
  
              	
                                                   	
                                                 	
                                      Mul8ple	
  App	
  Servers	
  can	
  
              	
   Doc	
  2	
         DOC	
                        	
   Doc	
  7	
      DOC	
                         	
   Doc	
  3	
      DOC	
               access	
  same	
  document	
  at	
  
              	
                                                   	
                                                 	
  
              	
   Doc	
  9	
         DOC	
                        	
   Doc	
  8	
      DOC	
                         	
   Doc	
  6	
      DOC	
  
                                                                                                                                                               same	
  8me	
  
              	
                                                   	
                                                 	
                             	
  
              	
  
             Replica	
  Docs	
                                     	
  
                                                                  Replica	
  Docs	
                                   	
  
                                                                                                                     Replica	
  Docs	
  
              	
                                                   	
                                                 	
  
              	
   Doc	
  4	
         DOC	
                        	
   Doc	
  6	
      DOC	
                         	
   Doc	
  7	
      DOC	
  
              	
                                                   	
                                                 	
  
              	
   Doc	
  1	
         DOC	
                        	
   Doc	
  3	
      DOC	
                         	
   Doc	
  9	
      DOC	
  
              	
                                                   	
                                                 	
  
              	
   Doc	
  8	
         DOC	
                        	
   Doc	
  2	
      DOC	
                         	
   Doc	
  5	
      DOC	
  



                                                    COUCHBASE	
  SERVER	
  	
  CLUSTER	
  

User	
  Configured	
  Replica	
  Count	
  =	
  1	
                                                                                                                                                                        13	
  
Add	
  Nodes	
  
                           APP	
  SERVER	
  1	
                                                   APP	
  SERVER	
  2	
  

                             	
                                                                     	
  
                             	
                                                                     	
                                                                    Two	
  servers	
  added	
  to	
  
                                    COUCHBASE	
  CLIENT	
  LIBRARY	
                                         COUCHBASE	
  CLIENT	
  LIBRARY	
                              cluster	
  
                             	
                                                                     	
                     	
  
                                                  	
                                                                                                                            One-­‐click	
  opera8on	
  
                             	
             CLUSTER	
  MAP	
                                        	
                CLUSTER	
  MAP	
  
                                                                                                                           	
  
                                                  	
                                                                                                                      Docs	
  automa8cally	
  
                             	
                        	
                                           	
                          	
  
                                                       	
                                                                       	
                                         rebalanced	
  across	
  
                                                                                                                                                                           cluster	
  
                                                                                                                                                                               Even	
  distribu8on	
  of	
  
                                                                                                                                                                                docs	
  
                                           Read/Write/Update	
                                             Read/Write/Update	
                                                 Minimum	
  doc	
  
                                                                                                                                                                                movement	
  
                                                                                                                                                                          Cluster	
  map	
  updated	
  
                                                                                                                                                                          App	
  database	
  calls	
  now	
  
                                                                                                                                                                           distributed	
  over	
  larger	
  #	
  
    SERVER	
  1	
                            SERVER	
  2	
                     SERVER	
  3	
                               SERVER	
  4	
          SERVER	
  5	
            of	
  servers	
  
    Ac8ve	
  Docs	
  
     	
                                      	
   Ac8ve	
  Docs	
                	
  Ac8ve	
  Docs	
  ocs	
                Ac8ve	
  Docs	
  
                                                                                                                            	
                    Ac8ve	
  Docs	
  
                                                                                                                                                   	
  
                                                                                        Ac8ve	
  D
     	
   Doc	
  5	
      DOC	
              	
   Doc	
  4	
        DOC	
        	
   Doc	
  1	
          DOC	
             	
                     	
  
     	
                                      	
                                  	
          Doc	
  3	
                     	
                     	
  
     	
   Doc	
  2	
      DOC	
              	
   Doc	
  7	
        DOC	
        	
   Doc	
  3	
          DOC	
             	
                     	
  
     	
                                      	
                                  	
          Doc	
  6	
                     	
                     	
  
     	
   Doc	
  9	
      DOC	
              	
   Doc	
  8	
        DOC	
        	
   Doc	
  6	
          DOC	
             	
                     	
  
     	
                                      	
                                  	
                                         	
                     	
  
     	
  
    Replica	
  Docs	
                        	
  
                                             Replica	
  Docs	
                   	
  Replica	
  Docs	
                      	
  
                                                                                                                           Replica	
  Docs	
       	
  
                                                                                                                                                  Replica	
  Docs	
  
     	
                                      	
                                  	
   Replica	
  Docs	
                     	
                     	
  
     	
   Doc	
  4	
      DOC	
              	
   Doc	
  6	
        DOC	
        	
   Doc	
  7	
   7	
   DOC	
  
                                                                                             Doc	
                          	
                     	
  
     	
                                      	
                                  	
                                         	
                     	
  
     	
   Doc	
  1	
      DOC	
              	
   Doc	
  3	
        DOC	
        	
   Doc	
  9	
   9	
   DOC	
  
                                                                                             Doc	
                          	
                     	
  
     	
                                      	
                                  	
                                         	
                     	
  
     	
   Doc	
  8	
      DOC	
              	
   Doc	
  2	
        DOC	
        	
   Doc	
  5	
          DOC	
             	
                     	
  


                                                                       COUCHBASE	
  SERVER	
  	
  CLUSTER	
  

User	
  Configured	
  Replica	
  Count	
  =	
  1	
                                                                                                                                                          14	
  
Fail	
  Over	
  Node	
  
                           APP	
  SERVER	
  1	
                                                   APP	
  SERVER	
  2	
  
                                                                                                                                                                             App	
  servers	
  happily	
  accessing	
  docs	
  
                             	
                                                                     	
                                                                        on	
  Server	
  3	
  
                             	
                                                                     	
      COUCHBASE	
  CLIENT	
  LIBRARY	
                                 Server	
  fails	
  
                                    COUCHBASE	
  CLIENT	
  LIBRARY	
  
                             	
                                                                     	
                    	
                                                 App	
  server	
  requests	
  to	
  server	
  3	
  fail	
  
                                                  	
  
                             	
             CLUSTER	
  MAP	
                                        	
               CLUSTER	
  MAP	
  
                                                                                                                          	
                                                 Cluster	
  detects	
  server	
  has	
  failed	
  
                                                  	
  
                             	
                        	
                                           	
                         	
                                                 Promotes	
  replicas	
  of	
  docs	
  to	
  ac/ve	
  
                                                       	
                                                                      	
                                                 Updates	
  cluster	
  map	
  
                                                                                                                                                                             App	
  server	
  requests	
  for	
  docs	
  now	
  
                                                                                                                                                                                go	
  to	
  appropriate	
  server	
  
                                                                                                                                                                             Typically	
  rebalance	
  	
  would	
  follow	
  
                                                                                                                                                                           	
  



    SERVER	
  1	
                            SERVER	
  2	
                     SERVER	
  3	
                               SERVER	
  4	
                 SERVER	
  5	
  
    Ac8ve	
  Docs	
  
     	
                                      	
   Ac8ve	
  Docs	
                	
  Ac8ve	
  Docs	
  ocs	
                Ac8ve	
  Docs	
  
                                                                                                                            	
                           Ac8ve	
  Docs	
  
                                                                                                                                                          	
  
                                                                                        Ac8ve	
  D
     	
   Doc	
  5	
      DOC	
              	
   Doc	
  4	
        DOC	
        	
   Doc	
  1	
          DOC	
             	
   Doc	
  9	
    DOC	
      	
   Doc	
  6	
       DOC	
  
     	
                                      	
                                  	
          Doc	
  3	
                     	
                            	
  
     	
   Doc	
  2	
      DOC	
              	
   Doc	
  7	
        DOC	
        	
   Doc	
  3	
                            	
   Doc	
  8	
               	
                    DOC	
  
     	
                                      	
                                  	
          Doc	
  6	
                     	
                            	
  
     	
                                      	
                     DOC	
        	
                                         	
                            	
  
     	
                                      	
                                  	
                                         	
                            	
  
     	
  
    Replica	
  Docs	
                        	
  
                                             Replica	
  Docs	
                   	
  Replica	
  Docs	
                      	
  
                                                                                                                           Replica	
  Docs	
              	
  
                                                                                                                                                         Replica	
  Docs	
  
     	
                                      	
                                  	
   Replica	
  Docs	
                     	
                            	
  
     	
   Doc	
  4	
      DOC	
              	
   Doc	
  6	
        DOC	
        	
   Doc	
  7	
   7	
   DOC	
  
                                                                                             Doc	
                          	
   Doc	
  5	
    DOC	
      	
   Doc	
  8	
       DOC	
  
     	
                                      	
                                  	
                                         	
                            	
  
     	
   Doc	
  1	
      DOC	
              	
   Doc	
  3	
        DOC	
        	
   Doc	
  9	
   9	
   DOC	
  
                                                                                             Doc	
                          	
   Doc	
  2	
               	
                    DOC	
  
     	
                                      	
                                  	
                                         	
                            	
  
     	
                                      	
                                  	
                                         	
                            	
  


                                                                       COUCHBASE	
  SERVER	
  	
  CLUSTER	
  

User	
  Configured	
  Replica	
  Count	
  =	
  1	
                                                                                                                                                                                          15	
  
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.




                                                                                                   SINGLE	
  INDEX	
  VIEW	
  




                                                                                                                                                                                                                                                                              16	
  
Couchbase	
  Server	
  Views	
  

 •  Couchbase	
  has	
  a	
  method	
  
    of	
  building	
  and	
                            map:	
  
                                                       function(doc)
    maintaining	
  views	
  over	
  the	
              {
    set	
  of	
  documents	
  within	
  a	
                emit(doc.name,
                                                           [doc.city, doc.salary]);
    bucket	
                                           }
                                                       	
  
 •  Can	
  be	
  used	
  for:	
                        reduce:	
  
      –  Secondary	
  indexes	
                        function (key, values, rereduce) {
                                                         var sum = 0;
      –  Aggrega8ons	
  and	
  stats	
                   for(i=0; i < values.length; i++)
                                                       {
      –  Analyzing	
  datasets	
                           sum = sum + values[i];
                                                         }
 •  Built	
  for	
  speed	
                            }
                                                         return(sum);

      –  Allow	
  relaxed	
  consistency	
  
         for	
  speed,	
  or	
  consistent	
  if	
  
         required	
  	
  
                                                                                        17	
  
Views	
  are	
  B+Trees	
  Over	
  the	
  Data	
  
                                                                                                                                     Key: "f"                                       Key: "f"
                                                                                                                                     Sum: 17                                        Sum: 17
                                                                                                                                         bits           0       0   0       0        bits      0    0     0     0




                                                                                          Key: "f"                       Key: "f"                                                                   Key: "f"                        Key: "f"
                                                                                          Sum: 17                        Sum: 17                                                                    Sum: 17                         Sum: 17
                                                                                           bits       0   0    0   0          bits   0    0         0       0                                           bits     0    0   0   0          bits       0       0       0       0




                                                    Key: "f"                     Key: "f"                          Key: "f"                                 Key: "f"                                Key: "f"                       Key: "f"                                     Key: "f"                        Key: "f"
                                                    Sum: 17                      Sum: 17                           Sum: 17                                  Sum: 17                                 Sum: 17                        Sum: 17                                      Sum: 17                         Sum: 17
                                                     bits    0   0       0   0     bits    0      0   0   0            bits     0    0   0      0            bits       0       0   0     0             bits     0    0   0   0         bits    0       0       0       0        bits      0   0      0    0       bits    0    0   0   0




 Key: "a"     Key: "b"     Key: "c"     Key: "d"             Key: "e"         Key: "f"                                            Key: "j"           Key: "k"                 Key: "l"         Key: "m"                             Key: "r"              Key: "s"                        Key: "t"          Key: "u"        Key: "v"         Key: "w"       Key: "x"      Key: "y"       Key: "z"
 Value: 4     Value: 2     Value: 0     Value: 6             Value: 4         Value: 4                                           Value: 4            Value: 4                Value: 4          Value: 4                            Value: 4              Value: 4                        Value: 4          Value: 4        Value: 4          Value: 4      Value: 4      Value: 4       Value: 4
vBucket: 1   vBucket: 2   vBucket: 3   vBucket: 4           vBucket: 5       vBucket: 6                                         vBucket: 10         vBucket: 11             vBucket: 12       vBucket: 13                         vBucket: 18           vBucket: 19                     vBucket: 20       vBucket: 21     vBucket: 22       vBucket: 23   vBucket: 24   vBucket: 25    vBucket: 26




                                                                                                                                                                                            Key: "n"          Key: "o"      Key: "p"         Key: "q"
                                                                                      Key: "g"         Key: "h"     Key: "i"                                                               Value: 4          Value: 4      Value: 4         Value: 4
                                                                                      Value: 4         Value: 4     Value: 4                                                              vBucket: 14       vBucket: 15   vBucket: 16      vBucket: 17
                                                                                     vBucket: 7       vBucket: 8   vBucket: 9




                  Views	
  are	
  Built	
  Atop	
  Incremental	
  Map	
  Reduce	
  
                  •  Distributed	
  throughout	
  the	
  cluster	
  
                  •  Query	
  API	
  abstracts	
  the	
  cluster	
  topology,	
  and	
  automa8cally	
  gathers	
  the	
  results	
  
                  •  Rebuilds	
  subsets	
  of	
  the	
  B+Tree	
  based	
  on	
  updates	
  



                                                                                                                                                                                                                                                                                                                                                                                      18	
  
Key: "m"                                       Key: "z"
                                                                                                                                     Sum: 92                                        Sum: 17
                                                                                                                                         bits           0       0   0       0        bits         0




                                                                                          Key: "f"                       Key: "m"
                                                                                          Sum: 21                        Sum: 71
                                                                                           bits       0   0    0   0          bits   0    0         0       0




                                                    Key: "d"                     Key: "f"                          Key: "i"                                 Key: "m"
                                                    Sum: 10                      Sum: 11                           Sum: 24                                  Sum: 47
                                                     bits    0   0       0   0     bits    0      0   0   0            bits     0    0   0      0            bits       0       0   0     0




 Key: "a"     Key: "b"     Key: "c"     Key: "d"             Key: "e"         Key: "f"                                            Key: "j"           Key: "k"                 Key: "l"            Ke
 Value: 4     Value: 2     Value: 0     Value: 6             Value: 4         Value: 4                                           Value: 4            Value: 4                Value: 4             Va
vBucket: 1   vBucket: 2   vBucket: 3   vBucket: 4           vBucket: 5       vBucket: 6                                         vBucket: 10         vBucket: 11             vBucket: 12          vBuc




                                                                                      Key: "g"         Key: "h"     Key: "i"
                                                                                      Value: 4         Value: 4     Value: 4

                                                                                                                                                                                        19	
  
                                                                                     vBucket: 7       vBucket: 8   vBucket: 9
Data	
  is	
  Distributed	
  Using	
  vbuckets,	
  but…	
  

 •  Couchbase	
  Server	
  has	
  1024	
  vbuckets	
  stored	
  
    throughout	
  the	
  cluster	
  




                                                                   20	
  
B-­‐Superstar:	
  a	
  new	
  B+Tree	
  ready	
  for	
  vbuckets	
  

    Only	
  one	
  B+Tree	
  per	
  
    node	
  with	
  masking	
  of	
  
    ac8ve	
  vbucket	
  Data.	
  




                                                                        S8ll	
  allows	
  concurrent	
  
Read	
  more	
  on	
  Damien’s	
  blog:	
                                  access	
  and	
  even	
  
hmp://damienkatz.net/2012/05/stabilizing_couchbase_server_2.html	
     materializing	
  tree	
  during	
  
                                                                                  rebalance	
                21	
  
Thanks	
  
 Q&A	
  
             Perry	
  Krug	
  




                                 22	
  

More Related Content

Similar to [B3]couchbase server for speed and scale with interactive applications sdec deview 2012

Is It API Time For A New Strategy?
Is It API Time For A New Strategy?Is It API Time For A New Strategy?
Is It API Time For A New Strategy?Pat Cappelaere
 
TU-Charts Project - First Spring
TU-Charts Project - First SpringTU-Charts Project - First Spring
TU-Charts Project - First SpringDidac Montero
 
Building enterprise applications using open source
Building enterprise applications using open sourceBuilding enterprise applications using open source
Building enterprise applications using open sourcePeter Batty
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)Peter Presnell
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?DreamLab
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumKeiichiro Ono
 
Big Stream Processing Systems, Big Graphs
Big Stream Processing Systems, Big GraphsBig Stream Processing Systems, Big Graphs
Big Stream Processing Systems, Big GraphsPetr Novotný
 
GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIPat Cappelaere
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EEDocker, Inc.
 
ACES QuakeSim 2011
ACES QuakeSim 2011ACES QuakeSim 2011
ACES QuakeSim 2011marpierc
 
Towards application development for the internet of things updated
Towards application development for the internet of things  updatedTowards application development for the internet of things  updated
Towards application development for the internet of things updatedPankesh Patel
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Rogue Wave Software
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesAll Things Open
 
Mobile+Cloud: a viable replacement for desktop cheminformatics?
Mobile+Cloud: a viable replacement for desktop cheminformatics?Mobile+Cloud: a viable replacement for desktop cheminformatics?
Mobile+Cloud: a viable replacement for desktop cheminformatics?Alex Clark
 
Artic Startup
Artic StartupArtic Startup
Artic StartupBobsNJ
 
NYC Chalk Talk
NYC Chalk TalkNYC Chalk Talk
NYC Chalk TalkBobsNJ
 
Offline Webapps
Offline Webapps Offline Webapps
Offline Webapps mnitchie
 
Active web page chapter for reading purpose
Active web page chapter for reading purposeActive web page chapter for reading purpose
Active web page chapter for reading purposeSambalSwetank
 

Similar to [B3]couchbase server for speed and scale with interactive applications sdec deview 2012 (20)

Is It API Time For A New Strategy?
Is It API Time For A New Strategy?Is It API Time For A New Strategy?
Is It API Time For A New Strategy?
 
First spring
First springFirst spring
First spring
 
TU-Charts Project - First Spring
TU-Charts Project - First SpringTU-Charts Project - First Spring
TU-Charts Project - First Spring
 
Building enterprise applications using open source
Building enterprise applications using open sourceBuilding enterprise applications using open source
Building enterprise applications using open source
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
 
Big Stream Processing Systems, Big Graphs
Big Stream Processing Systems, Big GraphsBig Stream Processing Systems, Big Graphs
Big Stream Processing Systems, Big Graphs
 
GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial API
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EE
 
Open GeoSocial API
Open GeoSocial APIOpen GeoSocial API
Open GeoSocial API
 
ACES QuakeSim 2011
ACES QuakeSim 2011ACES QuakeSim 2011
ACES QuakeSim 2011
 
Towards application development for the internet of things updated
Towards application development for the internet of things  updatedTowards application development for the internet of things  updated
Towards application development for the internet of things updated
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use Cases
 
Mobile+Cloud: a viable replacement for desktop cheminformatics?
Mobile+Cloud: a viable replacement for desktop cheminformatics?Mobile+Cloud: a viable replacement for desktop cheminformatics?
Mobile+Cloud: a viable replacement for desktop cheminformatics?
 
Artic Startup
Artic StartupArtic Startup
Artic Startup
 
NYC Chalk Talk
NYC Chalk TalkNYC Chalk Talk
NYC Chalk Talk
 
Offline Webapps
Offline Webapps Offline Webapps
Offline Webapps
 
Active web page chapter for reading purpose
Active web page chapter for reading purposeActive web page chapter for reading purpose
Active web page chapter for reading purpose
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
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
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
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
 

[B3]couchbase server for speed and scale with interactive applications sdec deview 2012

  • 1. Couchbase  Server  for  Speed  and   Scale  with  Interac8ve  Applica8ons   Perry  Krug   Presenter  Title   1  
  • 2. Agenda  (just  an  outline)   •  Needs  for  Interac8ve  Apps   –  Speed   •  Speed  of  access   •  Speed  of  app  development   –  Scale   •  Built  to  scale   –  Unique  architectural  principals   •  Clustered  system   –  Simple  for  applica8ons   –  Automa8c  sharding  of  data  across  cluster   •  Single  index  view   –  No  need  to  define  sharding  keys   –  Automa8c,  online  transfer  of  data  across  cluster   2  
  • 3. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. EXAMPLE  OF  AN   INTERACTIVE  APP   3  
  • 4. Instagrowth:  Android  Launch   E xample •  Instagram  gained  nearly  1  million  users  overnight   when  they  expanded  to  Android   4  
  • 5. xample E 1 Instagram = 7.5M MAU* 5  
  • 6. Draw  Something  -­‐  Social  Game   •  50  million  downloads  in  50  days   •  That’s  almost  5  Instagrams.  In  2  months.   6  
  • 7. Goes  Viral  3  Weeks  AZer  Launch   Draw  Something  by  OMGPOP   Daily  Ac8ve  Users  (millions)   16   14   12   10   8   6   4   2   2/6   8   10   12   14   16   18   20   22   24   26   28   3/1   3   5   7   9   11   13   15   17   19   21   7  
  • 8.  Database  Opera8ons   Draw  Something  by  OMGPOP   Daily  Ac8ve  Users  (millions)   16   14   12   10   8   By  March  19,  there  were     over  30,000,000  downloads  of  the  app,   6   over  5,000  drawings  being  stored  per  second,   over  2,200,000,000  drawings  stored,   over  105,000  database  transac8ons  per  second,   4   and  over  3.3  terabytes  of  data  stored.   2   2/6   8   10   12   14   16   18   20   22   24   26   28   3/1   3   5   7   9   11   13   15   17   19   21   8  
  • 9. Social  Gaming  on  Couchbase   iki   9  
  • 10. Speed   •  Modern,  interac8ve  applica8ons  require  speed   –  Web  pages  are  dynamic,  interac8ve  and  may  incrementally   fetch  content  for  display   –  Mobile  applica8ons  cannot  carry  all  of  the  content,  so  they   need  to  be  able  to  fetch  data  on  demand   •  Couchbase  Speed  via…   –  Managed,  built  in  cache   •  memcached  compa8ble,  built  on  memcached   –  Protocol  design   •  Client  can  directly  access  data  objects  within  the  cluster   •  No  quorum  reads  needed  to  determine  version,  always  consistent   10  
  • 11. Scale   •  Modern  app  deployments  are  always  on,  available   24x7x365   –  Some  applica8ons  may  have  a  lifecycle  which  requires   scaling  down,  in  addi8onal  to  scaling  up   •  Couchbase  scales  via…   –  Automa8cally  sharding  data  among  the  nodes  of  the  cluster   and  atomically  transferring  vbuckets   –  Coordina8ng  these  changes  with  client  libraries  accessing   the  cluster   11  
  • 12. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. CLUSTERING  ARCHITECTURE   12  
  • 13. Basic  Opera8on   APP  SERVER  1   APP  SERVER  2        Docs  distributed  evenly  across       COUCHBASE  CLIENT  LIBRARY   servers  in  the  cluster   COUCHBASE  CLIENT  LIBRARY                Each  server  stores  both  ac/ve   CLUSTER  MAP     CLUSTER  MAP             &  replica  docs         Only  one  server  ac8ve  at  a  8me    Client  library  provides  app  with   Read/Write/Update   Read/Write/Update   simple  interface  to  database    Cluster  map  provides  map  to   which  server  doc  is  on     App  never  needs  to  know   SERVER  1   SERVER  2   SERVER  3     App  reads,  writes,  updates   Ac8ve  Docs   Ac8ve  Docs   Ac8ve  Docs         docs     Doc  5   DOC     Doc  4   DOC     Doc  1   DOC           Mul8ple  App  Servers  can     Doc  2   DOC     Doc  7   DOC     Doc  3   DOC   access  same  document  at           Doc  9   DOC     Doc  8   DOC     Doc  6   DOC   same  8me             Replica  Docs     Replica  Docs     Replica  Docs           Doc  4   DOC     Doc  6   DOC     Doc  7   DOC           Doc  1   DOC     Doc  3   DOC     Doc  9   DOC           Doc  8   DOC     Doc  2   DOC     Doc  5   DOC   COUCHBASE  SERVER    CLUSTER   User  Configured  Replica  Count  =  1   13  
  • 14. Add  Nodes   APP  SERVER  1   APP  SERVER  2             Two  servers  added  to   COUCHBASE  CLIENT  LIBRARY   COUCHBASE  CLIENT  LIBRARY   cluster             One-­‐click  opera8on     CLUSTER  MAP     CLUSTER  MAP         Docs  automa8cally               rebalanced  across   cluster     Even  distribu8on  of   docs   Read/Write/Update   Read/Write/Update     Minimum  doc   movement     Cluster  map  updated     App  database  calls  now   distributed  over  larger  #   SERVER  1   SERVER  2   SERVER  3   SERVER  4   SERVER  5   of  servers   Ac8ve  Docs       Ac8ve  Docs    Ac8ve  Docs  ocs   Ac8ve  Docs     Ac8ve  Docs     Ac8ve  D   Doc  5   DOC     Doc  4   DOC     Doc  1   DOC             Doc  3         Doc  2   DOC     Doc  7   DOC     Doc  3   DOC             Doc  6         Doc  9   DOC     Doc  8   DOC     Doc  6   DOC                   Replica  Docs     Replica  Docs    Replica  Docs     Replica  Docs     Replica  Docs         Replica  Docs         Doc  4   DOC     Doc  6   DOC     Doc  7   7   DOC   Doc                   Doc  1   DOC     Doc  3   DOC     Doc  9   9   DOC   Doc                   Doc  8   DOC     Doc  2   DOC     Doc  5   DOC       COUCHBASE  SERVER    CLUSTER   User  Configured  Replica  Count  =  1   14  
  • 15. Fail  Over  Node   APP  SERVER  1   APP  SERVER  2     App  servers  happily  accessing  docs       on  Server  3       COUCHBASE  CLIENT  LIBRARY     Server  fails   COUCHBASE  CLIENT  LIBRARY           App  server  requests  to  server  3  fail       CLUSTER  MAP     CLUSTER  MAP       Cluster  detects  server  has  failed               Promotes  replicas  of  docs  to  ac/ve         Updates  cluster  map     App  server  requests  for  docs  now   go  to  appropriate  server     Typically  rebalance    would  follow     SERVER  1   SERVER  2   SERVER  3   SERVER  4   SERVER  5   Ac8ve  Docs       Ac8ve  Docs    Ac8ve  Docs  ocs   Ac8ve  Docs     Ac8ve  Docs     Ac8ve  D   Doc  5   DOC     Doc  4   DOC     Doc  1   DOC     Doc  9   DOC     Doc  6   DOC         Doc  3         Doc  2   DOC     Doc  7   DOC     Doc  3     Doc  8     DOC         Doc  6           DOC                     Replica  Docs     Replica  Docs    Replica  Docs     Replica  Docs     Replica  Docs         Replica  Docs         Doc  4   DOC     Doc  6   DOC     Doc  7   7   DOC   Doc     Doc  5   DOC     Doc  8   DOC               Doc  1   DOC     Doc  3   DOC     Doc  9   9   DOC   Doc     Doc  2     DOC                       COUCHBASE  SERVER    CLUSTER   User  Configured  Replica  Count  =  1   15  
  • 16. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. SINGLE  INDEX  VIEW   16  
  • 17. Couchbase  Server  Views   •  Couchbase  has  a  method   of  building  and   map:   function(doc) maintaining  views  over  the   { set  of  documents  within  a   emit(doc.name, [doc.city, doc.salary]); bucket   }   •  Can  be  used  for:   reduce:   –  Secondary  indexes   function (key, values, rereduce) { var sum = 0; –  Aggrega8ons  and  stats   for(i=0; i < values.length; i++) { –  Analyzing  datasets   sum = sum + values[i]; } •  Built  for  speed   } return(sum); –  Allow  relaxed  consistency   for  speed,  or  consistent  if   required     17  
  • 18. Views  are  B+Trees  Over  the  Data   Key: "f" Key: "f" Sum: 17 Sum: 17 bits 0 0 0 0 bits 0 0 0 0 Key: "f" Key: "f" Key: "f" Key: "f" Sum: 17 Sum: 17 Sum: 17 Sum: 17 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 Key: "f" Key: "f" Key: "f" Key: "f" Key: "f" Key: "f" Key: "f" Key: "f" Sum: 17 Sum: 17 Sum: 17 Sum: 17 Sum: 17 Sum: 17 Sum: 17 Sum: 17 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 Key: "a" Key: "b" Key: "c" Key: "d" Key: "e" Key: "f" Key: "j" Key: "k" Key: "l" Key: "m" Key: "r" Key: "s" Key: "t" Key: "u" Key: "v" Key: "w" Key: "x" Key: "y" Key: "z" Value: 4 Value: 2 Value: 0 Value: 6 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 vBucket: 1 vBucket: 2 vBucket: 3 vBucket: 4 vBucket: 5 vBucket: 6 vBucket: 10 vBucket: 11 vBucket: 12 vBucket: 13 vBucket: 18 vBucket: 19 vBucket: 20 vBucket: 21 vBucket: 22 vBucket: 23 vBucket: 24 vBucket: 25 vBucket: 26 Key: "n" Key: "o" Key: "p" Key: "q" Key: "g" Key: "h" Key: "i" Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 vBucket: 14 vBucket: 15 vBucket: 16 vBucket: 17 vBucket: 7 vBucket: 8 vBucket: 9 Views  are  Built  Atop  Incremental  Map  Reduce   •  Distributed  throughout  the  cluster   •  Query  API  abstracts  the  cluster  topology,  and  automa8cally  gathers  the  results   •  Rebuilds  subsets  of  the  B+Tree  based  on  updates   18  
  • 19. Key: "m" Key: "z" Sum: 92 Sum: 17 bits 0 0 0 0 bits 0 Key: "f" Key: "m" Sum: 21 Sum: 71 bits 0 0 0 0 bits 0 0 0 0 Key: "d" Key: "f" Key: "i" Key: "m" Sum: 10 Sum: 11 Sum: 24 Sum: 47 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 bits 0 0 0 0 Key: "a" Key: "b" Key: "c" Key: "d" Key: "e" Key: "f" Key: "j" Key: "k" Key: "l" Ke Value: 4 Value: 2 Value: 0 Value: 6 Value: 4 Value: 4 Value: 4 Value: 4 Value: 4 Va vBucket: 1 vBucket: 2 vBucket: 3 vBucket: 4 vBucket: 5 vBucket: 6 vBucket: 10 vBucket: 11 vBucket: 12 vBuc Key: "g" Key: "h" Key: "i" Value: 4 Value: 4 Value: 4 19   vBucket: 7 vBucket: 8 vBucket: 9
  • 20. Data  is  Distributed  Using  vbuckets,  but…   •  Couchbase  Server  has  1024  vbuckets  stored   throughout  the  cluster   20  
  • 21. B-­‐Superstar:  a  new  B+Tree  ready  for  vbuckets   Only  one  B+Tree  per   node  with  masking  of   ac8ve  vbucket  Data.   S8ll  allows  concurrent   Read  more  on  Damien’s  blog:   access  and  even   hmp://damienkatz.net/2012/05/stabilizing_couchbase_server_2.html   materializing  tree  during   rebalance   21  
  • 22. Thanks   Q&A   Perry  Krug   22