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
これは分散KVS? NoSQL? NewSQL? 謎の HarperDBにせまる
Search
jyoshise
December 13, 2022
Technology
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
これは分散KVS? NoSQL? NewSQL? 謎の HarperDBにせまる
Cloud Native Database Meetup #5 のLT資料です。
jyoshise
December 13, 2022
More Decks by jyoshise
See All by jyoshise
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
790
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
2
970
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
14
14k
Nutanix Kubernetes PlatformでLLMを動かす話
jyoshise
0
570
CNDT2023_Nutanix_jyoshise
jyoshise
0
650
クラウドネイティブインフラおじさんがNutanixに入社することになったので以下略
jyoshise
0
1.3k
全てがクラウドネイティブで良いのか。その謎を明らかにすべく我々はエンプラの奥地に向かった
jyoshise
8
6.1k
Kubeadmによるクラスタアップグレード・その光と闇
jyoshise
3
4.8k
Kubernetes Meetup Tokyo #26 / Recap: Kubecon Keynote by Walmart
jyoshise
6
3.5k
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
55k
V8コントリビュート超入門
riyaamemiya
0
110
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.4k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
3
120
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
520
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
4
4.9k
Continuous Delivery! It is not what you think it is
tdpauw
0
180
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
220
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
2
410
When Does a Local Qwen Start to Break
morshoto
0
130
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
170
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
The Spectacular Lies of Maps
axbom
PRO
1
960
The Pragmatic Product Professional
lauravandoore
37
7.4k
New Earth Scene 8
popppiees
3
2.5k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
Building AI with AI
inesmontani
PRO
1
1.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Practical Orchestrator
shlominoach
191
12k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Transcript
@jyoshise これは分散KVS? NOSQL? NEWSQL? 謎の HARPERDBにせまる
None
3
4 • LMDB (Lightning Memory-Mapped Database) とは: • もともとはOpenLDAPプロジェクトのために作られたOSS •
CloudflareがDNS用のデータストアとして使っていたりとか • Memory-mapped fileを使用 • 軽量 • 高速 • ACID準拠 • 読み出しと書き込みに高度に最適化された追記型B+tree構造 • トランザクションをサポート • 書き込みロック処理→デッドロックは発生しない • Full MVCC→ReaderとWriterは競合しない • Dup-sorted keys UNDERLYING STORAGE MECHANISM OF HARPERDB: LMDB
5 • JSONやSQLでデータを取り込み、1つの データスキーマに格納できるようにしたい。 • マルチモデルデータベースでよくある、1つ のデータベース内でモデル間でデータが重複 してしまうという問題を解決する • Same
data set • Common services/core operation • No data duplication for different models • SQL, NoSQL, CSV, etc… all talking to HarperDB core and same data set OPERATIONAL MODEL
6
7 • テーブルを作成するときはハッシュAttribute名(Primary key)を定義するだけでよい • 各テーブルはディスク上に1つのデータファイル(.mdb)であり、すべてのインデックス はデータファイル内の「サブデータベース」 • データ書き込み(挿入、更新、削除)は「マイクロバッチ処理」とし、トランザクション の一括実行を可能にすることで、より高いパフォーマンスを実現
STORAGE HIERARCHY
8 • コア数 • インストールされたインスタンスで利用可能なコア数に合わせてスケール可能 –Raspberry Pi から大規模ベアメタルサーバーまで –大規模環境ではHarperDBを並列プロセスで実行 •
プロセス数=利用可能なコアの数 • ディスク • ストレージは無制限→テーブルはインスタンスのストレージの利用可能な容量まで成長 SCALING WITH HARDWARE
9 • Read/Write Optimized • 1ノードあたり毎秒20Kの書き込みが可能 • 読み込みと書き込みが独立したノンブロッキングのグローバルレプリケーション(MVCC)を110msで実行できる • High
Throughput • HarperDB 1ノードで120Kリクエスト/秒の処理能力 • Storage Engine • ACID準拠 • Attributesはuniversally indexed by default →効率的な格納と検索が可能 PERFORMANCE & BENCHMARKS
10
11
12
13 • 各ノードはトランザクションとストレージをACIDに他のノードから独立して処理 • 各ノードは、他のノードに接続し、任意のテーブルに対してトランザクションを送受信で きる • スキーマメタデータとトランザクションを、定義されたトポロジーに基づき決定論的にリ アルタイムで送信 •
すべてのノードがネットワークやサーバーの停止からキャッチアップでき、”dead on the floor”トランザクションは発生しない • 一貫性を保つためにタイムスタンプを利用→更新のシナリオでは最新のトランザクション を優先(古い更新があった場合、それは破棄される) • 再接続シナリオでは、HarperDBノードは自動的にオフラインだった時間分のキャッチアッ プペイロードを要求し、送信 HARPERDB: DISTRIBUTED COMPUTE & STORAGE
14
15 HarperDBは • むちゃくちゃ速い(らしい) • DB設計をほとんど考えなくてよいので楽 • CSVなりJSONなりでデータをぶっこめばインデックスしてくれて、あとはSQLで 読み書きできる •
Geo distributionはConsistencyの点でまだ開発途上のようだが、読み書き性能を優先す る用途には使えそう • クラウドのDBaaSもあるのでとっつきやすい • https://harperdb.io/ • 小さいインスタンスなら無料でお試しできます • オンプレにデプロイしてクラウドで管理もできる まとめ