SlideShare a Scribd company logo
1 of 37
Download to read offline
&




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




Thursday, March 7, 13
芭蕉

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




Thursday, March 7, 13
DESIGN GOALS
               Fault-Tolerance          Ops Friendliness

               Horizontal Scalability   Predictability

               Low-latency              High-Availability




Thursday, March 7, 13
When to use Riak...




Thursday, March 7, 13
RIAK USE CASES
                 Users/Profiles    Logging Systems
                 Metadata          Sensor Data
                 Session Storage   Notification Systems
                 Object Storage    Record Systems




Thursday, March 7, 13
IN PRODUCTION AT



                           And 1000s more...




Thursday, March 7, 13
DATA MODEL




Thursday, March 7, 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




Thursday, March 7, 13
<<BUCKET>>/<<KEY>>

        •    Virtual Namespace

        •    Bucket + Keys = Object Address

        •    Buckets have properties

        •    Objects in bucket inherit properties

        •    No relationships between buckets




Thursday, March 7, 13
DATA ACCESS




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



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




Thursday, March 7, 13
CLIENT LIBS
               Python   Java    Clojure
               Erlang   PHP     Haskell   And more.
                                          Supported by
              Ruby      C/C++   OCaml
                                          either Basho
               Perl     .NET    Scala     or our community.

               Dart     Go      Node.js




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



Thursday, March 7, 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




Thursday, March 7, 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)




Thursday, March 7, 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...




Thursday, March 7, 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




Thursday, March 7, 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*




Thursday, March 7, 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




Thursday, March 7, 13
Consistent Hashing




Thursday, March 7, 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




Thursday, March 7, 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




Thursday, March 7, 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




Thursday, March 7, 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




Thursday, March 7, 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




Thursday, March 7, 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)




Thursday, March 7, 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.




Thursday, March 7, 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.




Thursday, March 7, 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.




Thursday, March 7, 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!


Thursday, March 7, 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




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




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




Thursday, March 7, 13

More Related Content

Viewers also liked

分散ストレージに使えるかもしれないアルゴリズム
分散ストレージに使えるかもしれないアルゴリズム分散ストレージに使えるかもしれないアルゴリズム
分散ストレージに使えるかもしれないアルゴリズムTakeru INOUE
 
Causes of the American Revolution
Causes of the American RevolutionCauses of the American Revolution
Causes of the American RevolutionAshten
 
Erlang Quick Start
Erlang Quick StartErlang Quick Start
Erlang Quick Startcrackcell
 
Erlang
ErlangErlang
ErlangESUG
 
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearch
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearchBigData Faceted Search Comparison between Apache Solr vs. ElasticSearch
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearchNetConstructor, Inc.
 
Rewind the last half year for Erlang
Rewind the last half year for ErlangRewind the last half year for Erlang
Rewind the last half year for ErlangTakeru INOUE
 
Disruption removing the barrier
Disruption   removing the barrierDisruption   removing the barrier
Disruption removing the barrierAdron Hall
 
Continuosly Kicking Ass
Continuosly Kicking AssContinuosly Kicking Ass
Continuosly Kicking AssAdron 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
 
Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Adron Hall
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMake & Build
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS FrameworksiScripts
 

Viewers also liked (12)

分散ストレージに使えるかもしれないアルゴリズム
分散ストレージに使えるかもしれないアルゴリズム分散ストレージに使えるかもしれないアルゴリズム
分散ストレージに使えるかもしれないアルゴリズム
 
Causes of the American Revolution
Causes of the American RevolutionCauses of the American Revolution
Causes of the American Revolution
 
Erlang Quick Start
Erlang Quick StartErlang Quick Start
Erlang Quick Start
 
Erlang
ErlangErlang
Erlang
 
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearch
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearchBigData Faceted Search Comparison between Apache Solr vs. ElasticSearch
BigData Faceted Search Comparison between Apache Solr vs. ElasticSearch
 
Rewind the last half year for Erlang
Rewind the last half year for ErlangRewind the last half year for Erlang
Rewind the last half year for Erlang
 
Disruption removing the barrier
Disruption   removing the barrierDisruption   removing the barrier
Disruption removing the barrier
 
Continuosly Kicking Ass
Continuosly Kicking AssContinuosly Kicking Ass
Continuosly Kicking Ass
 
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
 
Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }Continuously Kicking Ass { v1 }
Continuously Kicking Ass { v1 }
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks
 

Similar to Riak intro with azure

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-Lorenz
 
DTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldDTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldAngelo Rajadurai
 
Cloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuCloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuSavvas Georgiou
 
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
 
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
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataTugdual Grall
 
TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyBruno Oliveira
 
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
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiTaswar Bhatti
 
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
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 
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.
 
Spring Data NHJUG April 2012
Spring Data NHJUG April 2012Spring Data NHJUG April 2012
Spring Data NHJUG April 2012trisberg
 

Similar to Riak intro with azure (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
 
Play 2 pip
Play 2 pipPlay 2 pip
Play 2 pip
 
Cloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting HerokuCloudcamp Athens 2011 Presenting Heroku
Cloudcamp Athens 2011 Presenting Heroku
 
Introduction to dotNetRDF
Introduction to dotNetRDFIntroduction to dotNetRDF
Introduction to dotNetRDF
 
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
 
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
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big Data
 
TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets Ruby
 
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
 
Rails Intro & Tutorial
Rails Intro & TutorialRails Intro & Tutorial
Rails Intro & Tutorial
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhatti
 
Treasure Data and Heroku
Treasure Data and HerokuTreasure Data and Heroku
Treasure Data and Heroku
 
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 ...
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 
Caching On Zos
Caching On ZosCaching On Zos
Caching On Zos
 
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
 
Hadoop
HadoopHadoop
Hadoop
 
Spring Data NHJUG April 2012
Spring Data NHJUG April 2012Spring Data NHJUG April 2012
Spring Data NHJUG April 2012
 

Recently uploaded

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 

Recently uploaded (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 

Riak intro with azure

  • 2. #WHOIS Adron Hall | @adron | Coder, Messenger, Recon Thursday, March 7, 13
  • 6. Distributed, masterless, highly-available key/value store Thursday, March 7, 13
  • 7. DESIGN GOALS Fault-Tolerance Ops Friendliness Horizontal Scalability Predictability Low-latency High-Availability Thursday, March 7, 13
  • 8. When to use Riak... Thursday, March 7, 13
  • 9. RIAK USE CASES Users/Profiles Logging Systems Metadata Sensor Data Session Storage Notification Systems Object Storage Record Systems Thursday, March 7, 13
  • 10. IN PRODUCTION AT And 1000s more... Thursday, March 7, 13
  • 12. {“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 Thursday, March 7, 13
  • 13. <<BUCKET>>/<<KEY>> • Virtual Namespace • Bucket + Keys = Object Address • Buckets have properties • Objects in bucket inherit properties • No relationships between buckets Thursday, March 7, 13
  • 15. INTERFACES HTTP API - Via a little piece of magic called Webmachine Largely-faithful REST implementation Protocol Buffers API - Thanks, Google! Compact, binary protocol Thursday, March 7, 13
  • 16. CLIENT LIBS Python Java Clojure Erlang PHP Haskell And more. Supported by Ruby C/C++ OCaml either Basho Perl .NET Scala or our community. Dart Go Node.js Thursday, March 7, 13
  • 17. RIAK GIVES YOU [FOUR] WAYS TO STORE, RETRIEVE, AND QUERY DATA Thursday, March 7, 13
  • 18. 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 Thursday, March 7, 13
  • 19. MapReduce Distributed processing system using Riak Pipe Efficient for targeted queries over known key range Write jobs in Erlang or JS. (Erlang more performant) Thursday, March 7, 13
  • 20. 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... Thursday, March 7, 13
  • 21. 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 Thursday, March 7, 13
  • 22. 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* Thursday, March 7, 13
  • 23. 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 Thursday, March 7, 13
  • 25. 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 Thursday, March 7, 13
  • 26. 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 Thursday, March 7, 13
  • 27. 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 Thursday, March 7, 13
  • 28. 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 Thursday, March 7, 13
  • 29. 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 Thursday, March 7, 13
  • 30. 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) Thursday, March 7, 13
  • 31. 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. Thursday, March 7, 13
  • 32. 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. Thursday, March 7, 13
  • 33. 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. Thursday, March 7, 13
  • 34. 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! Thursday, March 7, 13
  • 35. 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 Thursday, March 7, 13
  • 36. Let’s Talk UI & CLI - Demo Things Thursday, March 7, 13
  • 37. #WHOIS Adron Hall | @adron | Coder, Messenger, Recon Thursday, March 7, 13