2017年7月13日

ブロードバンドタワーで Scality RING を担当しているポールです。
今回は、RING のキー範囲について簡単にご紹介します。

RING はオブジェクトストレージがベースになっていますので、格納されるすべてのデータには一意のキーがアサインされます。では、最大でどのくらいのキーを管理できるのでしょうか?

RING のキーは、160bit の幅があります。先頭から 24bit がデータを分散させるためのハッシュ値、末尾から8bit がデータの保護レベルを規定しています。このため、データに対して意味があるのは中間の 128bit になります。ただ、この話は 0と1の2進表記での幅なので、人間にはぱっと理解できません。人間が理解できる10進数で 128bit がどのくらいの数になるのかを計算してみます。

2進だと128文字と無駄に長いので16進で書きますが、要は 32桁のFになる、

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

を10進に置き換えてみましょう、ということになります。

・・・はい、みなさん計算できましたでしょうか?

一般の電卓だと計算不可能でしょうから、インターネットで変換サイトなどを検索して使ってみてください。答えは 340282366920938463463374607431768211455 になります。ざっくり、「3.4 x 10^38」もしくは「340 x 10^36」という表記になります。

なので、RING を説明する際には「340 x 10^36」を用いて英語で「340 Undecillion」のキーが使用可能、という説明をします。英語だと3桁ごとに数詞がでてくるので10^36を用いるわけですね。次に、その数字の大きさを理解するうえで比較可能な例を挙げてみます。

  • 個人が買えるモノの最高値の部類:億ション=1億円: 10^8
  • 東京オリンピックの予算=3兆円?: 3 x 10^12
  • 日本の一般会計予算=約100兆円: 10^14

上記を全部掛け算しても 3×10^34 なので、10^36 には2桁たりません。ということで、「340 x 10^36」が途方もない数であることはわかると思います。

次に気になるのは、10^36 を日本語表記するとどんな言葉になるのか?ということになるわけですが、、、答えは澗(かん)です。ちなみに澗と兆の間には京(けい)、垓(がい)、禾予(のぎへんに予:じょ)、穣(じょう)、溝(こう)があります。日本語表記は数詞が4桁ごとなので、英語と重なる部分は兆(trillion:10^12)、禾予(septillion:10^24)と澗になります。コンピュータで使われる単位で言い換えれば、兆がテラ、次にペタ、エクサ、ゼタときて、ヨタが10^24 ですから、10^36 とか 10^38 がどのくらいリアリティのない数字なのかがわかると思います。

しかし、、、既にご存知なかたも多いかとは思うのですが、、、コンピュータの世界で 128bit の数になる代表的なものは、身近なようでそうでもないような、「IPv6 の IPアドレスの数」だったりします!(TOEブログを書いている他のメンバーに言われて気が付きました)そういわれてみれば!ということではあるのですが、IPv6 の IP アドレスと RING のキーは同じ数だけ使える、と覚えていただければ、もっとリアリティの感じられる知識になるものと思います。

上記が皆様の参考になれば幸いです。

本ブログの情報につきましては、自社の検証に基づいた結果からの情報提供であり、
品質保証を目的としたものではございません。

投稿者: ポール

ブロードバンドタワーで Scality RING を担当。ストレージ業界の知り合いからはポールと呼ばれているが、本人も由来はよくわからない。得意領域はデータベースとストレージ。