分散key-valueストアkumofsの思想と設計
DESCRIPTION
丸レクセミナー2010分散Key-valueストア「kumofs」について紹介いたします。近年では、スケーラビリティを重視した分散データストアが数多く登場してきました。その中でkumofsは、特に可用性の高さや動的な運用のしやすさを重視しており、また、高い単体性能を誇ります。このセッションではkumofsの特性についてご紹介すると共に、稼働中のサーバの追加やサーバ故障時の復旧方法などのデモを交えながら、kumofsの運用について具体的に紹介いたします。TRANSCRIPT
![Page 1: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/1.jpg)
分散Key-valueストア
~ kumofsの思想と設計 ~
筑波大学 システム情報工学研究科
古橋 貞之#kumofs @frsyuki
http://d.hatena.ne.jp/viver/
kumofs
![Page 2: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/2.jpg)
高速シリアライズライブラリ
MessagePack
並列イベント駆動I/Oフレームワーク
mpio多人数音声チャットシステム
ペアプログラミング支援システム
未踏ソフトウェア創造事業統合ディスクレスネットワーク基盤システム
![Page 3: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/3.jpg)
![Page 4: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/4.jpg)
![Page 5: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/5.jpg)
![Page 6: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/6.jpg)
http://msgpack.sourceforge.net/doc:poweredby
![Page 7: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/7.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 8: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/8.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 9: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/9.jpg)
kumofsとは?
• 拡張性の高い分散KVS> アプリケーションに影響せずに動的に拡張できる> レプリケーション機能を備える> サーバが故障しても止まらない・復旧も無停止> 一括管理ツール> システムを拡張する作業が自動化されている> memcachedプロトコルをサポート
![Page 10: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/10.jpg)
![Page 11: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/11.jpg)
kumofsが解決する問題
• サーバが1台停止しても、システム全体は動き続けて欲しい。
• データや負荷の増加に合わせて、柔軟に性能を向上させていきたい。
• 上記のようなシステムを高度なノウハウを必要とせずに低コストで構築したい。
• 上記のようなシステムの運用を簡略化し、操作ミスを低減したい。
![Page 12: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/12.jpg)
問題の例
• Webアプリケーション• すべてのデータをRDBMSに格納> RDBMSがボトルネックになりがち> RDBMSの性能がシステム全体の性能を制約
• RDBMSのスケーラビリティが低い> 速度・容量・可用性・運用・価格> システム全体のスケーラビリティが低くなる> 大規模化が困難
![Page 13: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/13.jpg)
RDBMS
アプリケーション
プレゼンテーション
アプリケーション
![Page 14: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/14.jpg)
「利用者や仕事の増大に適応できる能力」
“the ability of a system to accommodate an increasing number of elements or objects,to process growing volumes of work gracefully, and/or to be susceptible to enlargement”
André B. Bondi, 'Characteristics of scalability and their impact on performance',Proceedings of the 2nd international workshop on Software and performance,Ottawa, Ontario, Canada, 2000, pp.195 - 203
スケーラビリティとは
「拡張性」
![Page 15: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/15.jpg)
負荷増大→サーバを置き換える
スケール・アップ
価格
性能
> 指数関数的に価格が増大> 性能向上に限界> 拡張時に高コスト> 負荷の見積もりが必須
サーバ置き換えサーバ置き換え
![Page 16: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/16.jpg)
負荷増大→サーバの数を増やす
スケール・アウト サーバ追加
価格
性能
> 負荷に見合った価格> 性能向上はソフトに依存> 最小限のコストで拡張> 負荷が増えたら拡張
サーバ追加サーバ追加
![Page 17: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/17.jpg)
0%
1%
10%
100%
1 2 4 8 16 32 64 128 256 512
稼働率 99% のサーバ (1年間で 3.65日 停止)
85% (1年間で 55日 停止)
28% (1年間で 262日 停止)
台数
![Page 18: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/18.jpg)
0%
1%
10%
100%
1 2 4 8 16 32 64 128 256 512
99.8% (1年間で 0.73日 停止)
95.0% (1年間で 18日 停止)
98.7% (1年間で 4.7日 停止)
台数
それぞれを二重化
![Page 19: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/19.jpg)
人
サーバ
管理
![Page 20: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/20.jpg)
人
・操作ミス・稼働率低下 …
![Page 21: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/21.jpg)
企業IT動向調査2008http://itpro.nikkeibp.co.jp/article/Research/20080716/310976/
![Page 22: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/22.jpg)
問題の例(再掲)
• すべてのデータをRDBMSに格納> RDBMSがボトルネックになりがち> RDBMSの性能がシステム全体の性能を制約
• RDBMSのスケーラビリティが低い> 速度・容量・可用性・価格・運用の面で> システム全体のスケーラビリティが低くなる> 大規模化が困難
![Page 23: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/23.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 24: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/24.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 25: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/25.jpg)
従来の解決方法
• RDBMSをスケール・アウトさせる• 複数のRDBMSにデータを分割して保存して高速化> 垂直分散> 水平分散
• 複数のRDBMSに同じデータを保存して高可用化> レプリケーション
![Page 26: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/26.jpg)
RDBMS
アプリケーション
プレゼンテーション
アプリケーション
![Page 27: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/27.jpg)
RDBMS
アプリケーション
プレゼンテーション
RDBMS
アプリケーション
![Page 28: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/28.jpg)
RDBMS
アプリケーション
プレゼンテーション
アプリケーション
![Page 29: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/29.jpg)
RDBMS
アプリケーション
プレゼンテーション RDBMS
アプリケーション
![Page 30: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/30.jpg)
システムの拡張:
・サーバの追加で対応可能・アプリケーションの書き換えが必要・データの移動が必要 > システムが一時的に停止 > 操作ミスの危険性
![Page 31: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/31.jpg)
従来の解決方法
• サーバが1台停止しても、システム全体は動き続けて欲しい。→解決
• データや負荷の増加に合わせて、柔軟に性能を向上させていきたい。→ある程度解決
• 上記のようなシステムを高度なノウハウを必要とせずに低コストで構築したい。→未解決
• 上記のようなシステムの運用を簡略化し、操作ミスを低減したい。→未解決
![Page 32: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/32.jpg)
理想的な解決方法
• RDBMSが勝手に(透過的に)分散してくれる> 実装が難しい フルセットのSQLの実装は非常に難しい> データモデルが分散に適さない スケーラブルな範囲検索 スケーラブルなJOIN トランザクション
![Page 33: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/33.jpg)
提案する解決方法
• データの一部を新しい種類のデータストアに移す> RDBMSも使い続ける> 分散に適したデータだけ移す 分散に適したデータモデルを採用する 既存の制約に縛られずに設計・実装> システム全体としてはスケーラビリティが向上> 透過的に分散する> 運用タスクは自動化する
![Page 34: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/34.jpg)
kumofsとは?(再掲)
• 拡張性の高い分散KVS> アプリケーションに影響せずに動的に拡張できる> レプリケーション機能を備える> サーバが故障しても止まらない・復旧も無停止> 一括管理ツール> システムを拡張する作業が自動化されている> memcachedプロトコルをサポート
![Page 35: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/35.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 36: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/36.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 37: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/37.jpg)
Manager
Gateway
Server群を管理
kumofsの構成
実際にデータを保存
アプリケーションからの要求を中継
Server
![Page 38: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/38.jpg)
Application
ServerManager
Gateway
Manager
冗長構成
Server
Server
Server
Server
Server
Application
GatewayApplication
Gateway
レプリケーション
Tokyo Cabinet
![Page 39: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/39.jpg)
Server
Server
Server
Server
Server
Server
![Page 40: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/40.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
Consistent Hashing
hash(サーバA.id)
hash(サーバB.id)
hash(サーバC.id)
hash(サーバD.id)
![Page 41: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/41.jpg)
hash(key1)
サーバ A
サーバ B
サーバ C
サーバ D
Consistent Hashing
![Page 42: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/42.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバBの担当範囲
![Page 43: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/43.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバBの担当範囲
サーバCの担当範囲サーバD
の担当範囲
サーバAの担当範囲
![Page 44: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/44.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
set
レプリケーション
保存とレプリケーション
![Page 45: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/45.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
get取得と耐障害性
![Page 46: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/46.jpg)
サーバ A
サーバ C
サーバ D
get取得と耐障害性
![Page 47: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/47.jpg)
サーバ A
サーバ C
サーバ D
get取得と耐障害性
![Page 48: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/48.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバBの担当範囲
サーバCの担当範囲サーバD
の担当範囲
サーバAの担当範囲
ノードの追加
![Page 49: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/49.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバBの担当範囲
サーバCの担当範囲
サーバAの担当範囲
サーバ E
データを移動
ノードの追加
![Page 50: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/50.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバ E
データを移動中...
ノードの追加
![Page 51: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/51.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバ E
setget
ノードの追加
![Page 52: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/52.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバ E
setget
ノードの追加
![Page 53: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/53.jpg)
サーバ A
サーバ B
サーバ C
サーバ D
サーバ E
setget
ノードの追加
![Page 54: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/54.jpg)
getset
get用ルーティング表 set用ルーティング表
kumofsのノード追加アルゴリズム(double-hash-space)
![Page 55: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/55.jpg)
Manager
Gateway
Server
Managerの役割
![Page 56: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/56.jpg)
Application
ServerManager
Gateway
Manager
冗長構成
Server
Server
Server
Server
Server
Application
GatewayApplication
Gateway
Managerの役割
![Page 57: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/57.jpg)
Manager
Manager
冗長構成
Server
Server
Server
ServerServer
Managerの役割
死活監視
Application
Gateway
![Page 58: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/58.jpg)
Manager
Manager
冗長構成
Server
Server
Server
ServerServer
Managerの役割
死活監視
Application
Gateway Consistent Hashing表を更新他のノードに通知
ノードの障害を検出
![Page 59: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/59.jpg)
Manager
Manager
冗長構成
Server
Server
Server
Server
Server
Server
Managerの役割
死活監視
Consistent Hashing表を更新他のノードに通知Application
Gateway
ノードの追加処理
![Page 60: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/60.jpg)
Application
Gateway
![Page 61: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/61.jpg)
Gateway
Application
Server Server Server
memcachedプロトコル
MessagePack-RPC
・サーバーの構成を隠蔽 いつでもlocalhostで動作する memcachedサーバーに見える
・高速RPCライブラリ・多言語対応・非同期/並列処理
localhost:11211
![Page 62: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/62.jpg)
管理ツール
Rubyで実装
> 実装が容易親切なコマンドライン分かりやすい表示
> 拡張が容易
> 管理タスクを自動化(デモ)
kumoctlkumostatkumotop
MessagePack-RPC
![Page 63: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/63.jpg)
MessagePack-RPC
Server Server Server
管理ツール
人
Manager
ノード一覧を問い合わせ
![Page 64: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/64.jpg)
Manager
svr001
Server
Manager
svr002
Server
最初は少ない台数で運用
![Page 65: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/65.jpg)
Manager
svr001
Server
Manager
svr002
Server
svr003
Server
負荷が増えたらサーバーを足す負荷に合わせて柔軟に拡張可能
最初は少ない台数で運用
![Page 66: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/66.jpg)
Manager
svr001
Server
Manager
svr002
Server
svr003
Server
svr005
Server 負荷が増えたらサーバーを足す負荷に合わせて柔軟に拡張可能
最初は少ない台数で運用
![Page 67: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/67.jpg)
Manager
svr001
Manager
svr002 svr003
Server
svr005
Server
svr006
Server
svr007
Server
![Page 68: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/68.jpg)
0
28,500
57,000
85,500
114,000
memcached kumofs
114,000 req/sec110,000 req/sec
サーバー Linux 2.6.27.10 x86_64 AMD Athlon 64 X2 5000+
クライアント Linux 2.6.27.19 x86_64 AMD Athlon 64 X2 4800+
1台のサーバーに対して3台のクライアントから同時に負荷を掛け、サーバー1台の最大スループットを計測。keyは32バイト、valueは1KB
で、8本のスレッドでそれぞれ32個のkeyを同時に取得。合計960,000個のkeyを取得するのにかかった時間を3回計測し、その平均値からスループットを算出。
超高速
![Page 69: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/69.jpg)
0
800,000
1,600,000
2,400,000
3,200,000
10 20 30 40 50 60
(requests/sec)
台数(台)
kumofsサーバー Linux 2.6.27.21 i686 Intel Pentium 4 3.20GHz
クライアント Linux 2.6.27.21 x86_64 Intel QuadCore Xeon X3350
クライアントの台数を50台に固定し、サーバーの台数を10台から60台まで増やして計測。 keyは8バイト、valueは32バイトで、32本のスレッドでそれぞれ256個のkeyを同時に取得。合計51,200,000個のkeyを取得するのにかかった時間を計測した平均値からスループットを算出。
超高速
![Page 70: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/70.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 71: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/71.jpg)
背景
従来手法
提案手法
> スケール・アップシステムの問題
> 運用によるスケール・アウト> 従来手法の課題
> double-hash-space> 異種言語間RPCと管理タスクの自動化
kumofsとは?
デモ
設計と実装
![Page 72: 分散Key-valueストアkumofsの思想と設計](https://reader033.vdocuments.net/reader033/viewer/2022060108/554dc36eb4c905c7488b4efe/html5/thumbnails/72.jpg)
Demo