Enviar pesquisa
Carregar
Consistent hash
•
24 gostaram
•
12,770 visualizações
paulowniaceae
Seguir
(in japanese)コンシステントハッシュ法の簡単な説明でうす。ネットでググって出てくる以上の内容はありません
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 32
Baixar agora
Baixar para ler offline
Recomendados
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
Recomendados
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
DNS再入門
DNS再入門
Takashi Takizawa
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
例外設計における大罪
例外設計における大罪
Takuto Wada
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
Mais conteúdo relacionado
Mais procurados
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
DNS再入門
DNS再入門
Takashi Takizawa
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
例外設計における大罪
例外設計における大罪
Takuto Wada
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
Mais procurados
(20)
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
暗号技術の実装と数学
暗号技術の実装と数学
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Serverless時代のJavaについて
Serverless時代のJavaについて
DNS再入門
DNS再入門
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
分散システムの限界について知ろう
分散システムの限界について知ろう
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
例外設計における大罪
例外設計における大罪
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Consistent hash
1.
@nullpon / id:paulownia コンシステント ハッシュ法 consistent
hashing
2.
コンシステントハッシュ法 分散データベース/キャッシュの保存先を決定 するために開発されたハッシュテーブルのアル ゴリズム
3.
コンシステントハッシュ のアルゴリズム
4.
適当なハッシュ関数を用意 出力値が大小比較可能なハッシュ関数を用意 ※ ここでは、入力値を0から127までの値に変換 する仮想のハッシュ関数 h
で説明する
5.
ノードのIDをハッシュ関数 h で変換 n1:
h("n1") => 25 n2: h("n2") => 120 n3: h("n3") => 50 n4: h("n4") => 95
6.
リング状に配置
7.
データのIDをハッシュ関数 h で変換 a1:
h("a1") => 64 a2: h("a2") => 115 a3: h("a3") => 75 a4: h("a4") => 8 a5: h("a5") => 100 a6: h("a6") => 90 a7: h("a7") => 45 a8: h("a8") => 15
8.
リング状に配置
9.
データの割り当て先ノードは以下の順に決定 データIDのハッシュ値と同じノード データIDより大きいハッシュ値を持つノード のなかで、ハッシュ値が最小のノード ハッシュ値が最小のノード
10.
ノードの追加と削除
11.
ノードの追加
12.
13.
n4のデータの一部がn5へ移動
14.
ノードの削除
15.
16.
n1のデータがn3へ移動
17.
移動するデータ数の平均値 データ数/ノード数
18.
仮想ノード
19.
仮想ノードなしでは、負荷分散が不完全
20.
偏ったリング データが特定のノードに偏り 負荷分散にならない
21.
ノードがダウン 落ちたノードの全データが一つ先のノードへ 移動 一つ先のノードの負荷が2倍 特定のノードに負荷が集中
22.
ノードを追加 1つ先のノードからデータが移動 1つ先のノードの負荷しか減らない 負荷対策にならない
23.
そこで仮想ノード
24.
n1: h("n1"+0) =>
25 n1: h("n1"+1) => 100 n1: h("n1"+2) => 90 n2: h("n2"+0) => 120 n2: h("n2"+1) => 45 n2: h("n2"+2) => 13 … ハッシュ関数 h でノードID+αを変換
25.
リング状に配置 ノード数が増えれば均等に分散する確率が高くなる
26.
ノード4が追加された場合 複数のノードから均等にデータが 移動してくる可能性が高い
27.
ノード1がダウンした場合 ノード1のデータが複数のノードへ 均等に分散することが期待できる
28.
メリット・デメリット
29.
メリット データの割り当て先を自動で決定可能 データをクラスタに均等に分散できる ノードが落ちた時、自動で再割り当て 再割り当てのコストが小さい
30.
デメリット 全てのノードが現在のクラスタの状態を正確に 知ってなければならない。 クラスタ状態の共有コストがかかる
31.
まとめ
32.
コンシステントハッシュを用いると プロセスが1つ2つ程度落ちても問題のない クラスタを構成できる 負荷分散についてエンジニアが手を動かす 必要がない 大規模な分散環境でも運用が楽 (かもしれない)
Baixar agora