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

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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