Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
edo cabinet (2009)
Search
John Mettraux
July 19, 2009
Technology
0
44
edo cabinet (2009)
An old deck about Tokyo Cabinet and Ruby (Ruby Kaigi 2009)
John Mettraux
July 19, 2009
Tweet
Share
More Decks by John Mettraux
See All by John Mettraux
hiroshima.rb #70 pomodoro
jmettraux
0
410
tests and the database
jmettraux
0
350
OpenBSD and Ruby
jmettraux
1
750
Ruby and FFI
jmettraux
0
400
headless in Hiroshima.rb #061
jmettraux
0
370
Ruby methods in ect - Hiroshima.rb #058
jmettraux
0
1.5k
flor - hubristic interpreter - RubyKaigi 2017
jmettraux
1
1.8k
deli @ Hiroshima.rb #057
jmettraux
0
1.5k
suhi215 yahoo proxy in python
jmettraux
0
1.7k
Other Decks in Technology
See All in Technology
pprof vs runtime/trace (FlightRecorder)
task4233
0
140
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.5k
Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則
morihirok
17
6.2k
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
110
全てGoで作るP2P対戦ゲーム入門
ponyo877
3
1.2k
インサイト情報からどこまで自動化できるか試してみた
takas0522
0
120
kaigi_on_rails_2025_設計.pdf
nay3
8
4k
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
240
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
530
AI×Data×SaaS×Operation
sansantech
PRO
0
110
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.3k
非同期処理実行基盤 Delayed脱出 → Solid Queue完全移行への旅路。
srockstyle
3
1.3k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
600
Designing for humans not robots
tammielis
254
25k
KATA
mclloyd
32
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
840
Six Lessons from altMBA
skipperchong
28
4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
BBQ
matthewcrist
89
9.8k
Writing Fast Ruby
sferik
629
62k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Designing Experiences People Love
moore
142
24k
It's Worth the Effort
3n
187
28k
Transcript
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 http tyrant server 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 table B+ tree table fixed length table 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 local remote remote Rufus::Tokyo:: Cabinet Rufus::Tokyo:: Table Rufus::Tokyo:: Tyrant
Rufus::Tokyo:: TyrantTable { } { pk => { } } { } { pk => { } } 1 access 1 access 1+ accesses lua embedded 1+ accesses 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 local remote remote Rufus::Tokyo:: Rufus::Tokyo:: Rufus::Tokyo:: Rufus::Tokyo:: FFI Cabinet
Table Tyrant TyrantTable Rufus::Edo:: Rufus::Edo:: Rufus::Edo:: 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