スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |

New SolrCloud Designの翻訳(その1)

ちょっと興味があるので、訳してみました。(Wikiのページはこちら
更新されているようなので、もとの文章も残しておきます。(ページ下部の続きはこちら部分以降)
全部訳そうと思ったのですが、終わらなかったので、まずは前半部分です。まだ、訳しただけで理解できてない。。。
(英語力のなさをさらけ出してしまうのですが、これも修行です。。。おかしいところはツッコミを。)


What is SolrCloud?

Solrクラウドはクラウドでの検索サービスとしてのSolrを管理、運用するための既存のSolrを拡張するものです。

用語集
  • Cluster:クラスタは1単位として管理されるSolrノードの集合です。クラスタ全体で単一のschema、solrconfigをもたないといけません。
  • Node:ひとつのJVMインスタンスで起動しているSolrのこと
  • Partition:パーティションはドキュメント集合全体のサブセット(部分集合)のことです。パーティションは部分集合のドキュメントが単一のインデックスに含まれるような形で作られます。
  • Shard:パーティションはn(=replication factor)個のノードに保存される必要があります。このn個のノードすべてでひとつのshardです。1つのノードはいくつかのshardの一部にで有る場合があります。
  • Leader:各Shardは1つのリーダとなるノードを持っています。パーティションに登録されたドキュメントリーダーからコピーされます
  • Replication Factor:クラスタによって保持されるレプリカの最小限の数
  • Transaction Log:各ノードによって保持される書き込み処理の追記ログ
  • Partition version:これは各shardのリーダーが持っているカウンターで、書き込み処理ごとに増加し、レプリカに送られます。
  • Cluster Lock:これはrange(※後述されているハッシュ値の範囲のことか?)->パーティションもしくはパーティション->ノードのマッピングを変更するために取得しなければいけないグローバルなロックのことです。

※用語だけだと関係がわかりづらかったので、図を書いてみました。

SolrCloudのパーティションについて
ドキュメントの集合とパーティションについての考え方


SolrCloudのクラスターについて
クラスタ、ノード、シャードの考え方。


処理原則

  • 任意の処理はクラスタにある任意のノードに実行可能です。
  • リカバリできないSPOFはありません。
  • クラスタは伸縮自在(elastic)でなければならない
  • 書き込みが失われないこと(耐久性)を保証する
  • 書き込み順序が保証されなければならない
  • 2つのクライアントが2つの「A」というドキュメントを同時に送信してきた場合、すべてのレプリカで一貫してどちらか一方が保存されなければならない。
  • クラスタの設定は中央管理されなければならない。また、クラスタのどのノードからもクラスタ設定が更新できます。
  • 読み込み(検索)の自動的なフェイルオーバー
  • 書き込み(インデクシング)の自動的なフェイルオーバー
  • ノードの故障が発生しても自動的にrepcation factorの数は守られます。(故障したら動的にレプリカを再配置?)


Zookeeper

ZooKeeperクラスタは次のために使用されます。

  • クラスタ設定の集中管理
  • 分散同期に必要な操作のコーディネータ
  • クラスタ構成を保存するためのシステム

Partitioning

クラスタは固定されたmax_hash_value=「N」が設定されます。 max_hash_valueは1000のような大きな値が設定されます。

hash = hash_function(doc.getKey()) % N

ハッシュ値の範囲がパーティションに割り当てられ、ZooKeeperに保存されます。 次の例のような形で、パーティションに対して範囲が設定されます。
range  : partition
------  ----------
0 - 99 : 1
100-199: 2
200-299: 3

ハッシュはドキュメントにインデックスフィールドとして追加され、変更されない値です。 これは、インデックスを分割するときにも利用します。

ハッシュ関数はプラガブルです。これはドキュメントを受け取り、一貫した正整数ハッシュ値を返します。デフォルトのハッシュ関数として、必須でかつ変更されないフィールド(デフォルトはユニークキーフィールド)からハッシュ値を計算する関数が提供されます。

Using full hash range

max_hash_valueは必ずしも必要ではありません。各shardはいずれにしろハッシュ値の範囲持っているので、完全な32 bitsハッシュを使うこともできます。 設定可能なmax_hash_valueを利用しないで、クライアントからの値をもとにハッシュ値を作ることができます。 例えば、電子メールの検索アプリでは次のようにハッシュ関数を作ることができます。

(hash(user_id)<<24) | (hash(message_id)>>>8)

ユーザIDから8bitのハッシュコードの先頭8ビットを利用することで、任意のユーザのメールがクラスタの同じ256番目(のノード?)にあるのを保証します。検索時はこの情報をもとにクラスタのその部分への問い合わせだけで情報が得られます。

おそらく、私たちは最大値から最小値をカバーする範囲を表現するのにハッシュ空間を輪(固定のハッシュではなく)とみなしたいです。(???円状のハッシュ空間とすることで、クラスタ内のノード数の増減に耐えられるようにするよということかな?)

shard naming

シャードからハッシュ値の範囲へのマッピングを別々に管理するよりも、ハッシュコードによりパーティションを構成するときに実際にはハッシュの範囲をシャード名にします。 (シャード「1-1000」は1から1000の間のハッシュコードを持つドキュメントが含まれるという形)

現時点では(コレクション1つに対してシングルコアの1Solrサーバと仮定して)solrコア名はコレクション名をつけるようになっています。 同一コレクションのためのマルチコアに対してのいい命名規則をつけるという課題が残っています。 (※コレクションに対する説明がここまでないかな?)

Shard Assignment

ノード->パーティションのマッピングはZooKeeperにあるCluster Lockを取得したノードによってのみ変更が可能です。 ノードの追加時に、まず、Cluster Lockを取得し、次にそれがどのパーティションを取得できるかを識別します。

Node to a shard assignment

新しいノードを探しているノードはまずCluster Lockを取得しないといけません。 第一に、リーダーはシャードを決めます。 シャードが持つ、すべての利用可能なノード数で最小の値を持つノードが選び出されます。 もし、同値ならランダムにノードを選びます。






原文はこちらからです。



続きを読む >>
johtani | solr | 20:45 | comments(0) | trackbacks(0) | - | - |

Lucene/Solr 3.4リリース(速報)

Solr/Lucene 3.4がリリースされました。(速報)

以下、各サイトへのリンクです。

Solrリリースのお知らせ

Luceneリリースのお知らせ

ちなみに、先日のSolr勉強会で関口さんが話されていたインデックスが壊れるバグですが、 先日のアメリカのハリケーン(Irene)で実際に電源が落ちて見つかったみたいです。

ということで、3.4がリリースされたので、3.1~3.3は利用しないほうがいいようです。
追記:
lucidimagination.jpのサイトに日本語のリリースノートが公開されていたので、リンクを記載しておきます。
johtani | solr | 09:31 | comments(0) | trackbacks(0) | - | - |

Lucene/Solr 3.3リリース(速報)

Solr/Lucene 3.3がリリースされました。(速報)

以下、各サイトへのリンクです。

Solrリリースのお知らせ

Luceneリリースのお知らせ

リリースのタイミングがどんどん早くなってる。。。
johtani | solr | 15:29 | comments(0) | trackbacks(0) | - | - |
2/2PAGES | << |

11
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus) (JUGEMレビュー »)
大谷 純,阿部 慎一朗,大須賀 稔,北野 太郎,鈴木 教嗣,平賀 一昭
Solr 4系に対応した改訂版を出しました!興味ある方はぜひ。
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECENT COMMENT
  • ポモドーロ回してます。(ポモドーロテクニック入門読みました)
    おーたに (05/07)
  • Lucene 4.3.0のChangesにあるChanges in backwards compatibility policyが気になったので訳してみた。
    おーたに (04/26)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/04)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    m_nori (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    ho4kawa (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    まろか (09/03)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    おーたに (08/07)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    moco (08/07)
RECENT TRACKBACK
MOBILE
qrcode
OTHERS