SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
edo
                        cabinet



                                  http://tinyurl.com/edocabinet
Sunday, July 19, 2009
ruby and
                        tokyo cabinet



                                http://www.flickr.com/photos/kiim/3185168797/
Sunday, July 19, 2009
jmettraux

                        swiss guy
                        wants to write less code
                        ends up writing too much




                                              http://github.com/jmettraux/
Sunday, July 19, 2009
why rufus-tokyo ?

                        need to persist data quickly




Sunday, July 19, 2009
Tokyo Cabinet|Tyrant

                        key/value store

                        persistent

                        fast, fast, fast



                                           http://tokyocabinet.sourceforge.net/
Sunday, July 19, 2009
Hirabyashi-san is providing
                        ruby bindings

                        but no “sudo gem install”

                        and it’s ‘extconf’

                        and ...



                                        http://tokyocabinet.sourceforge.net/rubydoc/
Sunday, July 19, 2009
Sunday, July 19, 2009
what I want

                        {}




Sunday, July 19, 2009
Sunday, July 19, 2009
what I want

                        what I built




Sunday, July 19, 2009
rufus-tokyo

                        ruby gem

                        Tokyo Cabinet
                        Tokyo Tyrant

                        ruby FFI




Sunday, July 19, 2009
http://blog.headius.com/2008/10/ffi-for-ruby-now-available.html
Sunday, July 19, 2009
ruby FFI




Sunday, July 19, 2009
FFI

                        Foreign Function Interface

                        common lisp
                        haskell




Sunday, July 19, 2009
ruby FFI

                        from Rubinius

                        thanks to Wayne Meissner

                        to jruby and ruby



                               http://wmeissner.blogspot.com/2008/11/more-on-ruby-ffi.html
Sunday, July 19, 2009
ruby FFI

                        an example

                        the ‘crypt’ function




Sunday, July 19, 2009
Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_crypt.rb
Sunday, July 19, 2009
ruby FFI

                        an example

                        ‘uuid_generate’




Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_uuid.rb
Sunday, July 19, 2009
ruby FFI flow

                        1) attach functions
                        2) call functions




Sunday, July 19, 2009
ruby FFI

                        an example

                        libevent




Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_libev.rb
Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_libev.rb
Sunday, July 19, 2009
Sunday, July 19, 2009
ruby FFI

                        more fun

                        from ruby to lua




Sunday, July 19, 2009
http://jmettraux.wordpress.com/2009/03/16/ruby-to-lua/
Sunday, July 19, 2009
http://github.com/remogatto/ffi-inliner/
Sunday, July 19, 2009
Sunday, July 19, 2009
Tokyo Cabinet|Tyrant




Sunday, July 19, 2009
Mikio Hirabayashi is the
                        author

                        mixi.jp is the source




                                  http://tokyocabinet.sourceforge.net/index.html
Sunday, July 19, 2009
http://alpha.mixi.co.jp/blog/?author=3
Sunday, July 19, 2009
http://www.slideshare.net/estraier/introduction-to-tokyo-products
Sunday, July 19, 2009
Sunday, July 19, 2009
rufus-tokyo




Sunday, July 19, 2009
2 products

                        Tokyo Cabinet
                        local file

                        Tokyo Tyrant
                        remote cabinet file
                        over TCP socket
                        (or Unix socket)



Sunday, July 19, 2009
local   cabinet lib




Sunday, July 19, 2009
remote   tyrant server




                                  cabinet lib




Sunday, July 19, 2009
tt
                        memcached   tyrant server
                           http



                                     cabinet lib




Sunday, July 19, 2009
2 flavours

                        - key/value (abstract)

                        - key/hash of values (table)




Sunday, July 19, 2009
{ k => v }   { k => { k => v } }


                           hash
                          B+ tree           table
                        fixed length




Sunday, July 19, 2009
{ k => v }   { k => { k => v } }




                        abstract           table




Sunday, July 19, 2009
key/value

                        like { }




Sunday, July 19, 2009
Sunday, July 19, 2009
key/hash of values (table)

                        like a { pk => { } }




Sunday, July 19, 2009
Sunday, July 19, 2009
Sunday, July 19, 2009
local                            remote


                        Rufus::Tokyo::   Rufus::Tokyo::   Rufus::Tokyo::   Rufus::Tokyo::
                           Cabinet           Table           Tyrant         TyrantTable




                             {}          { pk => { } }         {}          { pk => { } }


                                                                     1+ accesses
                                   1 access
                                                                    lua embedded




Sunday, July 19, 2009
tt-src $ .configure --enable-lua
                        tt-src $ make
                        tt-src $ sudo make install




                                         http://openwferu.rubyforge.org/tokyo.html
Sunday, July 19, 2009
http://jmettraux.wordpress.com/2009/04/07/rufus-tokyo-0112-extlua/
Sunday, July 19, 2009
http://www.igvita.com/2009/07/13/extending-tokyo-cabinet-db-with-lua/
Sunday, July 19, 2009
Sunday, July 19, 2009
Rufus::Edo




Sunday, July 19, 2009
FFI

                        + ruby, jruby
                        + no compilation when ‘gem install’

                        - slower than classical c extension

                        => Rufus::Edo




Sunday, July 19, 2009
Sunday, July 19, 2009
local                           remote

                                                         Rufus::Tokyo::


                           FFI      Cabinet           Table         Tyrant        TyrantTable


                                                          Rufus::Edo::


                          c ext     Cabinet           Table               ?            ?


                        pure ruby                                  NetTyrant     NetTyrantTable




Sunday, July 19, 2009
ruby to tyrant, the fastest

                        http://github.com/actsasflinn/
                        ruby-tokyotyrant/

                        ruby c extension for Tyrant

                        rufus-tokyo friendly




Sunday, July 19, 2009
projects using rufus-tokyo

                        (github search)

                        - wycats/moneta
                        - jcrosby/cloudkit
                        - elisehuard/tokyo_cabinet4r
                        - terralien/metry
                        - nofxx/tokyo_store
                        - sethyates/content_manager
                        - heycarsten/gcoder
                        - joshbuddy/tokyo_cache_cow
                        - ...

Sunday, July 19, 2009
many thanks to

                        Mikio Hirabayashi
                        Zev Blut
                        Ilya Grigorik
                        Justin Reagor
                        Flinn Muller
                        Wayne E. Seguin
                        Matthew King
                        Yuki Satow
                        Wayne Meissner
                        Kim Erlandsen (picture)
                        and many others

Sunday, July 19, 2009

Mais conteúdo relacionado

Semelhante a Edo Cabinet

Web2.0 - wat is dat beest?
Web2.0 - wat is dat beest?Web2.0 - wat is dat beest?
Web2.0 - wat is dat beest?Bart De Waele
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Jan Wedekind
 
RubyKaigi2009 Presentation Slide
RubyKaigi2009 Presentation SlideRubyKaigi2009 Presentation Slide
RubyKaigi2009 Presentation SlideHiroshi SHIBATA
 
Enrolling in the Creative Class
Enrolling in the Creative ClassEnrolling in the Creative Class
Enrolling in the Creative ClassDavid Wiley
 
CreateWV 091019112614 Wiley Keynote
CreateWV 091019112614 Wiley KeynoteCreateWV 091019112614 Wiley Keynote
CreateWV 091019112614 Wiley KeynoteCreateWV
 
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...eCommConf
 
Presentation to wdim_students
Presentation to wdim_studentsPresentation to wdim_students
Presentation to wdim_studentsScott Motte
 
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi PresentationAaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentationquirkey
 
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Fernand Galiana
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009wolframkriesing
 
Termtter 2009-03-14
Termtter 2009-03-14Termtter 2009-03-14
Termtter 2009-03-14jugyo kohno
 
Japanese Rubyists you have not met yet
Japanese Rubyists you have not met yetJapanese Rubyists you have not met yet
Japanese Rubyists you have not met yetmasayoshi takahashi
 
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会Tomohiro Nishimura
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009Fabio Akita
 
Accelerating Ruby with LLVM
Accelerating Ruby with LLVMAccelerating Ruby with LLVM
Accelerating Ruby with LLVMevanphx
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oaneevensys
 
FFI - building cross engine ruby extensions
FFI - building cross engine ruby extensionsFFI - building cross engine ruby extensions
FFI - building cross engine ruby extensionsJeremy Hinegardner
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebFelipe Ribeiro
 
09年11月 イケテルシリコンバレー報告会
09年11月 イケテルシリコンバレー報告会09年11月 イケテルシリコンバレー報告会
09年11月 イケテルシリコンバレー報告会Ruby Business Commons
 

Semelhante a Edo Cabinet (20)

Web2.0 - wat is dat beest?
Web2.0 - wat is dat beest?Web2.0 - wat is dat beest?
Web2.0 - wat is dat beest?
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
 
RubyKaigi2009 Presentation Slide
RubyKaigi2009 Presentation SlideRubyKaigi2009 Presentation Slide
RubyKaigi2009 Presentation Slide
 
Enrolling in the Creative Class
Enrolling in the Creative ClassEnrolling in the Creative Class
Enrolling in the Creative Class
 
CreateWV 091019112614 Wiley Keynote
CreateWV 091019112614 Wiley KeynoteCreateWV 091019112614 Wiley Keynote
CreateWV 091019112614 Wiley Keynote
 
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...
Gerd Leonhard Presentation at Emerging Communication Conference & Awards 2009...
 
Presentation to wdim_students
Presentation to wdim_studentsPresentation to wdim_students
Presentation to wdim_students
 
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi PresentationAaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
 
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009
 
Termtter 2009-03-14
Termtter 2009-03-14Termtter 2009-03-14
Termtter 2009-03-14
 
Japanese Rubyists you have not met yet
Japanese Rubyists you have not met yetJapanese Rubyists you have not met yet
Japanese Rubyists you have not met yet
 
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会
 
Bnc Pd Day Bellwoods
Bnc Pd Day BellwoodsBnc Pd Day Bellwoods
Bnc Pd Day Bellwoods
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 
Accelerating Ruby with LLVM
Accelerating Ruby with LLVMAccelerating Ruby with LLVM
Accelerating Ruby with LLVM
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oane
 
FFI - building cross engine ruby extensions
FFI - building cross engine ruby extensionsFFI - building cross engine ruby extensions
FFI - building cross engine ruby extensions
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento Web
 
09年11月 イケテルシリコンバレー報告会
09年11月 イケテルシリコンバレー報告会09年11月 イケテルシリコンバレー報告会
09年11月 イケテルシリコンバレー報告会
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Edo Cabinet