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
LevelDB入門
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yosuke Furukawa
PRO
June 27, 2014
Programming
10
13k
LevelDB入門
InfluxDB勉強会用資料
Yosuke Furukawa
PRO
June 27, 2014
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
210
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
10
5k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
4.6k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
310
Removing Corepack
yosuke_furukawa
PRO
9
1.9k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
3k
Strip Types と Storage
yosuke_furukawa
PRO
4
480
Module Harmony について
yosuke_furukawa
PRO
4
1.8k
LTのやり方
yosuke_furukawa
PRO
16
2.9k
Other Decks in Programming
See All in Programming
モダンOBSプラグイン開発
umireon
0
160
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
270
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.3k
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
140
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
440
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
150
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
610
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
160
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
1.8k
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
88
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Believing is Seeing
oripsolob
1
86
BBQ
matthewcrist
89
10k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Marketing to machines
jonoalderson
1
5k
Code Review Best Practice
trishagee
74
20k
Transcript
LevelDBೖ @yosuke_furukawa
@yosuke_furukawa Node.jsϢʔβʔάϧʔϓද / DeNAॴଐ
None
None
LevelDBೖهࣄॻ͖·ͨ͠
ࠓͦΕͷ͓͞Β͍ + InfluxDB x LevelDBͷ
LevelDBͱ?
GoogleͷBigTableΛϕʔεʹ͠ ͯ։ൃ͞ΕͨܰྔͷKey-Valueܕ σʔλετΞ
༻్ΉͬͪΌ͍
LevelDBಛ
LevelDBಛ • σʔλkeyͰιʔτ͞Εͯ֨ೲ͞ΕΔ • جຊతͳૢ࡞ Put(key, value), Get(key), Delete(key)Ͱ ͋Γɺγϯϓϧɻ
• ෳͷมߋΛatomicͳॲཧʹ͢Δ͜ͱ͕Ͱ͖Δ • consistentͳσʔλͷviewΛಘΔͨΊ(ॻ͖ࠐΈதͰ readͰ͖ΔΑ͏ʹ͢ΔͨΊ)ʹtransient ͳ snapshotΛ࡞ Δ͜ͱ͕Ͱ͖Δ
Architecture
None
8SJUF࣌ʹ-PH 4PSUFE 5BCMF'JMFTʹॻ͘ 3FBE࣌ʹ$BDIF -PH 4PSUFE5BCMF'JMF͔ ΒಡΈࠐΉ
4PSUFE5BCMF
LevelDBཧղͷҰ൪ͷ؊ Sorted String Table
Sorted String Table LFZ P⒎TFU BBB CCC DDD
JOEFY 445 BBB CCC IPHFGVHBʜ DDD ʜ
Sorted String Table LFZ P⒎TFU BBB CCC DDD
JOEFY 445 BBB CCC IPHFGVHBʜ DDD ʜ LFZͰTPSU͞Ε͓ͯΓɺ JOEFYʹϑΝΠϧͷͲ͔͜ΒಡΈࠐ Ή͔ P⒎TFU ͕ॻ͍ͯ͋Δ LFZWBMVFͷॱংͰҰଓ͖Ͱ ϑΝΠϧʹॻ͔ΕΔ
-FWFM -FWFM -FWFM Sorted String Table 445 445 445 445
445 445 445 445 445 445 445 445 445 445
-FWFM -FWFM -FWFM Sorted String Table 445 445 445 445
445 445 445 445 445 445 445 445 445 445 -FWFM%#Ͱ͜ͷ445Λ ֊Խ ͕͜͜-FWFM%#ͷ༝དྷ ͯ͠ཧ͍ͯ͠Δɻ -FWFM͕ਂ͘ͳΕͳΔ΄Ͳ ཧ͢Δ༰ྔ͕૿͑Δ -FWFMͰ.# -FWFMͰ.# -FWFMͰ(# ͱେମഒִؒͰ૿͑ͯ͘
-FWFM -FWFM -FWFM Sorted String Table 445 445 445 445
445 445 445 445 445 445 445 445 445 445 ͜͏͢Δ͜ͱͰԿ͕خ͍͔͠ ֊͕ए͍-FWFM༰ྔগ ͳ͘ɺJOEFYͷ࠶࡞ίετ͕ ͍ɻ JOTFSU͕සग़͢ΔΑ͏ͳ໘Ͱ XSJUFͷੑೳΛޮԽͰ͖Δ
String Sorted Table ઌ΄Ͳͷུ֓ਤΛ445ͷͱ͜ Ζ͚ͩৄࡉʹ͢Δͱ ͜Μͳײ͡ʹͳΔɻ
Put/Get/Deleteͷࡉ͔͍ಈ͖
Put -FWFM NFNUBCMF NFNUBCMFTOBQTIPU 1VU DPQZ MPH EVNQUPEJTL 445 -FWFM
.# 445 445 445 ʜ -FWFM .# 445 445 445 ʜ
Put -FWFM NFNUBCMF NFNUBCMFTOBQTIPU 1VU DPQZ MPH EVNQUPEJTL 445 -FWFM
.# 445 445 445 ʜ -FWFM .# 445 445 445 ʜ શͯͷߋ৽ॲཧҰ୴ .FNUBCMFͱ-PHʹॻ͘
Put -FWFM NFNUBCMF NFNUBCMFTOBQTIPU 1VU DPQZ MPH EVNQUPEJTL 445 -FWFM
.# 445 445 445 ʜ -FWFM .# 445 445 445 ʜ Ұఆྔஷ·Δͱ 4OBQTIPUΛ࡞ͬͯɺ 445ʹEVNQ͢Δ
Put -FWFM NFNUBCMF NFNUBCMFTOBQTIPU 1VU DPQZ MPH EVNQUPEJTL 445 -FWFM
.# 445 445 445 ʜ -FWFM .# 445 445 445 ʜ -FWFM͕ҰഋʹͳͬͨΒ -FWFMʹҠಈͤ͞Δ
Get -FWFM NFNUBCMF (FU MPH 4FBSDI 445 -FWFM .# 445
445 445 ʜ -FWFM .# 445 445 445 ʜ #MPPN'JMUFS -FWFMʹ͋ΔՄೳ ੑ͕͋Δ 4LJQ 4FBSDI 4LJQ
Get -FWFM NFNUBCMF (FU MPH 4FBSDI 445 -FWFM .# 445
445 445 ʜ -FWFM .# 445 445 445 ʜ #MPPN'JMUFS -FWFMʹ͋ΔՄೳ ੑ͕͋Δ 4LJQ 4FBSDI 4LJQ NFNUBCMF -FWFM -FWFM -FWFMͱݟ͍ͯͬͯώοτ ͨ͠Βฦ͢ɻ
Get -FWFM NFNUBCMF (FU MPH 4FBSDI 445 -FWFM .# 445
445 445 ʜ -FWFM .# 445 445 445 ʜ #MPPN'JMUFS -FWFMʹ͋ΔՄೳ ੑ͕͋Δ 4LJQ 4FBSDI 4LJQ ແବͳ୳ࡧͷࢬמΓΛ͢Δͨ Ίʹ#MPPN'JMUFSʹΑͬͯଘࡏ ͢Δ͔Ͳ͏͔Λ֬ೝ͢Δ
Delete -FWFM %FMFUF NFSHF MPH 445 -FWFM .# 445 445
445 ʜ -FWFM .# 445 445 445 ʜ EFMFUFqBH LFZ WBMVF EFMFUFE BCD EFG HIJ EFMFUFqBH LFZ WBMVF EFG HIJ
Delete -FWFM %FMFUF NFSHF MPH 445 -FWFM .# 445 445
445 ʜ -FWFM .# 445 445 445 ʜ EFMFUFqBH LFZ WBMVF EFMFUFE BCD EFG HIJ EFMFUFqBH LFZ WBMVF EFG HIJ جຊతʹEFMFUFqBHΛ͚Δ ͚ͩͷཧআ
Delete -FWFM %FMFUF NFSHF MPH 445 -FWFM .# 445 445
445 ʜ -FWFM .# 445 445 445 ʜ EFMFUFqBH LFZ WBMVF EFMFUFE BCD EFG HIJ EFMFUFqBH LFZ WBMVF EFG HIJ -FWFMΛ·͙ͨຖʹ࣮ࡍʹ EFMFUF͢Δ
Delete -FWFM %FMFUF NFSHF MPH 445 -FWFM .# 445 445
445 ʜ -FWFM .# 445 445 445 ʜ EFMFUFqBH LFZ WBMVF EFMFUFE BCD EFG HIJ EFMFUFqBH LFZ WBMVF EFG HIJ ͜͏͢Δ͜ͱͰEFMFUF࣌ͷ JOEFY࠶࡞ίετΛݮΒͯ͠ ͍Δ
LevelDB Performance
IUUQMFWFMECHPPHMFDPEFDPNHJUIJTUPSZNBTUFSEPDCFODINBSLIUNM
IUUQMFWFMECHPPHMFDPEFDPNHJUIJTUPSZNBTUFSEPDCFODINBSLIUNM 3BOEPN3FBETେࠩͳ͍
IUUQMFWFMECHPPHMFDPEFDPNHJUIJTUPSZNBTUFSEPDCFODINBSLIUNM 4FRVFOUJBM3FBET 8SJUFॲ ཧ-FWFM%#͕ߴ
LevelDB x InfluxDB
LevelDB x InfluxDB ෦తʹLFZʹUJNFTUBNQ͕ͨ͘Ί-FWFM%#෦Ͱ࣌ܥྻॱ ͱͳΓɺ ࠷ద͔ͱ͔͘ 4FRVFOUJBM3FBE͔ͭ8SJUF͕සൃ͢ Δ*OqVY%#͖ͩͱݸਓతʹࢥ͏ɻ
InfluxDB x **DB
InfluxDB x **DB %#ϨΠϠʔΛநԽɺ-FWFM%#Ҏ֎ σʔλετΞͱͯ͑͠ΔΑ͏ʹͳͬͨɻ IUUQJOqVYECDPNCMPHMFWFMEC@WT@SPDLTEC@WT@IZQFSMFWFMEC@WT@MNEC@QFSGPSNBODFIUNM
InfluxDB x **DB ͪͳΈʹ͜ͷද͔Β3PDLT%#͕ྑͦ͞͏ʹݟ͑Δ͕ɺɺɺ
InfluxDB x **DB 5IF3PDLT%# QFSGPSNBODFJT BNB[JOHMZQPPS IUUQTHJTUHJUIVCDPNIZDFBBCFGC -.%#ͷ࡞ऀ͕ଌఆ͠ͳ͓ͨ͠Β-.%#࠷ڧʹͳͬͨΓͱ ڥʹΑͬͯҟͳΔ༷ࢠɻ
InfluxDB x **DB -.%#࡞ऀ͕ܭଌ͠ͳ͓ͨ͠Βܶతʹվળ͞ΕͯͨΓɺ IBSEXBSFʹΑͬͯมΘΔͷͰɺࣈͯʹ͠ͳ͍΄͏͕͍͍͔ʜ
·ͱΊ • LevelDBͱ • Architecture • Performance • LevelDB x
InfluxDB • InfluxDB x **DB
ࢀߟ • https://www.igvita.com/2012/02/06/ sstable-and-log-structured-storage- leveldb/ • http://yosuke-furukawa.hatenablog.com/ entry/2014/05/05/095207 • https://speakerdeck.com/smly/influxdb-
and-leveldb-inside-out