Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
これは分散KVS? NoSQL? NewSQL? 謎の HarperDBにせまる
Search
jyoshise
December 13, 2022
Technology
660
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
900
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
2
1.2k
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
14
15k
Nutanix Kubernetes PlatformでLLMを動かす話
jyoshise
0
590
CNDT2023_Nutanix_jyoshise
jyoshise
0
680
クラウドネイティブインフラおじさんが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
アカウント統制の健康診断
kenichinakamura
1
190
How we choose session proposals
kawaguti
PRO
0
170
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
370
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
130
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
310
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
300
スクラム祭り2026福井トラック_閉じたループから価値のスパイラルへ
kc_nakanishi
0
170
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
240
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
230
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
170
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
190
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
Technical Leadership for Architectural Decision Making
baasie
3
610
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
410
Design in an AI World
tapps
1
360
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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/ • 小さいインスタンスなら無料でお試しできます • オンプレにデプロイしてクラウドで管理もできる まとめ