SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
APACHECON NORTH AMERICA 2013

    CASSANDRA
    INTERNALS
                       Aaron Morton
                       @aaronmorton
                     www.thelastpickle.com




   Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
About Me
       Freelance Cassandra Consultant
      Based in Wellington, New Zealand
        Apache Cassandra Committer
     Data Stax MVP for Apache Cassandra
Architecture
   Code
Cassandra Architecture
                             Clients


                              API's


                          Cluster Aware


                         Cluster Unaware



                              Disk
Cassandra Cluster Architecture
                     Clients


                      API's             API's


                  Cluster Aware     Cluster Aware


                 Cluster Unaware   Cluster Unaware



                      Disk              Disk

                     Node 1            Node 2
Dynamo Cluster Architecture
                  Clients


                   API's       API's


                  Dynamo      Dynamo


                  Database    Database



                   Disk        Disk

                  Node 1      Node 2
Architecture
    API
 Dynamo
 Database
API Transports

                    Thrift
                 Native Binary
                  Read Line
                     RMI
Thrift Transport

   //Custom TServer implementations

   o.a.c.thrift.CustomTThreadPoolServer
   o.a.c.thrift.CustomTNonBlockingServer
   o.a.c.thrift.CustomTHsHaServer
API Transports

                     Thrift
                 Native Binary
                  Read Line
                      RMI
Native Binary Transport

         Beta in Cassandra 1.2
           Uses Netty 3.5
             Enabled with
   start_native_transport
                    (Disabled by default)
o.a.c.transport.Server.run()

   //Setup the Netty server
   new ExecutionHandler()
   new NioServerSocketChannelFactory()
   ServerBootstrap.setPipelineFactory()
o.a.c.transport.Message.Dispatcher.messageReceived()

   //Process message from client
   ServerConnection.validateNewMessage()
   Request.execute()
   ServerConnection.applyStateTransition()
   Channel.write()
o.a.c.transport.messages

   CredentialsMessage()
   EventMessage()
   ExecuteMessage()
   PrepareMessage()
   QueryMessage()
   ResultMessage()
                  (And more...)
Messages


  Defined in the Native Binary
           Protocol
 $SRC/doc/native_protocol.spec
API Services

                JMX
                CLI
               Thrift
               CQL 3
JMX Management Beans

 Spread around the code base.

   Interfaces named *MBean
JMX Management Beans

    Registered with the names
             such as
     org.apache.cassandra.db:
        type=StorageProxy
API Services

                JMX
                CLI
               Thrift
               CQL 3
o.a.c.cli.CliMain.main()

  // Connect to server to read input
  this.connect()
  this.evaluateFileStatements()
  this.processStatementInteractive()
CLI Grammar


         ANTLR Grammar
  $SRC/src/java/o/a/c/cli/CLI.g
o.a.c.cli.CliClient.executeCLIStatement()

   // Process statement
   CliCompiler.compileQuery() #ANTLR
   switch (tree.getType())
       case...
API Services

                JMX
                CLI
               Thrift
               CQL 3
o.a.c.thrift.CassandraServer

  // Implements Thrift Interface
  // Access control
  // Input validation
  // Mapping to/from Thrift and internal types
Thrift Interface


                   Thrift IDL
$SRC/interface/cassandra.thrift
o.a.c.thrift.CassandraServer.get_slice()

  // get columns for one row
  Tracing.begin()
  ClientState cState = state()
  cState.hasColumnFamilyAccess()
  multigetSliceInternal()
CassandraServer.multigetSliceInternal()

  // get columns for may rows
  ThriftValidation.validate*()
  // Create ReadCommands
  getSlice()
CassandraServer.getSlice()

  // Process ReadCommands
  // return Thrift types

  readColumnFamily()
  thriftifyColumnFamily()
CassandraServer.readColumnFamily()

  // Process ReadCommands
  // Return ColumnFamilies

  StorageProxy.read()
API Services

                JMX
                CLI
               Thrift
               CQL 3
o.a.c.cql3.QueryProcessor

  // Prepares and executes CQL3 statements
  // Used by Thrift & Native transports
  // Access control
  // Input validation
  // Returns transport.ResultMessage
CQL3 Grammar


         ANTLR Grammar
       $SRC/o.a.c.cql3/Cql.g
o.a.c.cql3.statements.ParsedStatement

  // Subclasses generated by ANTLR
  // Tracks bound term count
  // Prepare CQLStatement
  prepare()
o.a.c.cql3.statements.CQLStatement

  checkAccess(ClientState state)
  validate(ClientState state)
  execute(ConsistencyLevel cl,
          QueryState state,
          List<ByteBuffer> variables)
o.a.c.cql3.functions.Function

  argsType()
  returnType()
  execute(List<ByteBuffer>
          parameters)
statements.SelectStatement.RawStatement

  // Implements ParsedStatement
  // Input validation
  prepare()
statements.SelectStatement.execute()

  // Create ReadCommands
  StorageProxy.read()
Architecture
    API
 Dynamo
 Database
Dynamo Layer
               o.a.c.service
                 o.a.c.net
                 o.a.c.dht
               o.a.c.locator
                 o.a.c.gms

               o.a.c.stream
o.a.c.service.StorageProxy

  // Cluster wide storage operations
  // Select endpoints & check CL available
  // Send messages to Stages
  // Wait for response
  // Store Hints
o.a.c.service.StorageService

  // Ring operations
  // Track ring state
  // Start & stop ring membership
  // Node & token queries
o.a.c.service.IResponseResolver

  preprocess(MessageIn<T> message)
  resolve() throws
   DigestMismatchException

  RowDigestResolver
  RowDataResolver
  RangeSliceResponseResolver
Response Handlers / Callback

  implements IAsyncCallback<T>

  response(MessageIn<T> msg)
o.a.c.service.ReadCallback.get()

  //Wait for blockfor & data
  condition.await(timeout,
   TimeUnit.MILLISECONDS)

  throw ReadTimeoutException()

  resolver.resolve()
o.a.c.service.StorageProxy.fetchRows()

  getLiveSortedEndpoints()
  new RowDigestResolver()
  new ReadCallback()
  MessagingService.sendRR()
  ---------------------------------------
  ReadCallback.get() # blocking
  catch (DigestMismatchException ex)
  catch (ReadTimeoutException ex)
Dynamo Layer
               o.a.c.service
                 o.a.c.net
                 o.a.c.dht
               o.a.c.locator
                o.a.c.gms

               o.a.c.stream
o.a.c.net.MessagingService.verb<<enum>>

  MUTATION
  READ
  REQUEST_RESPONSE
  TREE_REQUEST
  TREE_RESPONSE
                (And more...)
o.a.c.net.MessagingService.verbHandlers


  new EnumMap<Verb,
     IVerbHandler>(Verb.class)
o.a.c.net.IVerbHandler<T>

  doVerb(MessageIn<T> message,
         String id);
o.a.c.net.MessagingService.verbStages

  new EnumMap<MessagingService.Verb,
      Stage>(MessagingService.Verb.class)
o.a.c.net.MessagingService.receive()

  runnable = new MessageDeliveryTask(
    message, id, timestamp);

  StageManager.getStage(
    message.getMessageType());

  stage.execute(runnable);
o.a.c.net.MessageDeliveryTask.run()

  // If dropable and rpc_timeout
  MessagingService.incrementDroppedMessag
es(verb);

  MessagingService.getVerbHandler(verb)
  verbHandler.doVerb(message, id)
Dynamo Layer
               o.a.c.service
                 o.a.c.net
                 o.a.c.dht
               o.a.c.locator
                o.a.c.gms

               o.a.c.stream
o.a.c.dht.IPartitioner<T extends Token>

  getToken(ByteBuffer key)
  getRandomToken()

  LocalPartitioner
  RandomPartitioner
  Murmur3Partitioner
o.a.c.dht.Token<T>

  compareTo(Token<T> o)

  BytesToken
  BigIntegerToken
  LongToken
Dynamo Layer
               o.a.c.service
                 o.a.c.net
                 o.a.c.dht
               o.a.c.locator
                 o.a.c.gms

               o.a.c.stream
o.a.c.locator.IEndpointSnitch

  getRack(InetAddress endpoint)
  getDatacenter(InetAddress endpoint)
  sortByProximity(InetAddress address,
   List<InetAddress> addresses)

  SimpleSnitch
  PropertyFileSnitch
  Ec2MultiRegionSnitch
o.a.c.locator.AbstractReplicationStrategy

  getNaturalEndpoints(
      RingPosition searchPosition)
  calculateNaturalEndpoints(Token
    searchToken, TokenMetadata
    tokenMetadata)

  SimpleStrategy
  NetworkTopologyStrategy
o.a.c.locator.TokenMetadata

  BiMultiValMap<Token, InetAddress>
      tokenToEndpointMap
  BiMultiValMap<Token, InetAddress>
      bootstrapTokens
  Set<InetAddress> leavingEndpoints
Dynamo Layer
               o.a.c.service
                 o.a.c.net
                 o.a.c.dht
               o.a.c.locator
                o.a.c.gms

               o.a.c.stream
o.a.c.gms.VersionedValue

  // VersionGenerator.getNextVersion()

  public final int version;
  public final String value;
o.a.c.gms.ApplicationState<<enum>>

  STATUS
  LOAD
  SCHEMA
  DC
  RACK
                 (And more...)
o.a.c.gms.HeartBeatState

  //VersionGenerator.getNextVersion();

  private int generation;
  private int version;
o.a.c.gms.Gossiper.GossipTask.run()

  // SYN -> ACK -> ACK2
  makeRandomGossipDigest()
  new GossipDigestSyn()

  // Use MessagingService.sendOneWay()
  Gossiper.doGossipToLiveMember()
  Gossiper.doGossipToUnreachableMember()
  Gossiper.doGossipToSeed()
gms.GossipDigestSynVerbHandler.doVerb()

  Gossiper.examineGossiper()
  new GossipDigestAck()
  MessagingService.sendOneWay()
gms.GossipDigestAck2VerbHandler.doVerb()

  Gossiper.notifyFailureDetector()
  Gossiper.applyStateLocally()
Architecture
  API Layer
Dynamo Layer
Database Layer
Database Layer
                 o.a.c.concurrent
                      o.a.c.db

                   o.a.c.cache
                     o.a.c.io
                   o.a.c.trace
o.a.c.concurrent.StageManager

  stages = new EnumMap<Stage,
    ThreadPoolExecutor>(Stage.class);

  getStage(Stage stage)
o.a.c.concurrent.Stage


  READ
  MUTATION
  GOSSIP
  REQUEST_RESPONSE
  ANTI_ENTROPY
                (And more...)
Database Layer
                 o.a.c.concurrent
                      o.a.c.db

                   o.a.c.cache
                     o.a.c.io
                   o.a.c.trace
o.a.c.db.Table

  // Keyspace
  open(String table)
  getColumnFamilyStore(String cfName)

  getRow(QueryFilter filter)
  apply(RowMutation mutation,
       boolean writeCommitLog)
o.a.c.db.ColumnFamilyStore

  // Column Family
  getColumnFamily(QueryFilter filter)
  getTopLevelColumns(...)

  apply(DecoratedKey key,
       ColumnFamily columnFamily,
       SecondaryIndexManager.Updater
       indexer)
o.a.c.db.IColumnContainer

  addColumn(IColumn column)
  remove(ByteBuffer columnName)

  ColumnFamily
  SuperColumn
o.a.c.db.ISortedColumns

  addColumn(IColumn column,
            Allocator allocator)
  removeColumn(ByteBuffer name)

  ArrayBackedSortedColumns
  AtomicSortedColumns
  TreeMapBackedSortedColumns
o.a.c.db.Memtable

  put(DecoratedKey key,
      ColumnFamily columnFamily,
      SecondaryIndexManager.Updater
      indexer)

  flushAndSignal(CountDownLatch latch,
                 Future<ReplayPosition>
                 context)
Memtable.FlushRunnable.writeSortedContent
s()

  // SSTableWriter
  createFlushWriter()

  // Iterate through rows & CF’s in order
  writer.append()
o.a.c.db.ReadCommand

  getRow(Table table)

  SliceByNamesReadCommand
  SliceFromReadCommand
o.a.c.db.IDiskAtomFilter

  getMemtableColumnIterator(...)
  getSSTableColumnIterator(...)

  IdentityQueryFilter
  NamesQueryFilter
  SliceQueryFilter
Thanks.
Aaron Morton
                     @aaronmorton
                   www.thelastpickle.com




Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License

Más contenido relacionado

La actualidad más candente

003 admin featuresandclients
003 admin featuresandclients003 admin featuresandclients
003 admin featuresandclients
Scott Miao
 
006 performance tuningandclusteradmin
006 performance tuningandclusteradmin006 performance tuningandclusteradmin
006 performance tuningandclusteradmin
Scott Miao
 
005 cluster monitoring
005 cluster monitoring005 cluster monitoring
005 cluster monitoring
Scott Miao
 

La actualidad más candente (20)

Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
 
Cassandra Internals Overview
Cassandra Internals OverviewCassandra Internals Overview
Cassandra Internals Overview
 
Mysql database basic user guide
Mysql database basic user guideMysql database basic user guide
Mysql database basic user guide
 
Postgresql Database Administration Basic - Day1
Postgresql  Database Administration Basic  - Day1Postgresql  Database Administration Basic  - Day1
Postgresql Database Administration Basic - Day1
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3
 
003 admin featuresandclients
003 admin featuresandclients003 admin featuresandclients
003 admin featuresandclients
 
PostgreSQL Replication High Availability Methods
PostgreSQL Replication High Availability MethodsPostgreSQL Replication High Availability Methods
PostgreSQL Replication High Availability Methods
 
002 hbase clientapi
002 hbase clientapi002 hbase clientapi
002 hbase clientapi
 
006 performance tuningandclusteradmin
006 performance tuningandclusteradmin006 performance tuningandclusteradmin
006 performance tuningandclusteradmin
 
Learning postgresql
Learning postgresqlLearning postgresql
Learning postgresql
 
Mongodb replication
Mongodb replicationMongodb replication
Mongodb replication
 
005 cluster monitoring
005 cluster monitoring005 cluster monitoring
005 cluster monitoring
 
Cassandra and Spark
Cassandra and Spark Cassandra and Spark
Cassandra and Spark
 
Cassandra SF Meetup - CQL Performance With Apache Cassandra 3.X
Cassandra SF Meetup - CQL Performance With Apache Cassandra 3.XCassandra SF Meetup - CQL Performance With Apache Cassandra 3.X
Cassandra SF Meetup - CQL Performance With Apache Cassandra 3.X
 
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, SalesforceHBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
 
Example R usage for oracle DBA UKOUG 2013
Example R usage for oracle DBA UKOUG 2013Example R usage for oracle DBA UKOUG 2013
Example R usage for oracle DBA UKOUG 2013
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
Sap basis administrator user guide
Sap basis administrator   user guideSap basis administrator   user guide
Sap basis administrator user guide
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
Cassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE SearchCassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE Search
 

Similar a Apache Con NA 2013 - Cassandra Internals

解读server.xml文件
解读server.xml文件解读server.xml文件
解读server.xml文件
wensheng wei
 

Similar a Apache Con NA 2013 - Cassandra Internals (20)

Apache Cassandra in Bangalore - Cassandra Internals and Performance
Apache Cassandra in Bangalore - Cassandra Internals and PerformanceApache Cassandra in Bangalore - Cassandra Internals and Performance
Apache Cassandra in Bangalore - Cassandra Internals and Performance
 
Cassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsCassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra Internals
 
Cassandra Community Webinar - August 22 2013 - Cassandra Internals
Cassandra Community Webinar - August 22 2013 - Cassandra InternalsCassandra Community Webinar - August 22 2013 - Cassandra Internals
Cassandra Community Webinar - August 22 2013 - Cassandra Internals
 
Cassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, OverviewCassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, Overview
 
Cassandra SF 2013 - Cassandra Internals
Cassandra SF 2013 - Cassandra InternalsCassandra SF 2013 - Cassandra Internals
Cassandra SF 2013 - Cassandra Internals
 
C* Summit EU 2013: Cassandra Internals
C* Summit EU 2013: Cassandra Internals C* Summit EU 2013: Cassandra Internals
C* Summit EU 2013: Cassandra Internals
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streaming
 
What the CRaC - Superfast JVM startup
What the CRaC - Superfast JVM startupWhat the CRaC - Superfast JVM startup
What the CRaC - Superfast JVM startup
 
You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301]
You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301]You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301]
You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301]
 
apache-refcard-a4.pdf
apache-refcard-a4.pdfapache-refcard-a4.pdf
apache-refcard-a4.pdf
 
Hands-on Lab: Comparing Redis with Relational
Hands-on Lab: Comparing Redis with RelationalHands-on Lab: Comparing Redis with Relational
Hands-on Lab: Comparing Redis with Relational
 
Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)
 
Hands-on Lab: Amazon ElastiCache
Hands-on Lab: Amazon ElastiCacheHands-on Lab: Amazon ElastiCache
Hands-on Lab: Amazon ElastiCache
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
解读server.xml文件
解读server.xml文件解读server.xml文件
解读server.xml文件
 
Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014
 
Recipes for Running Spark Streaming Applications in Production-(Tathagata Das...
Recipes for Running Spark Streaming Applications in Production-(Tathagata Das...Recipes for Running Spark Streaming Applications in Production-(Tathagata Das...
Recipes for Running Spark Streaming Applications in Production-(Tathagata Das...
 
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
 
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
 
Practical non blocking microservices in java 8
Practical non blocking microservices in java 8Practical non blocking microservices in java 8
Practical non blocking microservices in java 8
 

Más de aaronmorton

Cassandra does what ? Code Mania 2012
Cassandra does what ? Code Mania 2012Cassandra does what ? Code Mania 2012
Cassandra does what ? Code Mania 2012
aaronmorton
 
Nzpug welly-cassandra-02-12-2010
Nzpug welly-cassandra-02-12-2010Nzpug welly-cassandra-02-12-2010
Nzpug welly-cassandra-02-12-2010
aaronmorton
 

Más de aaronmorton (15)

Cassandra Day Atlanta 2016 - Monitoring Cassandra
Cassandra Day Atlanta 2016  - Monitoring CassandraCassandra Day Atlanta 2016  - Monitoring Cassandra
Cassandra Day Atlanta 2016 - Monitoring Cassandra
 
Cassandra London March 2016 - Lightening talk - introduction to incremental ...
Cassandra London March 2016  - Lightening talk - introduction to incremental ...Cassandra London March 2016  - Lightening talk - introduction to incremental ...
Cassandra London March 2016 - Lightening talk - introduction to incremental ...
 
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable CassandraCassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
 
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
 
Cassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large NodesCassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large Nodes
 
Cassandra Community Webinar August 29th 2013 - In Case Of Emergency, Break Glass
Cassandra Community Webinar August 29th 2013 - In Case Of Emergency, Break GlassCassandra Community Webinar August 29th 2013 - In Case Of Emergency, Break Glass
Cassandra Community Webinar August 29th 2013 - In Case Of Emergency, Break Glass
 
Cassandra SF 2013 - In Case Of Emergency Break Glass
Cassandra SF 2013 - In Case Of Emergency Break GlassCassandra SF 2013 - In Case Of Emergency Break Glass
Cassandra SF 2013 - In Case Of Emergency Break Glass
 
Cassandra Community Webinar - Introduction To Apache Cassandra 1.2
Cassandra Community Webinar  - Introduction To Apache Cassandra 1.2Cassandra Community Webinar  - Introduction To Apache Cassandra 1.2
Cassandra Community Webinar - Introduction To Apache Cassandra 1.2
 
Cassandra SF 2012 - Technical Deep Dive: query performance
Cassandra SF 2012 - Technical Deep Dive: query performance Cassandra SF 2012 - Technical Deep Dive: query performance
Cassandra SF 2012 - Technical Deep Dive: query performance
 
Hello @world #cassandra
Hello @world #cassandraHello @world #cassandra
Hello @world #cassandra
 
Cassandra does what ? Code Mania 2012
Cassandra does what ? Code Mania 2012Cassandra does what ? Code Mania 2012
Cassandra does what ? Code Mania 2012
 
Nzpug welly-cassandra-02-12-2010
Nzpug welly-cassandra-02-12-2010Nzpug welly-cassandra-02-12-2010
Nzpug welly-cassandra-02-12-2010
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
Building a distributed Key-Value store with Cassandra
Building a distributed Key-Value store with CassandraBuilding a distributed Key-Value store with Cassandra
Building a distributed Key-Value store with Cassandra
 
Cassandra - Wellington No Sql
Cassandra - Wellington No SqlCassandra - Wellington No Sql
Cassandra - Wellington No Sql
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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 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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Apache Con NA 2013 - Cassandra Internals