Submit Search
Upload
On UnQLite
•
Download as PPT, PDF
•
3 likes
•
6,398 views
C
charsbar
Follow
Presented at Kyoto.pm Tech Talk #5
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Recommended
typemap in Perl/XS
typemap in Perl/XS
charsbar
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
charsbar
2016年のPerl (Long version)
2016年のPerl (Long version)
charsbar
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
charsbar
Application Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.key
Tim Bunce
PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012
Tim Bunce
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0
Tim Bunce
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Recommended
typemap in Perl/XS
typemap in Perl/XS
charsbar
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
charsbar
2016年のPerl (Long version)
2016年のPerl (Long version)
charsbar
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
charsbar
Application Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.key
Tim Bunce
PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012
Tim Bunce
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0
Tim Bunce
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
Jon Moore
Perl Memory Use 201209
Perl Memory Use 201209
Tim Bunce
Working with databases in Perl
Working with databases in Perl
Laurent Dami
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
rjsmelo
Perl at SkyCon'12
Perl at SkyCon'12
Tim Bunce
Perl Memory Use - LPW2013
Perl Memory Use - LPW2013
Tim Bunce
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
Static Typing in Vault
Static Typing in Vault
GlynnForrest
Using ngx_lua in UPYUN
Using ngx_lua in UPYUN
Cong Zhang
Lua tech talk
Lua tech talk
Locaweb
Devinsampa nginx-scripting
Devinsampa nginx-scripting
Tony Fabeen
PSGI and Plack from first principles
PSGI and Plack from first principles
Perl Careers
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
Fwdays
DBD::Gofer 200809
DBD::Gofer 200809
Tim Bunce
Node.js streaming csv downloads proxy
Node.js streaming csv downloads proxy
Ismael Celis
Zend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHP
Adam Englander
Information security programming in ruby
Information security programming in ruby
Hiroshi Nakamura
Redis as a message queue
Redis as a message queue
Brandon Lamb
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
Wim Godden
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
clkao
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
Generated Power: PHP 5.5 Generators
Generated Power: PHP 5.5 Generators
Mark Baker
More Related Content
What's hot
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
Jon Moore
Perl Memory Use 201209
Perl Memory Use 201209
Tim Bunce
Working with databases in Perl
Working with databases in Perl
Laurent Dami
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
rjsmelo
Perl at SkyCon'12
Perl at SkyCon'12
Tim Bunce
Perl Memory Use - LPW2013
Perl Memory Use - LPW2013
Tim Bunce
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
Static Typing in Vault
Static Typing in Vault
GlynnForrest
Using ngx_lua in UPYUN
Using ngx_lua in UPYUN
Cong Zhang
Lua tech talk
Lua tech talk
Locaweb
Devinsampa nginx-scripting
Devinsampa nginx-scripting
Tony Fabeen
PSGI and Plack from first principles
PSGI and Plack from first principles
Perl Careers
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
Fwdays
DBD::Gofer 200809
DBD::Gofer 200809
Tim Bunce
Node.js streaming csv downloads proxy
Node.js streaming csv downloads proxy
Ismael Celis
Zend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHP
Adam Englander
Information security programming in ruby
Information security programming in ruby
Hiroshi Nakamura
Redis as a message queue
Redis as a message queue
Brandon Lamb
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
Wim Godden
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
clkao
What's hot
(20)
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
Perl Memory Use 201209
Perl Memory Use 201209
Working with databases in Perl
Working with databases in Perl
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
Perl at SkyCon'12
Perl at SkyCon'12
Perl Memory Use - LPW2013
Perl Memory Use - LPW2013
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
Static Typing in Vault
Static Typing in Vault
Using ngx_lua in UPYUN
Using ngx_lua in UPYUN
Lua tech talk
Lua tech talk
Devinsampa nginx-scripting
Devinsampa nginx-scripting
PSGI and Plack from first principles
PSGI and Plack from first principles
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
DBD::Gofer 200809
DBD::Gofer 200809
Node.js streaming csv downloads proxy
Node.js streaming csv downloads proxy
Zend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHP
Information security programming in ruby
Information security programming in ruby
Redis as a message queue
Redis as a message queue
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
Similar to On UnQLite
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
Generated Power: PHP 5.5 Generators
Generated Power: PHP 5.5 Generators
Mark Baker
Blog Hacks 2011
Blog Hacks 2011
Yusuke Wada
Presto anatomy
Presto anatomy
Dongmin Yu
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
Anatoly Sharifulin
Modern Getopt for Command Line Processing in Perl
Modern Getopt for Command Line Processing in Perl
Nova Patch
Benchmarking Perl (Chicago UniForum 2006)
Benchmarking Perl (Chicago UniForum 2006)
brian d foy
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Joseph Scott
Php Code Audits (PHP UK 2010)
Php Code Audits (PHP UK 2010)
Damien Seguy
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
NAVER D2
Run Node Run
Run Node Run
Kevin Swiber
Mojolicious - A new hope
Mojolicious - A new hope
Marcus Ramberg
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
Ian Barber
{{more}} Kibana4
{{more}} Kibana4
琛琳 饶
Nodejs性能分析优化和分布式设计探讨
Nodejs性能分析优化和分布式设计探讨
flyinweb
Шардинг заказов корзины каталога Onliner.by
Шардинг заказов корзины каталога Onliner.by
Petr Trofimov
Becoming a better WordPress Developer
Becoming a better WordPress Developer
Joey Kudish
glance replicator
glance replicator
irix_jp
PHP 5.4
PHP 5.4
Federico Damián Lozada Mosto
Talkaboutlithium
Talkaboutlithium
noppoman722
Similar to On UnQLite
(20)
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Generated Power: PHP 5.5 Generators
Generated Power: PHP 5.5 Generators
Blog Hacks 2011
Blog Hacks 2011
Presto anatomy
Presto anatomy
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
Modern Getopt for Command Line Processing in Perl
Modern Getopt for Command Line Processing in Perl
Benchmarking Perl (Chicago UniForum 2006)
Benchmarking Perl (Chicago UniForum 2006)
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Php Code Audits (PHP UK 2010)
Php Code Audits (PHP UK 2010)
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
Run Node Run
Run Node Run
Mojolicious - A new hope
Mojolicious - A new hope
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
{{more}} Kibana4
{{more}} Kibana4
Nodejs性能分析优化和分布式设计探讨
Nodejs性能分析优化和分布式设计探讨
Шардинг заказов корзины каталога Onliner.by
Шардинг заказов корзины каталога Onliner.by
Becoming a better WordPress Developer
Becoming a better WordPress Developer
glance replicator
glance replicator
PHP 5.4
PHP 5.4
Talkaboutlithium
Talkaboutlithium
More from charsbar
Common boolean class_for_perl5
Common boolean class_for_perl5
charsbar
2018年夏のPerl5
2018年夏のPerl5
charsbar
萬國之津梁
萬國之津梁
charsbar
2017年夏のPerl
2017年夏のPerl
charsbar
2017年春のPerl
2017年春のPerl
charsbar
Json(::PP) is a-changing
Json(::PP) is a-changing
charsbar
JSON, JSON::PP, and more
JSON, JSON::PP, and more
charsbar
perl language update
perl language update
charsbar
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情
charsbar
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze Community
charsbar
Annual Report 2012
Annual Report 2012
charsbar
DBD::SQLite
DBD::SQLite
charsbar
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
charsbar
CPANTS 2012
CPANTS 2012
charsbar
Revisiting ppm
Revisiting ppm
charsbar
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
charsbar
変数、リファレンス
変数、リファレンス
charsbar
關於perl的文件翻譯
關於perl的文件翻譯
charsbar
Practical Bug Reporting
Practical Bug Reporting
charsbar
More from charsbar
(20)
Common boolean class_for_perl5
Common boolean class_for_perl5
2018年夏のPerl5
2018年夏のPerl5
萬國之津梁
萬國之津梁
2017年夏のPerl
2017年夏のPerl
2017年春のPerl
2017年春のPerl
Json(::PP) is a-changing
Json(::PP) is a-changing
JSON, JSON::PP, and more
JSON, JSON::PP, and more
perl language update
perl language update
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze Community
Annual Report 2012
Annual Report 2012
DBD::SQLite
DBD::SQLite
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
CPANTS 2012
CPANTS 2012
Revisiting ppm
Revisiting ppm
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
変数、リファレンス
変数、リファレンス
關於perl的文件翻譯
關於perl的文件翻譯
Practical Bug Reporting
Practical Bug Reporting
Recently uploaded
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
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
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
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
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Recently uploaded
(20)
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
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
On UnQLite
1.
On UnQLite Kenichi Ishigaki (@charsbar) Kyoto.pm
#5 Jul 13, 2013
2.
http://blog.64p.org/entry/2013/07/05/155212
3.
UnQLite = Not
SQLite
4.
What's Different • Key/Value
Store • Document Store (JSON) • License (2-Clause BSD)
5.
What's Similar • Self-contained •
Cross Platform
6.
Suitable For Toolchains
7.
Usage: Like A Hash tie
my %hash, 'UnQLite', 'foo.db'; $hash{foo} = 'bar'; print $hash{foo};
8.
Usage: OOPs my $db
= UnQLite->open('foo.db'); $db->kv_store(foo => 'bar'); my $v = $db->kv_fetch('foo');
9.
Usage: Iteration my $db
= UnQLite->open('foo.db'); my $cursor = $db->cursor_init; while($cursor->next_entry && $cursor->valid_entry) { my ($key, $data) = ($cursor->key, $cursor->data); ... }
10.
JSON... only for
Jx9 my $db = UnQLite->open(':memory:'); $db->exec(<<'JX9'); db_exists('foo') || db_create('foo'); db_store('foo', [{bar: 'baz'}]) || print db_errlog(); print db_fetch('foo');# {"bar":"baz","__id":0} JX9 say dump $db->kv_fetch('foo'); # ?????
11.
Performance
12.
$ perl bench.pl
--perl --bdb --sqlite 100 10000 (store) Rate sql bdb_hs bdb_bt unq kc unq_m perl sql 23.5/s -- -10% -19% -22% -41% -80% -86% bdb_hs 26.1/s 11% -- -10% -13% -35% -78% -85% bdb_bt 29.0/s 23% 11% -- -4% -28% -75% -83% unq 30.1/s 28% 15% 4% -- -25% -74% -83% kc 40.2/s 71% 54% 39% 33% -- -66% -77% unq_m 118/s 400% 351% 306% 291% 193% -- -32% perl 172/s 633% 560% 495% 472% 329% 47% --
13.
$ perl bench.pl
--perl --bdb --sqlite 10 100000 (store) Rate bdb_hs sql unq bdb_bt kc perl unq_m bdb_hs 1.14/s -- -53% -57% -60% -81% -89% -89% sql 2.43/s 114% -- -8% -15% -59% -76% -77% unq 2.65/s 133% 9% -- -7% -55% -74% -75% bdb_bt 2.87/s 152% 18% 8% -- -52% -72% -73% kc 5.95/s 424% 145% 124% 108% -- -42% -44% perl 10.2/s 798% 320% 285% 256% 71% -- -4% unq_m 10.6/s 836% 338% 301% 271% 79% 4% --
14.
$ perl bench.pl
--perl --bdb --sqlite 10 1000000 (store) s/iter bdb_hs unq sql bdb_bt unq_m kc perl bdb_hs 10.7 -- -32% -61% -65% -81% -83% -87% unq 7.29 47% -- -43% -49% -72% -76% -81% sql 4.17 158% 75% -- -10% -51% -57% -67% bdb_bt 3.74 187% 95% 12% -- -45% -52% -63% unq_m 2.04 426% 257% 104% 83% -- -13% -32% kc 1.78 502% 309% 134% 110% 14% -- -22% perl 1.40 669% 423% 199% 168% 46% 28% --
15.
$ perl bench.pl
--perl --bdb --sqlite 10 10000000 (store) s/iter unq_m bdb_hs unq kc sql bdb_bt perl unq_m 184 -- -38% -51% -67% -77% -78% -91% bdb_hs 114 62% -- -20% -46% -62% -64% -85% unq 91.0 103% 25% -- -33% -53% -55% -82% kc 61.3 201% 86% 48% -- -30% -33% -73% sql 43.1 328% 164% 111% 42% -- -5% -61% bdb_bt 40.9 350% 178% 122% 50% 5% -- -59% perl 16.6 1008% 584% 447% 268% 159% 146% --
16.
$ perl bench.pl
--bdb 100 10000 (fetch) Rate bdb_bt unq bdb_hs kc bdb_bt 40.0/s -- -5% -8% -23% unq 42.2/s 5% -- -3% -19% bdb_hs 43.7/s 9% 3% -- -16% kc 52.1/s 30% 23% 19% --
17.
$ perl bench.pl
--bdb 10 100000 (fetch) Rate bdb_hs bdb_bt unq kc bdb_hs 2.21/s -- -39% -43% -59% bdb_bt 3.60/s 63% -- -7% -33% unq 3.88/s 76% 8% -- -28% kc 5.41/s 145% 50% 39% --
18.
$ perl bench.pl
--bdb 10 1000000 (fetch) s/iter bdb_hs unq bdb_bt kc bdb_hs 4.94 -- -26% -40% -61% unq 3.67 35% -- -19% -48% bdb_bt 2.97 67% 24% -- -35% kc 1.92 158% 92% 55% --
19.
$ perl bench.pl
--bdb 10 10000000 s/iter bdb_hs unq kc bdb_bt bdb_hs 53.2 -- -15% -20% -37% unq 45.0 18% -- -6% -26% kc 42.5 25% 6% -- -22% bdb_bt 33.3 60% 35% 28% --
20.
New storage engines are
coming soon(?)
21.
Further Information http://unqlite.org https://github.com/tokuhirom/UnQLite
Download now