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
Yosuke Furukawa
PRO
June 27, 2014
Programming
13k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LevelDB入門
InfluxDB勉強会用資料
Yosuke Furukawa
PRO
June 27, 2014
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
320
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
250
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
10
5.3k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
4.8k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
360
Removing Corepack
yosuke_furukawa
PRO
9
2k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
3.2k
Strip Types と Storage
yosuke_furukawa
PRO
4
520
Module Harmony について
yosuke_furukawa
PRO
4
1.9k
Other Decks in Programming
See All in Programming
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
380
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
5
1.4k
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
660
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
220
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
950
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
Android CLI
fornewid
0
220
FDEが実現するAI駆動経営の現在地
gonta
2
280
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
What's in a price? How to price your products and services
michaelherold
247
13k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
540
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