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
LSMツリー
Search
北村
September 01, 2025
25
0
Share
LSMツリー
北村
September 01, 2025
More Decks by 北村
See All by 北村
LLMの出力を構造化したい
shu_kita
0
320
Azure Container Appsを使ってみた
shu_kita
0
240
ギャルのパンティおくれ
shu_kita
1
230
掲示板への不適切な投稿を防ぐ
shu_kita
0
240
正規表現エンジンを自作した話
shu_kita
0
25
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
700
Writing Fast Ruby
sferik
630
63k
Done Done
chrislema
186
16k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
460
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Discover your Explorer Soul
emna__ayadi
2
1.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
7
640
Transcript
LSM-Tree shu-kita
自己紹介 • 出身 ◦ 大阪府枚方市 ◦ 3年前から札幌住み • 業務 ◦
SIer ◦ デバイスドライバ関係 • 趣味 ◦ テニス、フットサルやってます ◦ お笑いが好きです
話すこと • LSM-Tree について ◦ LSM-Treeとは ◦ 全体像 ◦ Get
(Read) ◦ Put (Write) ◦ Delete ◦ Compaction • デモ(時間あれば)
LSM-Treeとは データベースで使用されるストレージエンジンの一種 特徴 • NoSQLデータベースで使用されることが多い ◦ Cassandra, HBase など •
書き込みの負荷が高いワークロードに適している
全体像 • MemTable ◦ データ読み書き用のメモリバッファ ◦ データが溜まったら ファイル(SSTable)に書き込む • SSTable(Sorted
String Table) ◦ キーでソートされたファイル ◦ MemTableの内容をキーで並び変えて、 作成されるファイル • WAL(Write Ahead Log) ◦ DBに対する変更ログ ◦ 障害復旧などで使用する サーバ ストレージ メモリ WAL SSTable MemTable SSTable
Get (Read) 処理 サーバ ストレージ メモリ WAL SSTable MemTable SSTable
クライアント get “key1” ①メモリにあれば、メ モリから返す ②メモリになければ、 ファイル(SSTable) を読んで返す
Put (Write) 処理 サーバ ストレージ メモリ WAL SSTable MemTable SSTable
クライアント put “key1” “value1” ②メモリにデータを格 納 ③メモリが一定のサイズを超えた ら、新しくSSTableを作成する(この 動作をFlushと呼ぶ) ①WALに更新情報を 書き込む
Delete 処理 サーバ ストレージ メモリ WAL SSTable MemTable SSTable クライアント
delete “key1” ②削除フラグを立てたデー タを格納(※) ③メモリが一定のサイズを超えた ら、新しくファイルを作成する (Flush) ①WALに更新情報を 書き込む ※やっている事は Put と変わらない =データ削除のたびにファイルを書き換える必要がない ③メモリが一定のサイズを超えた ら、新しくSSTableを作成する(この 動作をFlushと呼ぶ)
Compaction 処理 サーバ ストレージ メモリ WAL SSTable MemTable 複数の SSTable
から一つの新しい SSTable を作成する(Compaction) この時に古いデータを削除する。 サーバ ストレージ メモリ WAL SSTable1 MemTable key1 : value1 SSTable2 key1 : value2 key1 : value2 ※SSTable2は、SSTable1より新しいとする Compatcion前 Compatcion後