SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Wednesday, March 13, 13
#WHOIS
                  Adron Hall | @adron | Coder, Messenger, Recon




Wednesday, March 13, 13
芭蕉

Wednesday, March 13, 13
Distributed, masterless, highly-available key/value store




Wednesday, March 13, 13
DESIGN GOALS
              Fault-Tolerance          Ops Friendliness

              Horizontal Scalability   Predictability

              Low-latency              High-Availability




Wednesday, March 13, 13
Use, when & what to use Riak for...


                Users/Profiles             Logging Systems
               Metadata                    Sensor Data
                Session Storage            Notification Systems
                Object Storage             Record Systems




Wednesday, March 13, 13
IN PRODUCTION AT



                             And 1000s more...




Wednesday, March 13, 13
DATA MODEL




Wednesday, March 13, 13
{“Key”:“Value”}

        •   Values are stored against keys

        •   Key/Value + Metadata = Object

        •   Fundamental Unit of Replication

        •   Any Datatype will work

        •   Record to disk in binary format




Wednesday, March 13, 13
<<BUCKET>>/<<KEY>>

        •   Virtual Namespace

        •   Bucket + Keys = Object Address

        •   Buckets have properties

        •   Objects in bucket inherit properties

        •   No relationships between buckets




Wednesday, March 13, 13
DATA ACCESS




Wednesday, March 13, 13
INTERFACES
             HTTP API - Via a little piece of magic called Webmachine
             Largely-faithful REST implementation



             Protocol Buffers API - Thanks, Google!
             Compact, binary protocol




Wednesday, March 13, 13
CLIENT LIBS
              Python      Java    Clojure
              Erlang      PHP     Haskell
                                            ...and more via Basho
             Ruby         C/C++   OCaml
                                            or our community.
              Perl        .NET    Scala
              Dart        Go      Node.js




Wednesday, March 13, 13
RIAK GIVES YOU
                    [FOUR] WAYS TO STORE,
                     RETRIEVE, AND QUERY
                             DATA



Wednesday, March 13, 13
CRUD

                  // GET
          1
          2
          3
          4        GET  /buckets/bucket/keys/key        
          5
          6

                  // PUT
          7
          8
          9
          10       POST  /buckets/bucket/keys/key        //  Riak-­‐defined  key
          11
                   PUT  /buckets/bucket/keys/key            //  User-­‐defined  key
          12
          13

                  // DELETE
          14
          15
          16
          17       DELETE  /buckets/bucket/keys/key      
          18




Wednesday, March 13, 13
MapReduce




              Distributed processing system using Riak Pipe
              Efficient for targeted queries over known key range
              Write jobs in Erlang or JS. (Erlang more performant)




Wednesday, March 13, 13
Secondary Indexing (2i)
                 riak_object                 X-Riak-Index-email_bin
                                                     “mark@basho.com”



                 riak_object                    X-Riak-Index-value_int
                                                           “42”




             Tag objects with custom metadata on PUT...
             Exact match and range queries...
             No multi-index queries yet...
             Pagination is on its way...




Wednesday, March 13, 13
Riak Search




             Store and index documents (JSON, text, XML, etc)
             Current Riak Search supports subset of Solr API
             Next iteration (Yokozuna; in beta)will implement distributed
             Solr on Riak. It will be sexy.
             Looking for beta testers to help harden Yokozuna




Wednesday, March 13, 13
ARCHITECTURE
                                      Consistent Hashing
         The scaleability and
                                      Virtual Nodes
         ease of operation
         goals inform                 Handoff/Rebalancing
         architectural decisions.
                                      Vector Clocks
         These come with tradeoffs.
                                      Append-only storage

                                      Active Anti-Entropy*




Wednesday, March 13, 13
Consistent Hashing

             Location of data in the Riak ring is determined based on hash of
             bucket + key.

             Provides even distribution of storage and query load

             Trades off advantages gained from locality

                          - e.g. Range queries and aggregates




Wednesday, March 13, 13
Consistent Hashing




Wednesday, March 13, 13
Virtual Nodes

             Unit of addressing and concurrency in Riak
             Each physical host manage many vnodes
             Partition count / physical machines = vnodes/machine*

             Decouples physical assets from data distribution. This provides:
                          - simplicity in cluster sizing
                          - failure isolation




Wednesday, March 13, 13
Handoff/Rebalancing

             Mechanisms for data rebalancing

             When nodes join/leave cluster, handoff and rebalancing
             manage the date shuffling dynamically
             Trades off speed of convergence vs. effects on cluster
             performance
                          - causes disk & network load




Wednesday, March 13, 13
Vector Clocks


             VCs used to rectify object consistency at READ time.
             Lots of knobs to turn; well-documented
             Trades off space, speed, and complexity for safety
                          - will store all sibling objects until resolved
                          - can lead to object size issues




Wednesday, March 13, 13
Append-Only Storage

             Riak provides a pluggable backend interface. (Write your own;
             we’ll probably hire you...)

             Bitcask, LevelDB are most-heavily used. Both are
             append - only

             Provides crash safety and speed.

             Trade off: periodic compaction/merge ops




Wednesday, March 13, 13
RIAK 1.3
               (AKA “new hotness”)



              Active Anti Entropy                             Riaknostic included by default
              MapReduce Improvements                          Riak Control improvements
              IPv6 Support                                    Much more


               Full release notes: https://github.com/basho/riak/blob/1.3/RELEASE-NOTES.md




Wednesday, March 13, 13
FUTURE WORK*
                   (1.4 and beyond)


                  Dynamic Ring Size          Consistency
                  Yokozuna                   2i Improvements
                  CRDTs/Data Types           Riak Pipe work
                  Riak Object                Much more


                                      (* all code subject to ship early, late, or not at all)




Wednesday, March 13, 13
Multi-tenant cloud storage software for
                          public and private clouds.
                          Designed to provide simple, available, distributed
                          cloud storage at any scale.
                          S3-API compatible and supports per-tenant
                          reporting for billing and metering use cases.
                          Additional APIs on the way.
                          Stores files of arbitrary size. Under the hood
                          stores 1MB chunks along side a manifest.

                          Stateless proxy (CS) does chunking. Riak does
                          distribution, storage, etc.




Wednesday, March 13, 13
Extends Riak's capabilities with:
                          - multi-datacenter replication
                          - SNMP Configuration
                          - JMX-Monitoring
                          - 24x7 support from Basho Engineers

                          One cluster acts as a "source cluster". The source
                          cluster replicates its data to one or more
                          "sink clusters" using either real-time or full sync.

                          Data transfer is unidirectional (source -> sink).
                          Bidirectional synchronization can be
                          achieved by configuring a pair of connections
                          between clusters.




Wednesday, March 13, 13
RIAK COMMUNITY
              Mailing List - 1300 developers

              IRC - 200+ people every day yelling about software

             GitHub - 1000s of watchers; 200+ contributors to all projects

              Meetups - 10 Countries, 23 Cities, 3700+ Members & growing fast!

             Deployments - 1000s in production.




Wednesday, March 13, 13
ricon.io/east.html
                                 May 13-14th in New York City
                                Talks, hacking, parties
                                 Dedicated to the future of Riak and
                                 distributed systems in production



              REGISTER    https://ricon-east-2013.eventbrite.com/?discount=lovevnodes

              NOW!


Wednesday, March 13, 13
GETTING STARTED
        Downloads         - http://docs.basho.com/riak/latest/downloads/
        Docs       - http://docs.basho.com
        Riak Source Code        - github.com/basho/riak
        All Basho source Code        - github.com/basho/
        Riak Mailing List - http://bit.ly/riak-list

         Email or Tweet me @adron or adron@basho.com




Wednesday, March 13, 13
Let’s Talk UI & CLI - Demo Things




Wednesday, March 13, 13
#WHOIS
                  Adron Hall | @adron | Coder, Messenger, Recon




Wednesday, March 13, 13

Weitere ähnliche Inhalte

Was ist angesagt?

Stefano Giordano
Stefano GiordanoStefano Giordano
Stefano GiordanoGoWireless
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & javaEugene Bogaart
 
Rapid JCR applications development with Sling
Rapid JCR applications development with SlingRapid JCR applications development with Sling
Rapid JCR applications development with SlingBertrand Delacretaz
 
Ubuntu in the cloud What's Coming - Nick Barcet, Canonical
Ubuntu in the cloud What's Coming - Nick Barcet, CanonicalUbuntu in the cloud What's Coming - Nick Barcet, Canonical
Ubuntu in the cloud What's Coming - Nick Barcet, CanonicalChris Purrington
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolDaniel Austin
 
Captura de pacotes no KernelSpace
Captura de pacotes no KernelSpaceCaptura de pacotes no KernelSpace
Captura de pacotes no KernelSpacePeslPinguim
 

Was ist angesagt? (6)

Stefano Giordano
Stefano GiordanoStefano Giordano
Stefano Giordano
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & java
 
Rapid JCR applications development with Sling
Rapid JCR applications development with SlingRapid JCR applications development with Sling
Rapid JCR applications development with Sling
 
Ubuntu in the cloud What's Coming - Nick Barcet, Canonical
Ubuntu in the cloud What's Coming - Nick Barcet, CanonicalUbuntu in the cloud What's Coming - Nick Barcet, Canonical
Ubuntu in the cloud What's Coming - Nick Barcet, Canonical
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON Protocol
 
Captura de pacotes no KernelSpace
Captura de pacotes no KernelSpaceCaptura de pacotes no KernelSpace
Captura de pacotes no KernelSpace
 

Ähnlich wie Riak intro to..

Cloudera Impala - HUG Karlsruhe, July 04, 2013
Cloudera Impala - HUG Karlsruhe, July 04, 2013Cloudera Impala - HUG Karlsruhe, July 04, 2013
Cloudera Impala - HUG Karlsruhe, July 04, 2013Alexander Alten
 
DTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldDTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldAngelo Rajadurai
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenPatrick Chanezon
 
Big Data Lakes Benchmarking 2018
Big Data Lakes Benchmarking 2018Big Data Lakes Benchmarking 2018
Big Data Lakes Benchmarking 2018Tom Grek
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Baruch Sadogursky
 
Cloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuCloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuSavvas Georgiou
 
What’s New in Amazon Aurora for MySQL and PostgreSQL
What’s New in Amazon Aurora for MySQL and PostgreSQLWhat’s New in Amazon Aurora for MySQL and PostgreSQL
What’s New in Amazon Aurora for MySQL and PostgreSQLAmazon Web Services
 
Riak Use Cases : Dissecting The Solutions To Hard Problems
Riak Use Cases : Dissecting The Solutions To Hard ProblemsRiak Use Cases : Dissecting The Solutions To Hard Problems
Riak Use Cases : Dissecting The Solutions To Hard ProblemsAndy Gross
 
Consideration for Building a Private Cloud
Consideration for Building a Private CloudConsideration for Building a Private Cloud
Consideration for Building a Private CloudOpenStack Foundation
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...javier ramirez
 
Quick Guide to Refresh Spark skills
Quick Guide to Refresh Spark skillsQuick Guide to Refresh Spark skills
Quick Guide to Refresh Spark skillsRavindra kumar
 
Predictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timePredictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timeAerospike, Inc.
 
Amazon Aurora TechConnect
Amazon Aurora TechConnect Amazon Aurora TechConnect
Amazon Aurora TechConnect LavanyaMurthy9
 
Improving Your Heroku App Performance with Asset CDN and Unicorn
Improving Your Heroku App Performance with Asset CDN and UnicornImproving Your Heroku App Performance with Asset CDN and Unicorn
Improving Your Heroku App Performance with Asset CDN and UnicornSimon Bagreev
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustEvan Chan
 

Ähnlich wie Riak intro to.. (20)

Cloudera Impala - HUG Karlsruhe, July 04, 2013
Cloudera Impala - HUG Karlsruhe, July 04, 2013Cloudera Impala - HUG Karlsruhe, July 04, 2013
Cloudera Impala - HUG Karlsruhe, July 04, 2013
 
DTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldDTrace talk at Oracle Open World
DTrace talk at Oracle Open World
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heaven
 
Big Data Lakes Benchmarking 2018
Big Data Lakes Benchmarking 2018Big Data Lakes Benchmarking 2018
Big Data Lakes Benchmarking 2018
 
Introduction to dotNetRDF
Introduction to dotNetRDFIntroduction to dotNetRDF
Introduction to dotNetRDF
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
NoSQL
NoSQLNoSQL
NoSQL
 
Cloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuCloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting Heroku
 
What's New in Amazon Aurora
What's New in Amazon AuroraWhat's New in Amazon Aurora
What's New in Amazon Aurora
 
What’s New in Amazon Aurora for MySQL and PostgreSQL
What’s New in Amazon Aurora for MySQL and PostgreSQLWhat’s New in Amazon Aurora for MySQL and PostgreSQL
What’s New in Amazon Aurora for MySQL and PostgreSQL
 
NoSQL
NoSQLNoSQL
NoSQL
 
Riak Use Cases : Dissecting The Solutions To Hard Problems
Riak Use Cases : Dissecting The Solutions To Hard ProblemsRiak Use Cases : Dissecting The Solutions To Hard Problems
Riak Use Cases : Dissecting The Solutions To Hard Problems
 
Consideration for Building a Private Cloud
Consideration for Building a Private CloudConsideration for Building a Private Cloud
Consideration for Building a Private Cloud
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
 
Quick Guide to Refresh Spark skills
Quick Guide to Refresh Spark skillsQuick Guide to Refresh Spark skills
Quick Guide to Refresh Spark skills
 
Predictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timePredictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-time
 
Amazon Aurora TechConnect
Amazon Aurora TechConnect Amazon Aurora TechConnect
Amazon Aurora TechConnect
 
Improving Your Heroku App Performance with Asset CDN and Unicorn
Improving Your Heroku App Performance with Asset CDN and UnicornImproving Your Heroku App Performance with Asset CDN and Unicorn
Improving Your Heroku App Performance with Asset CDN and Unicorn
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to Rust
 

Mehr von Adron Hall

Continuosly Kicking Ass
Continuosly Kicking AssContinuosly Kicking Ass
Continuosly Kicking AssAdron Hall
 
Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Adron Hall
 
Disruption removing the barrier
Disruption   removing the barrierDisruption   removing the barrier
Disruption removing the barrierAdron Hall
 
Node.js rulz! JavaScript takes over the full Stack
Node.js rulz! JavaScript takes over the full StackNode.js rulz! JavaScript takes over the full Stack
Node.js rulz! JavaScript takes over the full StackAdron Hall
 
Removing the Operating System Barrier with Platform as a Service
Removing the Operating System Barrier with Platform as a ServiceRemoving the Operating System Barrier with Platform as a Service
Removing the Operating System Barrier with Platform as a ServiceAdron Hall
 
AWS Toolkit for Visual Studio Version 2
AWS Toolkit for Visual Studio Version 2AWS Toolkit for Visual Studio Version 2
AWS Toolkit for Visual Studio Version 2Adron Hall
 
AWS Toolkit for Visual Studio - Version 1
AWS Toolkit for Visual Studio - Version 1AWS Toolkit for Visual Studio - Version 1
AWS Toolkit for Visual Studio - Version 1Adron Hall
 
Cloud Formation
Cloud FormationCloud Formation
Cloud FormationAdron Hall
 

Mehr von Adron Hall (8)

Continuosly Kicking Ass
Continuosly Kicking AssContinuosly Kicking Ass
Continuosly Kicking Ass
 
Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }
 
Disruption removing the barrier
Disruption   removing the barrierDisruption   removing the barrier
Disruption removing the barrier
 
Node.js rulz! JavaScript takes over the full Stack
Node.js rulz! JavaScript takes over the full StackNode.js rulz! JavaScript takes over the full Stack
Node.js rulz! JavaScript takes over the full Stack
 
Removing the Operating System Barrier with Platform as a Service
Removing the Operating System Barrier with Platform as a ServiceRemoving the Operating System Barrier with Platform as a Service
Removing the Operating System Barrier with Platform as a Service
 
AWS Toolkit for Visual Studio Version 2
AWS Toolkit for Visual Studio Version 2AWS Toolkit for Visual Studio Version 2
AWS Toolkit for Visual Studio Version 2
 
AWS Toolkit for Visual Studio - Version 1
AWS Toolkit for Visual Studio - Version 1AWS Toolkit for Visual Studio - Version 1
AWS Toolkit for Visual Studio - Version 1
 
Cloud Formation
Cloud FormationCloud Formation
Cloud Formation
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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...Miguel Araújo
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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...
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Riak intro to..

  • 2. #WHOIS Adron Hall | @adron | Coder, Messenger, Recon Wednesday, March 13, 13
  • 4. Distributed, masterless, highly-available key/value store Wednesday, March 13, 13
  • 5. DESIGN GOALS Fault-Tolerance Ops Friendliness Horizontal Scalability Predictability Low-latency High-Availability Wednesday, March 13, 13
  • 6. Use, when & what to use Riak for... Users/Profiles Logging Systems Metadata Sensor Data Session Storage Notification Systems Object Storage Record Systems Wednesday, March 13, 13
  • 7. IN PRODUCTION AT And 1000s more... Wednesday, March 13, 13
  • 9. {“Key”:“Value”} • Values are stored against keys • Key/Value + Metadata = Object • Fundamental Unit of Replication • Any Datatype will work • Record to disk in binary format Wednesday, March 13, 13
  • 10. <<BUCKET>>/<<KEY>> • Virtual Namespace • Bucket + Keys = Object Address • Buckets have properties • Objects in bucket inherit properties • No relationships between buckets Wednesday, March 13, 13
  • 12. INTERFACES HTTP API - Via a little piece of magic called Webmachine Largely-faithful REST implementation Protocol Buffers API - Thanks, Google! Compact, binary protocol Wednesday, March 13, 13
  • 13. CLIENT LIBS Python Java Clojure Erlang PHP Haskell ...and more via Basho Ruby C/C++ OCaml or our community. Perl .NET Scala Dart Go Node.js Wednesday, March 13, 13
  • 14. RIAK GIVES YOU [FOUR] WAYS TO STORE, RETRIEVE, AND QUERY DATA Wednesday, March 13, 13
  • 15. CRUD // GET 1 2 3 4 GET  /buckets/bucket/keys/key         5 6 // PUT 7 8 9 10 POST  /buckets/bucket/keys/key        //  Riak-­‐defined  key 11 PUT  /buckets/bucket/keys/key            //  User-­‐defined  key 12 13 // DELETE 14 15 16 17 DELETE  /buckets/bucket/keys/key       18 Wednesday, March 13, 13
  • 16. MapReduce Distributed processing system using Riak Pipe Efficient for targeted queries over known key range Write jobs in Erlang or JS. (Erlang more performant) Wednesday, March 13, 13
  • 17. Secondary Indexing (2i) riak_object X-Riak-Index-email_bin “mark@basho.com” riak_object X-Riak-Index-value_int “42” Tag objects with custom metadata on PUT... Exact match and range queries... No multi-index queries yet... Pagination is on its way... Wednesday, March 13, 13
  • 18. Riak Search Store and index documents (JSON, text, XML, etc) Current Riak Search supports subset of Solr API Next iteration (Yokozuna; in beta)will implement distributed Solr on Riak. It will be sexy. Looking for beta testers to help harden Yokozuna Wednesday, March 13, 13
  • 19. ARCHITECTURE Consistent Hashing The scaleability and Virtual Nodes ease of operation goals inform Handoff/Rebalancing architectural decisions. Vector Clocks These come with tradeoffs. Append-only storage Active Anti-Entropy* Wednesday, March 13, 13
  • 20. Consistent Hashing Location of data in the Riak ring is determined based on hash of bucket + key. Provides even distribution of storage and query load Trades off advantages gained from locality - e.g. Range queries and aggregates Wednesday, March 13, 13
  • 22. Virtual Nodes Unit of addressing and concurrency in Riak Each physical host manage many vnodes Partition count / physical machines = vnodes/machine* Decouples physical assets from data distribution. This provides: - simplicity in cluster sizing - failure isolation Wednesday, March 13, 13
  • 23. Handoff/Rebalancing Mechanisms for data rebalancing When nodes join/leave cluster, handoff and rebalancing manage the date shuffling dynamically Trades off speed of convergence vs. effects on cluster performance - causes disk & network load Wednesday, March 13, 13
  • 24. Vector Clocks VCs used to rectify object consistency at READ time. Lots of knobs to turn; well-documented Trades off space, speed, and complexity for safety - will store all sibling objects until resolved - can lead to object size issues Wednesday, March 13, 13
  • 25. Append-Only Storage Riak provides a pluggable backend interface. (Write your own; we’ll probably hire you...) Bitcask, LevelDB are most-heavily used. Both are append - only Provides crash safety and speed. Trade off: periodic compaction/merge ops Wednesday, March 13, 13
  • 26. RIAK 1.3 (AKA “new hotness”) Active Anti Entropy Riaknostic included by default MapReduce Improvements Riak Control improvements IPv6 Support Much more Full release notes: https://github.com/basho/riak/blob/1.3/RELEASE-NOTES.md Wednesday, March 13, 13
  • 27. FUTURE WORK* (1.4 and beyond) Dynamic Ring Size Consistency Yokozuna 2i Improvements CRDTs/Data Types Riak Pipe work Riak Object Much more (* all code subject to ship early, late, or not at all) Wednesday, March 13, 13
  • 28. Multi-tenant cloud storage software for public and private clouds. Designed to provide simple, available, distributed cloud storage at any scale. S3-API compatible and supports per-tenant reporting for billing and metering use cases. Additional APIs on the way. Stores files of arbitrary size. Under the hood stores 1MB chunks along side a manifest. Stateless proxy (CS) does chunking. Riak does distribution, storage, etc. Wednesday, March 13, 13
  • 29. Extends Riak's capabilities with: - multi-datacenter replication - SNMP Configuration - JMX-Monitoring - 24x7 support from Basho Engineers One cluster acts as a "source cluster". The source cluster replicates its data to one or more "sink clusters" using either real-time or full sync. Data transfer is unidirectional (source -> sink). Bidirectional synchronization can be achieved by configuring a pair of connections between clusters. Wednesday, March 13, 13
  • 30. RIAK COMMUNITY Mailing List - 1300 developers IRC - 200+ people every day yelling about software GitHub - 1000s of watchers; 200+ contributors to all projects Meetups - 10 Countries, 23 Cities, 3700+ Members & growing fast! Deployments - 1000s in production. Wednesday, March 13, 13
  • 31. ricon.io/east.html May 13-14th in New York City Talks, hacking, parties Dedicated to the future of Riak and distributed systems in production REGISTER https://ricon-east-2013.eventbrite.com/?discount=lovevnodes NOW! Wednesday, March 13, 13
  • 32. GETTING STARTED Downloads - http://docs.basho.com/riak/latest/downloads/ Docs - http://docs.basho.com Riak Source Code - github.com/basho/riak All Basho source Code - github.com/basho/ Riak Mailing List - http://bit.ly/riak-list Email or Tweet me @adron or adron@basho.com Wednesday, March 13, 13
  • 33. Let’s Talk UI & CLI - Demo Things Wednesday, March 13, 13
  • 34. #WHOIS Adron Hall | @adron | Coder, Messenger, Recon Wednesday, March 13, 13