SlideShare une entreprise Scribd logo
1  sur  33
Cassandra on Castle
                                   Tim Moreton
                                   @timmoreton




Saturday, 24 September 2011
Outline

                    • Why Castle?
                    • A [quick] tour of Castle
                    • Cassandra on Castle
                    • An aside into Memcache
                    • Cross-cluster snapshots and clones

Saturday, 24 September 2011
Before the Flood
                                       1990

                                   Small databases
                                    BTree indexes
                                  BTree File systems
                                        RAID
                                    Old hardware



Saturday, 24 September 2011
Two Revolutions
                                                        2010
                                   Distributed, shared-nothing databases
                              Write-optimised indexes          Write-optimised indexes

                          BTree file systems                    BTree file systems
                                     RAID                ...          RAID
                               New hardware                     New hardware




Saturday, 24 September 2011
Bridging the Gap
                                               2011

                                Distributed, shared-nothing databases


                                 Castle                      Castle
                                                 ...
                              New hardware               New hardware




Saturday, 24 September 2011
Saturday, 24 September 2011
                                                Shared memory interface
                                                                                          keys
                                                                                                                                                  Userspace
                                                                                                                                                Acunu Kernel
                                                                                   values
                                                                                                                      In-kernel
                                                              async, shared
                                                               memory ring                                            workloads




                               interface
                                                                                     shared buffers




                              userspace
                                                                            Streaming interface
                                                  range           key              buffered              key           buffered
                                                 queries         insert           value insert           get           value get




                                interface
                              kernelspace
                                                                                  Doubling Arrays
                                                              insert                                                                             Bloom filters
                                                             queues                                                      key
                                                                                                                         get                            x
                                                 arrays
                                                  range                                       arrays
                                                 queries                                    management




                              mapping layer
                                                              key




                              doubling array
                                                             insert                         merges




                                                                                     Arrays
                                                               key                                                      Version tree
                                                              insert                         btree
                                                                                                                key
                                                                                                                get
                                                  btree
                                                  range




                              modlist btree
                              mapping layer
                                                 queries                          value arrays




                                                                                                               Cache
                                                      "Extent" layer
                                                                                                     extent block
                                                                       extent                           cache
                                                 freespace
                                                                      allocator




                                                                                                                                   prefetcher
                                                  manager
                                                                      & mapper




                               cacheing layer
                                                                                                                         flusher




                              block mapping &
                                                                                                      page cache




                                                                                                                                                Linux Kernel
                                                       Block layer                                     Memory manager




                                 MM layers
                              linux's block &
Shared memory interface




                                                                                                                                               Castle
                                                                   keys
                                                                                                                           Userspace
                                                                                                                         Acunu Kernel
       userspace
        interface



                                                            values
                                                                                               In-kernel
                                       async, shared
                                        memory ring                                            workloads
                                                              shared buffers
       kernelspace




                                                                                                                                         • Like ZFS+BDB for Big Data
                                                     Streaming interface
         interface




                           range           key              buffered              key           buffered
                          queries         insert           value insert           get           value get




                                                                                                                                         • Opensource (GPLv2, MIT
                                                           Doubling Arrays
       doubling array
       mapping layer




                                       insert                                                                             Bloom filters
                                      queues                                                      key
                                                                                                  get
                          arrays                                                                                                 x




                                                                                                                                           for user libraries)
                           range                                       arrays
                          queries                                    management
                                       key
                                      insert                         merges




                                                              Arrays
                                                                                                                                         • http://bitbucket.org/acunu
       mapping layer
       modlist btree




                                        key                                                      Version tree
                                       insert                         btree




                                                                                                                                         • Loadable Kernel Module,
                                                                                         key
                                                                                         get
                           btree
                           range
                          queries                          value arrays




                                                                                        Cache
                                                                                                                                           targeting CentOS’s 2.6.18
       block mapping &




                                                                                                                                         • http://www.acunu.com/
        cacheing layer




                               "Extent" layer
                                                                                                            prefetcher




                                                                              extent block
                                                extent                           cache
                          freespace
                                               allocator
                           manager
                                                                                                  flusher




                                               & mapper

                                                                               page cache
                                                                                                                                           blogs/andy-twigg/why-
                                                                                                                                           acunu-kernel/
       linux's block &




                                                                                                                         Linux Kernel
          MM layers




                                Block layer                                     Memory manager




Saturday, 24 September 2011
The Interface
                              Shared memory interface
                                                                  keys
                                                                                                   Userspace
                                                                                                 Acunu Kernel
             userspace
              interface




                                                           values
                                                                                    In-kernel
                                          async, shared
                                           memory ring                              workloads
                                                             shared buffers
             kernelspace




                                                      Streaming interface
               interface




                                range         key          buffered           key    buffered
                               queries       insert       value insert        get    value get




                                                          Doubling Arrays
             doubling array
             mapping layer




                                          insert                                                  Bloom filters
                                         queues                                        key
                                                                                       get
                               arrays                                                                    x
                                range
                               queries
                                                              castle_{back,objects}.c
                                                                  arrays
                                                                management
Saturday, 24 September 2011               key
The Interface
             Tree of versions
                                                     Attachment
           •       Create, snapshot, clone

           •       Attach/detach
                                                 •   Keys: any dimensional
                                                 •   Values: any size
                                      v0
                                                 •   Simple get, put, delete
                              v1            v3
                                                 •   Iterator, slice interfaces

                v12           v13    v15
                                                 •   Streaming interface

                              v16   v24


Saturday, 24 September 2011
The Interface
                              Shared memory interface
                                                                  keys
                                                                                                   Userspace
                                                                                                 Acunu Kernel
             userspace
              interface




                                                           values
                                                                                    In-kernel
                                          async, shared
                                           memory ring                              workloads
                                                             shared buffers
             kernelspace




                                                      Streaming interface
               interface




                                range         key          buffered           key    buffered
                               queries       insert       value insert        get    value get




                                                          Doubling Arrays
             doubling array
             mapping layer




                                          insert                                                  Bloom filters
                                         queues                                        key
                                                                                       get
                               arrays                                                                    x
                                range
                               queries
                                                              castle_{back,objects}.c
                                                                  arrays
                                                                management
Saturday, 24 September 2011               key
interface
             userspac
                                                          values
                                                                                         In-kernel
                                         async, shared
                                          memory ring                                    workloads
                                                            shared buffers
             kernelspace
               interface
                              Doubling Array         Streaming interface
                               range         key          buffered           key          buffered
                              queries       insert       value insert        get          value get




                                                         Doubling Arrays
             doubling array
             mapping layer




                                         insert                                                           Bloom filters
                                        queues                                              key
                                                                                            get
                              arrays                                                                             x
                               range                                 arrays
                              queries                              management
                                         key
                                        insert                     merges




                                                            Arrays
             mapping layer
             modlist btree




                                          key                                              Version tree
                                         insert                     btree
                                                                                   key
                                                                                   get
                               btree
                               range
                              queries                    value arrays

                                                                            castle_{da,bloom}.c
Saturday, 24 September 2011
Doubling Array
                                      Inserts


                  2           2   9


                  9




       Buffer arrays in memory
      until we have > B of them
Saturday, 24 September 2011
Doubling Array
                                       Inserts


                 11           2   9     2   8   9   11


                  8           8   11
                                                         etc...




Saturday, 24 September 2011
8KB @ 100MB/s, w/ 8ms seek      100 / 5
                          = 100 IOs/s          = 20 updates/s
  ~ log (2^30)/log 100
    = 5 IOs/update
                                                        Range Query
                                       Update
                                                           (Size Z)
                                        O(logB N)             O(Z/B)
                   B-Tree              random IOs           random IOs

                                       O((log N)/B)           O(Z/B)
       Doubling Array                 sequential IOs       sequential IOs



     ~ log (2^30)/100                8KB @ 100MB/s             13k / 0.2
   = 0.2 IOs/update                   = 13k IOs/s          = 65k updates/s

                 B = “block size”, say 8KB at 100 bytes/entry ~= 100 entries

Saturday, 24 September 2011
interface
             userspac
                                                          values
                                                                                         In-kernel
                                         async, shared
                                          memory ring                                    workloads
                                                            shared buffers
             kernelspace
               interface
                              Doubling Array         Streaming interface
                               range         key          buffered           key          buffered
                              queries       insert       value insert        get          value get




                                                         Doubling Arrays
             doubling array
             mapping layer




                                         insert                                                           Bloom filters
                                        queues                                              key
                                                                                            get
                              arrays                                                                             x
                               range                                 arrays
                              queries                              management
                                         key
                                        insert                     merges




                                                            Arrays
             mapping layer
             modlist btree




                                          key                                              Version tree
                                         insert                     btree
                                                                                   key
                                                                                   get
                               btree
                               range
                              queries                    value arrays

                                                                            castle_{da,bloom}.c
Saturday, 24 September 2011
Doubling Arrays

             doubling array
             mapping layer
                               “Mod-list” B-Tree
                                             insert                                                                       Bloom filters
                                            queues                                                 key
                                                                                                   get
                                arrays                                                                                           x
                                 range                                      arrays
                                queries                                   management
                                             key
                                            insert                       merges




                                                                   Arrays
             mapping layer
             modlist btree




                                              key                                                  Version tree
                                             insert                        btree
                                                                                             key
                                                                                             get
                                 btree
                                 range
                                queries                          value arrays




                                                                                          Cache
             block mapping &
              cacheing layer




                                     "Extent" layer




                                                                                                             prefetcher
                                                                                   extent block
                                                      extent                          cache

                               So how to do snapshots and clones?
                                freespace
                                 manager
                                                     allocator




                                                                                                    flusher
                                                     & mapper

                                                                                   page cache


                                                                 castle_{btree,versions}.c
             k&




                                                                                                                          Linux Kernel
             s




Saturday, 24 September 2011
Copy-on-Write BTree
                                            Idea:
                                         • Apply path-copying [DSST] to
                                            the B-tree
                                            Problems:
                                         • Space blowup: Each update may
                                            rewrite an entire path
                                         • Slow updates: as above
               A log file system makes updates sequential, but relies on
               random access and garbage collection (achilles heel!)


Saturday, 24 September 2011
Range
                              Update                              Space
                                                Query
           CoW B-               O(logB Nv)        O(Z/B)
                                                                O(N B logB Nv)
            Tree               random IOs       random IOs

       “BigTable”              O((log N)/B)       O(Z/B)
                                                                   O(VN)
         LevelDB
        style DA              sequential IOs   sequential IOs

       “Mod-list”              O((log N)/B)       O(Z/B)
        Castle
        in a DA               sequential IOs   sequential IOs
                                                                    O(N)



                 Nv = #keys live (accessible) at version v


Saturday, 24 September 2011
Stratified B-Trees
                           •           Retires Copy-On-Write B-Trees, the bedrock of
                                       modern storage (Sun ZFS, NetApp WAFL, ...)
                           •           Patent-pending, next-generation data structure
                           •           Theoretically optimal, yet highly practical

                                          Copy-on-write B-tree finally beaten.

           Andy Twigg∗ , Andrew Byde∗ , Grzegorz Miło´∗ , Tim Moreton∗ , John Wilkes†∗ and Tom Wilkie∗
                                                ∗
                                                      s
                                                  Acunu, † Google                                                                     http://goo.gl/INTb1
                                          firstname@acunu.com


          Abstract                                                         This paper presents some recent results on new con-
                                                                        structions for B-trees that go beyond copy-on-write, that
          A classic versioned data structure in storage and com-        we call ‘stratified B-trees’. They solve two open prob-
          puter science is the copy-on-write (CoW) B-tree – it un-      lems: Firstly. they offer a fully-versioned B-tree with
          derlies many of today’s file systems and databases, in-        optimal space and the same lookup time as the CoW B-
          cluding WAFL, ZFS, Btrfs and more. Unfortunately, it          tree. Secondly, they are the first to offer other points on
          doesn’t inherit the B-tree’s optimality properties; it has    the Pareto optimal query/update tradeoff curve, and in
          poor space utilization, cannot offer fast updates, and re-    particular, our structures offer fully-versioned updates in


                                                                                                                                      http://goo.gl/gzihe
          lies on random IO to scale. Yet, nothing better has           o(1) IOs, while using linear space. Experimental results
          been developed since. We describe the ‘stratified B-tree’,     indicate 100,000s updates/s on a large SATA disk, two
          which beats the CoW B-tree in every way. In particu-          orders of magnitude faster than a CoW B-tree.
          lar, it is the first versioned dictionary to achieve optimal      Since stratified B-trees subsume CoW B-trees (and in-
          tradeoffs between space, query and update performance.        deed all other known versioned external-memory dictio-
          Therefore, we believe there is no longer a good reason to     naries), we believe there is no longer a good reason to
          use CoW B-trees for versioned data stores.                    use them for versioned data stores. Acunu is develop-
                                                                        ing a commercial in-kernel implementation of stratified
                                                                        B-tress, which we hope to release soon.
          1 Introduction
Saturday, 24 September 2011
          The B-tree was presented in 1972 [1], and it survives
Doubling Arrays

             doubling array
             mapping layer
                               “Mod-list” B-Tree
                                             insert                                                                       Bloom filters
                                            queues                                                 key
                                                                                                   get
                                arrays                                                                                           x
                                 range                                      arrays
                                queries                                   management
                                             key
                                            insert                       merges




                                                                   Arrays
             mapping layer
             modlist btree




                                              key                                                  Version tree
                                             insert                        btree
                                                                                             key
                                                                                             get
                                 btree
                                 range
                                queries                          value arrays




                                                                                          Cache
             block mapping &
              cacheing layer




                                     "Extent" layer




                                                                                                             prefetcher
                                                                                   extent block
                                                      extent                          cache
                                freespace
                                                     allocator
                                 manager




                                                                                                    flusher
                                                     & mapper

                                                                                   page cache


                                                                 castle_{btree,versions}.c
             k&




                                                                                                                          Linux Kernel
             s




Saturday, 24 September 2011
Arrays




             mapping layer
             modlist btree
                                             key                                               Version tree
                                            insert                     btree




                               Disk Layout: RDA
                                                                                         key
                                                                                         get
                                 btree
                                 range
                                queries                      value arrays




                                                                                      Cache
             block mapping &
              cacheing layer




                                     "Extent" layer




                                                                                                         prefetcher
                                                                               extent block
                                                  extent                          cache
                                freespace
                                                 allocator
                                 manager




                                                                                                flusher
                                                 & mapper

                                                                               page cache
             linux's block &




                                                                                                                      Linux Kernel
                MM layers




                                      Block layer                                Memory manager




                     castle_{cache,extent,freespace,rebuild}.c
Saturday, 24 September 2011
Disk Layout: RDA
                                        random duplicate allocation

                               4    2      1    4    5    2    5    3    1    3

                               7    10     7    6    8    9    9    10   6    8

                               15   12     14   11   13   14   11   12   13   15

                                                               16        16




Saturday, 24 September 2011
SSD tiering [taster]

                    • Why? Key to >cache random reads
                    • v1: SSD for metadata structures
                     • Redundancy provided by disk
                    • SSD for selected collection data (CFs)
                    • 10x write rate on SSDs than regular FSs

Saturday, 24 September 2011
Saturday, 24 September 2011
                                                Shared memory interface
                                                                                          keys
                                                                                                                                                  Userspace
                                                                                                                                                Acunu Kernel
                                                                                   values
                                                                                                                      In-kernel
                                                              async, shared
                                                               memory ring                                            workloads




                               interface
                                                                                     shared buffers




                              userspace
                                                                            Streaming interface
                                                  range           key              buffered              key           buffered
                                                 queries         insert           value insert           get           value get




                                interface
                              kernelspace
                                                                                  Doubling Arrays
                                                              insert                                                                             Bloom filters
                                                             queues                                                      key
                                                                                                                         get                            x
                                                 arrays
                                                  range                                       arrays
                                                 queries                                    management




                              mapping layer
                                                              key




                              doubling array
                                                             insert                         merges




                                                                                     Arrays
                                                               key                                                      Version tree
                                                              insert                         btree
                                                                                                                key
                                                                                                                get
                                                  btree
                                                  range




                              modlist btree
                              mapping layer
                                                 queries                          value arrays




                                                                                                               Cache
                                                      "Extent" layer
                                                                                                     extent block
                                                                       extent                           cache
                                                 freespace
                                                                      allocator




                                                                                                                                   prefetcher
                                                  manager
                                                                      & mapper




                               cacheing layer
                                                                                                                         flusher




                              block mapping &
                                                                                                      page cache




                                                                                                                                                Linux Kernel
                                                       Block layer                                     Memory manager




                                 MM layers
                              linux's block &
Cassandra on Castle
                  • Eliminate all ‘storage heavy lifting’
                  • Extend ColumnFamilyStore
                  • Efficient JNI bindings to libcastle C library
                  • row, col, value, t: (row, col) -> (t,value)
                  • row, a|b|c|d, value, t:
                          (row, a, b, c, d, col) -> (t,value)


Saturday, 24 September 2011
Small random inserts
                                Inserting 3 billion rows


                                               Acunu powered Cassandra -
                                                    ‘standard’ Cassandra -




Saturday, 24 September 2011
Insert latency
                              While inserting 3 billion rows

                                                   Acunu powered Cassandra x
                                                        ‘standard’ Cassandra +




Saturday, 24 September 2011
Small random range queries
                              Performed immediately after inserts

                                                     Acunu powered Cassandra -
                                                          ‘standard’ Cassandra -




Saturday, 24 September 2011
Memcache + Cassandra
     get/insert                Cass client              get/put     memcached
   Same data!                                     100k random
                              Replication logic     inserts/sec!    Replication logic



                                                     Text
                        Cassandra        memcache              Cassandra       memcache


                                 Castle                                Castle
                                                        ...
                                  H/W                                   H/W


Saturday, 24 September 2011
v2: Cross-cluster versions
                              •   Eventually consistent
                              •   Spans data centers
                              •   Tolerates node failure,
                                  network partition
                              •   High performance,
                                  no space overhead
                              •   Dev/Test/Staging on Prod
                                  clusters



Saturday, 24 September 2011
So...
                    • Castle = ZFS + BDB for Big Data
                    • Cassandra on Castle runs apps unmodified
                    • Up to 100x throughput under load
                    • No GC pauses: very predictable latencies
                    • v2: Cross-cluster snapshot and clone
                    • SSD optimisation
Saturday, 24 September 2011
Saturday, 24 September 2011
Questions?


                                        Tim Moreton // @timmoreton



                                   http://goo.gl/INTb1              http://goo.gl/gzihe



 Apache, Apache Cassandra, Cassandra, Hadoop, and the eye and
 elephant logos are trademarks of the Apache Software Foundation.

Saturday, 24 September 2011

Contenu connexe

Tendances

IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)npinto
 
Presentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturnePresentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturneRenuda SARL
 
The Native NDB Engine for Memcached
The Native NDB Engine for MemcachedThe Native NDB Engine for Memcached
The Native NDB Engine for MemcachedJohn David Duncan
 
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...npinto
 
Cloumon enterprise
Cloumon enterpriseCloumon enterprise
Cloumon enterpriseGruter
 
Rc111 010d-wcf
Rc111 010d-wcfRc111 010d-wcf
Rc111 010d-wcfKayvan Sh
 
Stefano Giordano
Stefano GiordanoStefano Giordano
Stefano GiordanoGoWireless
 
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...balmanme
 
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...DATAVERSITY
 
Oracle Arch
Oracle ArchOracle Arch
Oracle Archqiuye
 

Tendances (17)

IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)
IAP09 CUDA@MIT 6.963 - Lecture 04: CUDA Advanced #1 (Nicolas Pinto, MIT)
 
MXF & AAF
MXF & AAFMXF & AAF
MXF & AAF
 
Presentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturnePresentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_Saturne
 
System events concept presentation
System events concept presentationSystem events concept presentation
System events concept presentation
 
The Native NDB Engine for Memcached
The Native NDB Engine for MemcachedThe Native NDB Engine for Memcached
The Native NDB Engine for Memcached
 
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...
IAP09 CUDA@MIT 6.963 - Lecture 01: GPU Computing using CUDA (David Luebke, NV...
 
Threads 2x[1]
Threads 2x[1]Threads 2x[1]
Threads 2x[1]
 
Cloumon enterprise
Cloumon enterpriseCloumon enterprise
Cloumon enterprise
 
Rc111 010d-wcf
Rc111 010d-wcfRc111 010d-wcf
Rc111 010d-wcf
 
Stefano Giordano
Stefano GiordanoStefano Giordano
Stefano Giordano
 
Session9part2 Servers Detailed
Session9part2  Servers DetailedSession9part2  Servers Detailed
Session9part2 Servers Detailed
 
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...
MemzNet: Memory-Mapped Zero-copy Network Channel -- Streaming exascala data o...
 
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...
Building Applications Using NoSQL Architectures on top of SQL Azure: How MSN ...
 
MetaCDN
MetaCDNMetaCDN
MetaCDN
 
Oracle Arch
Oracle ArchOracle Arch
Oracle Arch
 
Network Management in System Center 2012 SP1 - VMM
Network Management in System Center 2012  SP1 - VMM Network Management in System Center 2012  SP1 - VMM
Network Management in System Center 2012 SP1 - VMM
 
RCIM 2008 - - ALTERA
RCIM 2008 - - ALTERARCIM 2008 - - ALTERA
RCIM 2008 - - ALTERA
 

En vedette

ZFS Tutorial LISA 2011
ZFS Tutorial LISA 2011ZFS Tutorial LISA 2011
ZFS Tutorial LISA 2011Richard Elling
 
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...DataStax
 
Scylla Summit 2016: ScyllaDB, Present and Future
Scylla Summit 2016: ScyllaDB, Present and FutureScylla Summit 2016: ScyllaDB, Present and Future
Scylla Summit 2016: ScyllaDB, Present and FutureScyllaDB
 
Performance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterPerformance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterScyllaDB
 
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB,  or how we implemented a 10-times faster CassandraSeastar / ScyllaDB,  or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB, or how we implemented a 10-times faster CassandraTzach Livyatan
 
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...DataStax
 

En vedette (8)

ZFS Tutorial LISA 2011
ZFS Tutorial LISA 2011ZFS Tutorial LISA 2011
ZFS Tutorial LISA 2011
 
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
 
Data Grids vs Databases
Data Grids vs DatabasesData Grids vs Databases
Data Grids vs Databases
 
Scylla Summit 2016: ScyllaDB, Present and Future
Scylla Summit 2016: ScyllaDB, Present and FutureScylla Summit 2016: ScyllaDB, Present and Future
Scylla Summit 2016: ScyllaDB, Present and Future
 
Performance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterPerformance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla Cluster
 
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB,  or how we implemented a 10-times faster CassandraSeastar / ScyllaDB,  or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
 
Data Grids and Data Caching
Data Grids and Data CachingData Grids and Data Caching
Data Grids and Data Caching
 
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
 

Similaire à Cassandra on Castle

High Availability with Novell Cluster Services for Novell Open Enterprise Ser...
High Availability with Novell Cluster Services for Novell Open Enterprise Ser...High Availability with Novell Cluster Services for Novell Open Enterprise Ser...
High Availability with Novell Cluster Services for Novell Open Enterprise Ser...Novell
 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DaySebastien Goasguen
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Cyrille Le Clerc
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Publicis Sapient Engineering
 
Acunu & OCaml: Experience Report, CUFP
Acunu & OCaml: Experience Report, CUFPAcunu & OCaml: Experience Report, CUFP
Acunu & OCaml: Experience Report, CUFPAcunu
 

Similaire à Cassandra on Castle (8)

High Availability with Novell Cluster Services for Novell Open Enterprise Ser...
High Availability with Novell Cluster Services for Novell Open Enterprise Ser...High Availability with Novell Cluster Services for Novell Open Enterprise Ser...
High Availability with Novell Cluster Services for Novell Open Enterprise Ser...
 
DevCloud and CloudMonkey
DevCloud and CloudMonkeyDevCloud and CloudMonkey
DevCloud and CloudMonkey
 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud Day
 
Evolution: It's a process
Evolution: It's a processEvolution: It's a process
Evolution: It's a process
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
 
Acunu & OCaml: Experience Report, CUFP
Acunu & OCaml: Experience Report, CUFPAcunu & OCaml: Experience Report, CUFP
Acunu & OCaml: Experience Report, CUFP
 
SQL Azure in deep
SQL Azure in deepSQL Azure in deep
SQL Azure in deep
 

Plus de Acunu

Acunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu
 
Virtual nodes: Operational Aspirin
Virtual nodes: Operational AspirinVirtual nodes: Operational Aspirin
Virtual nodes: Operational AspirinAcunu
 
Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu
 
Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsAcunu
 
Acunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu
 
All Your Base
All Your BaseAll Your Base
All Your BaseAcunu
 
Realtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraRealtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraAcunu
 
Realtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonRealtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonAcunu
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time CassandraAcunu
 
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Acunu
 
Realtime Analytics with Cassandra
Realtime Analytics with CassandraRealtime Analytics with Cassandra
Realtime Analytics with CassandraAcunu
 
Acunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu
 
Exploring Big Data value for your business
Exploring Big Data value for your businessExploring Big Data value for your business
Exploring Big Data value for your businessAcunu
 
Realtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraRealtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraAcunu
 
Progressive NOSQL: Cassandra
Progressive NOSQL: CassandraProgressive NOSQL: Cassandra
Progressive NOSQL: CassandraAcunu
 
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Acunu
 
Cassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraCassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraAcunu
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsAcunu
 
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Acunu
 
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixCassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixAcunu
 

Plus de Acunu (20)

Acunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on Cassandra
 
Virtual nodes: Operational Aspirin
Virtual nodes: Operational AspirinVirtual nodes: Operational Aspirin
Virtual nodes: Operational Aspirin
 
Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013
 
Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problems
 
Acunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra Apps
 
All Your Base
All Your BaseAll Your Base
All Your Base
 
Realtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraRealtime Analytics with Apache Cassandra
Realtime Analytics with Apache Cassandra
 
Realtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonRealtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX London
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time Cassandra
 
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
 
Realtime Analytics with Cassandra
Realtime Analytics with CassandraRealtime Analytics with Cassandra
Realtime Analytics with Cassandra
 
Acunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra London
 
Exploring Big Data value for your business
Exploring Big Data value for your businessExploring Big Data value for your business
Exploring Big Data value for your business
 
Realtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraRealtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with Cassandra
 
Progressive NOSQL: Cassandra
Progressive NOSQL: CassandraProgressive NOSQL: Cassandra
Progressive NOSQL: Cassandra
 
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
 
Cassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraCassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into Cassandra
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
 
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
 
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixCassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
 

Dernier

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Cassandra on Castle

  • 1. Cassandra on Castle Tim Moreton @timmoreton Saturday, 24 September 2011
  • 2. Outline • Why Castle? • A [quick] tour of Castle • Cassandra on Castle • An aside into Memcache • Cross-cluster snapshots and clones Saturday, 24 September 2011
  • 3. Before the Flood 1990 Small databases BTree indexes BTree File systems RAID Old hardware Saturday, 24 September 2011
  • 4. Two Revolutions 2010 Distributed, shared-nothing databases Write-optimised indexes Write-optimised indexes BTree file systems BTree file systems RAID ... RAID New hardware New hardware Saturday, 24 September 2011
  • 5. Bridging the Gap 2011 Distributed, shared-nothing databases Castle Castle ... New hardware New hardware Saturday, 24 September 2011
  • 6. Saturday, 24 September 2011 Shared memory interface keys Userspace Acunu Kernel values In-kernel async, shared memory ring workloads interface shared buffers userspace Streaming interface range key buffered key buffered queries insert value insert get value get interface kernelspace Doubling Arrays insert Bloom filters queues key get x arrays range arrays queries management mapping layer key doubling array insert merges Arrays key Version tree insert btree key get btree range modlist btree mapping layer queries value arrays Cache "Extent" layer extent block extent cache freespace allocator prefetcher manager & mapper cacheing layer flusher block mapping & page cache Linux Kernel Block layer Memory manager MM layers linux's block &
  • 7. Shared memory interface Castle keys Userspace Acunu Kernel userspace interface values In-kernel async, shared memory ring workloads shared buffers kernelspace • Like ZFS+BDB for Big Data Streaming interface interface range key buffered key buffered queries insert value insert get value get • Opensource (GPLv2, MIT Doubling Arrays doubling array mapping layer insert Bloom filters queues key get arrays x for user libraries) range arrays queries management key insert merges Arrays • http://bitbucket.org/acunu mapping layer modlist btree key Version tree insert btree • Loadable Kernel Module, key get btree range queries value arrays Cache targeting CentOS’s 2.6.18 block mapping & • http://www.acunu.com/ cacheing layer "Extent" layer prefetcher extent block extent cache freespace allocator manager flusher & mapper page cache blogs/andy-twigg/why- acunu-kernel/ linux's block & Linux Kernel MM layers Block layer Memory manager Saturday, 24 September 2011
  • 8. The Interface Shared memory interface keys Userspace Acunu Kernel userspace interface values In-kernel async, shared memory ring workloads shared buffers kernelspace Streaming interface interface range key buffered key buffered queries insert value insert get value get Doubling Arrays doubling array mapping layer insert Bloom filters queues key get arrays x range queries castle_{back,objects}.c arrays management Saturday, 24 September 2011 key
  • 9. The Interface Tree of versions Attachment • Create, snapshot, clone • Attach/detach • Keys: any dimensional • Values: any size v0 • Simple get, put, delete v1 v3 • Iterator, slice interfaces v12 v13 v15 • Streaming interface v16 v24 Saturday, 24 September 2011
  • 10. The Interface Shared memory interface keys Userspace Acunu Kernel userspace interface values In-kernel async, shared memory ring workloads shared buffers kernelspace Streaming interface interface range key buffered key buffered queries insert value insert get value get Doubling Arrays doubling array mapping layer insert Bloom filters queues key get arrays x range queries castle_{back,objects}.c arrays management Saturday, 24 September 2011 key
  • 11. interface userspac values In-kernel async, shared memory ring workloads shared buffers kernelspace interface Doubling Array Streaming interface range key buffered key buffered queries insert value insert get value get Doubling Arrays doubling array mapping layer insert Bloom filters queues key get arrays x range arrays queries management key insert merges Arrays mapping layer modlist btree key Version tree insert btree key get btree range queries value arrays castle_{da,bloom}.c Saturday, 24 September 2011
  • 12. Doubling Array Inserts 2 2 9 9 Buffer arrays in memory until we have > B of them Saturday, 24 September 2011
  • 13. Doubling Array Inserts 11 2 9 2 8 9 11 8 8 11 etc... Saturday, 24 September 2011
  • 14. 8KB @ 100MB/s, w/ 8ms seek 100 / 5 = 100 IOs/s = 20 updates/s ~ log (2^30)/log 100 = 5 IOs/update Range Query Update (Size Z) O(logB N) O(Z/B) B-Tree random IOs random IOs O((log N)/B) O(Z/B) Doubling Array sequential IOs sequential IOs ~ log (2^30)/100 8KB @ 100MB/s 13k / 0.2 = 0.2 IOs/update = 13k IOs/s = 65k updates/s B = “block size”, say 8KB at 100 bytes/entry ~= 100 entries Saturday, 24 September 2011
  • 15. interface userspac values In-kernel async, shared memory ring workloads shared buffers kernelspace interface Doubling Array Streaming interface range key buffered key buffered queries insert value insert get value get Doubling Arrays doubling array mapping layer insert Bloom filters queues key get arrays x range arrays queries management key insert merges Arrays mapping layer modlist btree key Version tree insert btree key get btree range queries value arrays castle_{da,bloom}.c Saturday, 24 September 2011
  • 16. Doubling Arrays doubling array mapping layer “Mod-list” B-Tree insert Bloom filters queues key get arrays x range arrays queries management key insert merges Arrays mapping layer modlist btree key Version tree insert btree key get btree range queries value arrays Cache block mapping & cacheing layer "Extent" layer prefetcher extent block extent cache So how to do snapshots and clones? freespace manager allocator flusher & mapper page cache castle_{btree,versions}.c k& Linux Kernel s Saturday, 24 September 2011
  • 17. Copy-on-Write BTree Idea: • Apply path-copying [DSST] to the B-tree Problems: • Space blowup: Each update may rewrite an entire path • Slow updates: as above A log file system makes updates sequential, but relies on random access and garbage collection (achilles heel!) Saturday, 24 September 2011
  • 18. Range Update Space Query CoW B- O(logB Nv) O(Z/B) O(N B logB Nv) Tree random IOs random IOs “BigTable” O((log N)/B) O(Z/B) O(VN) LevelDB style DA sequential IOs sequential IOs “Mod-list” O((log N)/B) O(Z/B) Castle in a DA sequential IOs sequential IOs O(N) Nv = #keys live (accessible) at version v Saturday, 24 September 2011
  • 19. Stratified B-Trees • Retires Copy-On-Write B-Trees, the bedrock of modern storage (Sun ZFS, NetApp WAFL, ...) • Patent-pending, next-generation data structure • Theoretically optimal, yet highly practical Copy-on-write B-tree finally beaten. Andy Twigg∗ , Andrew Byde∗ , Grzegorz Miło´∗ , Tim Moreton∗ , John Wilkes†∗ and Tom Wilkie∗ ∗ s Acunu, † Google http://goo.gl/INTb1 firstname@acunu.com Abstract This paper presents some recent results on new con- structions for B-trees that go beyond copy-on-write, that A classic versioned data structure in storage and com- we call ‘stratified B-trees’. They solve two open prob- puter science is the copy-on-write (CoW) B-tree – it un- lems: Firstly. they offer a fully-versioned B-tree with derlies many of today’s file systems and databases, in- optimal space and the same lookup time as the CoW B- cluding WAFL, ZFS, Btrfs and more. Unfortunately, it tree. Secondly, they are the first to offer other points on doesn’t inherit the B-tree’s optimality properties; it has the Pareto optimal query/update tradeoff curve, and in poor space utilization, cannot offer fast updates, and re- particular, our structures offer fully-versioned updates in http://goo.gl/gzihe lies on random IO to scale. Yet, nothing better has o(1) IOs, while using linear space. Experimental results been developed since. We describe the ‘stratified B-tree’, indicate 100,000s updates/s on a large SATA disk, two which beats the CoW B-tree in every way. In particu- orders of magnitude faster than a CoW B-tree. lar, it is the first versioned dictionary to achieve optimal Since stratified B-trees subsume CoW B-trees (and in- tradeoffs between space, query and update performance. deed all other known versioned external-memory dictio- Therefore, we believe there is no longer a good reason to naries), we believe there is no longer a good reason to use CoW B-trees for versioned data stores. use them for versioned data stores. Acunu is develop- ing a commercial in-kernel implementation of stratified B-tress, which we hope to release soon. 1 Introduction Saturday, 24 September 2011 The B-tree was presented in 1972 [1], and it survives
  • 20. Doubling Arrays doubling array mapping layer “Mod-list” B-Tree insert Bloom filters queues key get arrays x range arrays queries management key insert merges Arrays mapping layer modlist btree key Version tree insert btree key get btree range queries value arrays Cache block mapping & cacheing layer "Extent" layer prefetcher extent block extent cache freespace allocator manager flusher & mapper page cache castle_{btree,versions}.c k& Linux Kernel s Saturday, 24 September 2011
  • 21. Arrays mapping layer modlist btree key Version tree insert btree Disk Layout: RDA key get btree range queries value arrays Cache block mapping & cacheing layer "Extent" layer prefetcher extent block extent cache freespace allocator manager flusher & mapper page cache linux's block & Linux Kernel MM layers Block layer Memory manager castle_{cache,extent,freespace,rebuild}.c Saturday, 24 September 2011
  • 22. Disk Layout: RDA random duplicate allocation 4 2 1 4 5 2 5 3 1 3 7 10 7 6 8 9 9 10 6 8 15 12 14 11 13 14 11 12 13 15 16 16 Saturday, 24 September 2011
  • 23. SSD tiering [taster] • Why? Key to >cache random reads • v1: SSD for metadata structures • Redundancy provided by disk • SSD for selected collection data (CFs) • 10x write rate on SSDs than regular FSs Saturday, 24 September 2011
  • 24. Saturday, 24 September 2011 Shared memory interface keys Userspace Acunu Kernel values In-kernel async, shared memory ring workloads interface shared buffers userspace Streaming interface range key buffered key buffered queries insert value insert get value get interface kernelspace Doubling Arrays insert Bloom filters queues key get x arrays range arrays queries management mapping layer key doubling array insert merges Arrays key Version tree insert btree key get btree range modlist btree mapping layer queries value arrays Cache "Extent" layer extent block extent cache freespace allocator prefetcher manager & mapper cacheing layer flusher block mapping & page cache Linux Kernel Block layer Memory manager MM layers linux's block &
  • 25. Cassandra on Castle • Eliminate all ‘storage heavy lifting’ • Extend ColumnFamilyStore • Efficient JNI bindings to libcastle C library • row, col, value, t: (row, col) -> (t,value) • row, a|b|c|d, value, t: (row, a, b, c, d, col) -> (t,value) Saturday, 24 September 2011
  • 26. Small random inserts Inserting 3 billion rows Acunu powered Cassandra - ‘standard’ Cassandra - Saturday, 24 September 2011
  • 27. Insert latency While inserting 3 billion rows Acunu powered Cassandra x ‘standard’ Cassandra + Saturday, 24 September 2011
  • 28. Small random range queries Performed immediately after inserts Acunu powered Cassandra - ‘standard’ Cassandra - Saturday, 24 September 2011
  • 29. Memcache + Cassandra get/insert Cass client get/put memcached Same data! 100k random Replication logic inserts/sec! Replication logic Text Cassandra memcache Cassandra memcache Castle Castle ... H/W H/W Saturday, 24 September 2011
  • 30. v2: Cross-cluster versions • Eventually consistent • Spans data centers • Tolerates node failure, network partition • High performance, no space overhead • Dev/Test/Staging on Prod clusters Saturday, 24 September 2011
  • 31. So... • Castle = ZFS + BDB for Big Data • Cassandra on Castle runs apps unmodified • Up to 100x throughput under load • No GC pauses: very predictable latencies • v2: Cross-cluster snapshot and clone • SSD optimisation Saturday, 24 September 2011
  • 33. Questions? Tim Moreton // @timmoreton http://goo.gl/INTb1 http://goo.gl/gzihe Apache, Apache Cassandra, Cassandra, Hadoop, and the eye and elephant logos are trademarks of the Apache Software Foundation. Saturday, 24 September 2011