Suche senden
Hochladen
Versatile Storage Options With Tokyo Cabinet
•
6 gefällt mir
•
1,322 views
Flinn Mueller
Folgen
Slides from my lightning talk at NoSQL Live Boston.
Weniger lesen
Mehr lesen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 19
Empfohlen
MongoDB Thinkorswim
MongoDB Thinkorswim
SethEdwards
MongoDB Aggregation MongoSF May 2011
MongoDB Aggregation MongoSF May 2011
Chris Westin
Object data manager Tutorials
Object data manager Tutorials
jivandip7
Cloud Firestore – From JSON Deserialization to Object Document Mapping (ODM)
Cloud Firestore – From JSON Deserialization to Object Document Mapping (ODM)
Minh Dao
Amazon DynamoDB by Aswin
Amazon DynamoDB by Aswin
Agate Studio
Introduction to Bizur
Introduction to Bizur
Akira Hayakawa
Webinar: What's new in Neo4j 2.0
Webinar: What's new in Neo4j 2.0
Neo4j
C# 4.0 dynamic
C# 4.0 dynamic
Wiryadi Adidharma
Empfohlen
MongoDB Thinkorswim
MongoDB Thinkorswim
SethEdwards
MongoDB Aggregation MongoSF May 2011
MongoDB Aggregation MongoSF May 2011
Chris Westin
Object data manager Tutorials
Object data manager Tutorials
jivandip7
Cloud Firestore – From JSON Deserialization to Object Document Mapping (ODM)
Cloud Firestore – From JSON Deserialization to Object Document Mapping (ODM)
Minh Dao
Amazon DynamoDB by Aswin
Amazon DynamoDB by Aswin
Agate Studio
Introduction to Bizur
Introduction to Bizur
Akira Hayakawa
Webinar: What's new in Neo4j 2.0
Webinar: What's new in Neo4j 2.0
Neo4j
C# 4.0 dynamic
C# 4.0 dynamic
Wiryadi Adidharma
T3dallas typoscript
T3dallas typoscript
zdavis
Spring Camp 2016 - List query performance improvement using Couchbase
Spring Camp 2016 - List query performance improvement using Couchbase
Intae Kim
2CPP15 - Templates
2CPP15 - Templates
Michael Heron
TiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - San Francisco MySQL Meetup
Morgan Tocker
TiDB Introduction - Boston MySQL Meetup Group
TiDB Introduction - Boston MySQL Meetup Group
Morgan Tocker
Python presentation
Python presentation
Julia437584
Scala Back to Basics: Type Classes
Scala Back to Basics: Type Classes
Tomer Gabel
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
StampedeCon
MongoDB at ZPUGDC
MongoDB at ZPUGDC
Mike Dirolf
In memory databases presentation
In memory databases presentation
Michael Keane
Master tuning
Master tuning
Thomas Kejser
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
From Ruby to Scala
From Ruby to Scala
tod esking
Modern C++
Modern C++
Michael Clark
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Alex Nguyen
Denis Lebedev, Swift
Denis Lebedev, Swift
Yandex
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Daniel Cousineau
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB
MongoDB at RubyEnRails 2009
MongoDB at RubyEnRails 2009
Mike Dirolf
How to use the new Domino Query Language
How to use the new Domino Query Language
Tim Davis
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Weitere ähnliche Inhalte
Ähnlich wie Versatile Storage Options With Tokyo Cabinet
T3dallas typoscript
T3dallas typoscript
zdavis
Spring Camp 2016 - List query performance improvement using Couchbase
Spring Camp 2016 - List query performance improvement using Couchbase
Intae Kim
2CPP15 - Templates
2CPP15 - Templates
Michael Heron
TiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - San Francisco MySQL Meetup
Morgan Tocker
TiDB Introduction - Boston MySQL Meetup Group
TiDB Introduction - Boston MySQL Meetup Group
Morgan Tocker
Python presentation
Python presentation
Julia437584
Scala Back to Basics: Type Classes
Scala Back to Basics: Type Classes
Tomer Gabel
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
StampedeCon
MongoDB at ZPUGDC
MongoDB at ZPUGDC
Mike Dirolf
In memory databases presentation
In memory databases presentation
Michael Keane
Master tuning
Master tuning
Thomas Kejser
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
From Ruby to Scala
From Ruby to Scala
tod esking
Modern C++
Modern C++
Michael Clark
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Alex Nguyen
Denis Lebedev, Swift
Denis Lebedev, Swift
Yandex
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Daniel Cousineau
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB
MongoDB at RubyEnRails 2009
MongoDB at RubyEnRails 2009
Mike Dirolf
How to use the new Domino Query Language
How to use the new Domino Query Language
Tim Davis
Ähnlich wie Versatile Storage Options With Tokyo Cabinet
(20)
T3dallas typoscript
T3dallas typoscript
Spring Camp 2016 - List query performance improvement using Couchbase
Spring Camp 2016 - List query performance improvement using Couchbase
2CPP15 - Templates
2CPP15 - Templates
TiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - Boston MySQL Meetup Group
TiDB Introduction - Boston MySQL Meetup Group
Python presentation
Python presentation
Scala Back to Basics: Type Classes
Scala Back to Basics: Type Classes
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
MongoDB at ZPUGDC
MongoDB at ZPUGDC
In memory databases presentation
In memory databases presentation
Master tuning
Master tuning
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
From Ruby to Scala
From Ruby to Scala
Modern C++
Modern C++
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Benefits of using MongoDB: Reduce Complexity & Adapt to Changes
Denis Lebedev, Swift
Denis Lebedev, Swift
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB at RubyEnRails 2009
MongoDB at RubyEnRails 2009
How to use the new Domino Query Language
How to use the new Domino Query Language
Kürzlich hochgeladen
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
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
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
ChristopherTHyatt
Kürzlich hochgeladen
(20)
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
Versatile Storage Options With Tokyo Cabinet
1.
Versatile Storage Options with
Tokyo Cabinet NoSQL Live March 11, 2010 Flinn Mueller
2.
Tokyo Cabinet • Mikio
Hirabayashi • Mixi.jp • LGPL • C99/Posix • Successor to QDBM • mmap
3.
Hash DB • Key/Value •
Strings • Extensions (Lua) • Map/Reduce • Forward Matching Keys
4.
B+ Tree Store •
Key/Value • Duplicate Keys • Forward Matching Keys • (Perfect Tag Store)
5.
Fixed Length DB •
Key/Value • Keys As Natural Number • Value Length Limited • Faster than Hash or B+ Tree • Range Query
6.
Table Store • Tuple/Document
Store • Query (condition, order, limit) • Full Text Search • Union, Intersect, Diff • Parallel Query
7.
How I Use
Tokyo • Like Memcache++ • Like a Queue • Like a Counter • Like a Tag Cloud
8.
{}
9.
Like Memcache++ require 'tokyo_tyrant' t
= TokyoTyrant::DB.new t['example.com/lorem'] = "Lorem..." t['example.com/lorem'] # => "Lorem..." t['example.com/lorem/ipsum'] = "Ipsum..." t.fwmkeys('example.com/') # => ['example.com/lorem/ipsum', 'example.com/lorem']
10.
Q
11.
Like a Queue require
'tokyo_tyrant' tdb = TokyoTyrant::Table.new tdb[tdb.genuid] = { 'url' => "http://example.com", 'queue' => "1m", 'created_at' => Time.now.to_i, 'origin' => Socket.hostname }
12.
Like a Queue require
'tokyo_tyrant' tdb = TokyoTyrant::Table.new tasks = tdb.find{ |q| q.condition :queue, :streq, '1m' q.order_by :created_at }.each{ |task| run_process(task) }
13.
i++
14.
Like a Counter require
'tokyo_tyrant' COUNTER_DB = TokyoTyrant::DB.new ... COUNTER_DB.add_int(id) # => 82169
15.
zomg pictures
lolcatz funny
16.
Like a Tag
Cloud require 'tokyo_tyrant' TAG_DB = TokyoTyrant::BDB.new ... tags = ['foo', 'bar'] tags.collect!{ |tag| "tag:#{tag}:articles" } hash_tags = TAG_DB.getlist(tags) article_ids = hash_tags.values.collect.flatten article_ids = article_ids.uniq.sort.reverse[0..4] articles = TAG_DB.mget(article_ids)
17.
Related Content articles =
TAG_DB.mget(article_ids) unpack = proc{ |k,v| v = MessagePack.unpack(v); v['__id'] = k; v } articles = articles.collect(&unpack).compact articles = articles.sort_by{ |v| v['__id'] } articles.reverse! content = Mustache.render(@@template, :articles => articles) response = [200, {"Content-Type" => "text/html"}, [content]]
18.
Versatile Storage Options •
Like Memcache++ • Like a Queue • Like a Counter • Like a Tag Cloud
19.
More
http://1978th.net/tokyocabinet http://1978th.net/tokyotyrant/ http://groups.google.com/group/tokyocabinet-users/ http://tokyocabinetwiki.pbworks.com/ http://github.com/actsasflinn/ruby-tokyotyrant http://github.com/jmettraux/rufus-tokyo/
Hinweis der Redaktion