データベース サイズ計算

ストレージは進化しました。

※ストレージとは、記憶装置の事、それも外部記憶装置のこと。

副題として、
ストレージサイズ計算から始まる「取らぬ狸の皮算用」
ストレージサイズ計算から始まる「閉所恐怖症と強迫観念」

ストレージ計算–> 閉所恐怖症–> 切迫観念 –>強迫観念 –> テラフォーミング

昔趣味で遊んでいたPC-8001で、シーケンシャルファイルやランダムファイルを取り扱うプログラムを組んだ事がありますが、その時のサイズは、今から思えば小さいものでした。メインメモリーのRAMサイズは32Kバイトでプログラム+データを扱う。とか外部記憶の初代PC-8031のFDDは片面単蜜128Kバイトのドライブを2機搭載していて、合計256Kバイトだったとか、ものすごく小さい容量でした。USBの16Gが普通に買える昨今とは大違いでした。

当時、住所録を作るときとか、どれくらいのデータ量なんだろうと、見積をするのですが、

今なら、ネットで調べるとか出来ますので、ちょっと検索すると、長い住所ってどれくらい?とか、海外も含めるとどうなの?とかで調べることが出来たり、市販の住所録ソフトやネット通販の送付先記入欄等を参考に検討することができますが、当時は身近な住所を調べて、(趣味なので)適当に作りました。

適当にサイズを見積もってみます。一件261バイト位。(下記内訳参照)
氏名[40バイト] 例[三大山路線 忠直の助]
生年月日[8バイト] 例[2016/09/20]
住所[100バイト]
電話番号[13バイト] 例[81,090-1234-5678]
肩書き[100バイト] 例[○☒商事株式会社 情報管理室 入力担当]

計算がややこしいので1件500バイトで見積もる場合、2件で1キロバイトになります。
1メガバイトだと千倍なので、2000件データが入る事になります。
1ギガバイトだと、さらに千倍なので2百万件。
1テラバイトだと、さらに千倍なので20億件。
10テラバイトだと、200億件(になるかな?)。
地球上の人口が63億とか70億とかなので、重複登録しなければ、2016/9/6時点では10テラバイトでも十分なサイズに思えます。

と言う事で仮に、全世界の人類にIDを割り振るとしたら、いくつあればいいのか?
今後30年を考えた場合、70億+(今後30年の出生者数)の数が必要になります。
大雑把に100億ぐらいになるかもとの予測したとして。

電話番号みたいに誰かの番号を、次の誰かに渡す方式を、個人IDのシステムに取り入れるんだろうか?。
あるIDについて、AさんのIDだったものが、西暦何年以降については、BさんのIDとして使われていました。
と言うのが良いのかどうか?ですが。家系図などに個人のIDを付記している場合、関連ソフトウェアが全部そのIDの有効期間をチェックしながら動作しないといけなくなりそうだから、好ましくないと思えなくもない。
100億の倍の、200億を2進数表現するとどうなるか
200億は、2×10の10乗だから、2*10^10になる。

ビット数で言うと、必要なビット数は
10進数のxを2進数表現するのに必要なビット数は
log(x)÷log(2) で求められるので、

log(200億)÷log(2)でビット数を算出できるので
log(2*10^10)/log(2)=34.219ビット
つまり、35ビットとなる。8ビットで割り算すると、5バイトあれば良いことになる。

と言うことで200億個のIDを表現するのに5バイトほど必要だということが分かりました。

先ほど住所録のデータサイズを、今回の見積りでは一件あたり261バイトだけど、大雑把に500バイトと決めたので、その内の5バイトをIDに確保するのは加能でしょう。

10テラバイトで、人類の住所録が出来そうな気がしてきた。

最近2Tとか3TのHDDは普通に出回っているので、10Tは普通に買えなくもないし、デスクトップパソコンに積めそうな気がする。

<閑話休題>

将来を見越した、DBのサイズ計算等するときに、人口を調べたりその増加率を調べたりすると、人によっては、閉所恐怖症的な切迫観念に苛まれる人も出てくるかも知れませんけど、まだまだ、大丈夫だと思います。人口が密集し狭いのは都会だけです。テクノロジーの進歩と、ロジスティクスの進歩と、アグリカルチャーの進歩でまだまだいけると思います。

テクノロジー的には、エネルギー問題は、ソーラーや風力、海中水力、メタンハイドレート等で道が開けた様ですし、環境問題についても技術的には解決策が無くもない様子、食料問題に関しても、新技術が出てきている様子がありますし。

問題はコストと人材ではないかと思います。

コスト面では、「採算割れ」するのでやらない、やれない、できない。

人材面では、難しい課題に立ち向かえる、若い頭脳を排出する仕組みが、未整備だったり、破壊されると、どうしようもなくなる。

「カンニング」は「選抜試験」を無意味にし、選抜試験が無意味になれば、必要な人材の確保が出来なくなり、それは、組織の構築が出来無く成る事を意味するので、形骸化した組織に問題解決能力は無くなる。

IT的に成績を改竄して、勝ち残った精鋭部隊に、これまたIT的に品質改竄をされた、装備を与えられた場合。そこに配属される事は、将来にどういう約束が有るのか?とか。

テクノロジーの進歩で、肉体労働の軽減や、仕事量的効率アップが達成され、さらにITは頭脳労働からの一部開放も達成しつつ有るなか、本当に求められるは、人間性依存分野としての発想力・イマジネーション、総合力を発揮するための基礎からの広い正しい知識に基づいた、「頭脳労働」ではないかと思います。

※人間の肉体的構造や代謝が、ある程度の肉体労働に適するような作りに成っている場合、更に高度な頭脳労働への誘いが幸せなのかどうか分からない。

<閑話休題ここまで>

さて、住所録のデータベースサイズ計算をした所ですが。

データサイズ的に、10T程度なら個人で、HDDを買うことは可能ですが、そのデータベースへのアクセス頻度を考えると、システム要件は大きく変わります。

地球上の全人口の住所録と比べると、飛行機の数とか、自動車の数とか、船の数とかは、明らかに少ないはずです。だけど全世界の携帯電話の数はどうなのか分かりません。

ネットワークに繋がっている自動車の数は、まだ少ないのですが、搭乗者の携帯電話は明らかにネットワークに繋がっています。そして、GPSを受信しているカーナビのすぐそばに座っています。田舎では立体交差も少なく、濃霧の農道等での衝突回避に役立てることが出きるかもしれません。鹿、猪、犬、猫、亀、その他の動物は、回避で来ませんけど、モバイルデバイスを持つ自転車、バイク、歩行者は危険回避が可能かもしれません。

可能かもしれないとしか、かけないのは、レスポンスが悪いと危険通知が遅れてしまうとか、システムダウンで全く危険通知ができなくなる。等が発生するリスクが有るので、あくまで安全確保の補佐情報でしかなくて。「危険通知が無いから、安全だと言う意味では無い」と言う事からです。

信頼性を高めるためには、システムの信頼性、センサーの信頼性、総合した信頼性の確保が必須になります。

システムの信頼性を上げていくと、プライバシーの問題にぶつかります。

プライバシー問題で、誰かと誰かが争う事に成ったときに、実はセンサーやシステムの誤動作でした。とか、混入された誤情報による情報操作でした。とかの信頼性が根底から崩れる様な事を言い出されたらひっちゃかめっちゃかですし。

あんなことが出来そうだ、こんなことが出来そうだとは、言いつつも、なかなか困難です。

物と物とのインターネット「IoT」について、信頼性確保が肝になると思いますが、まずは、信頼性確保が達成されるまで、生き延びないといけませんから、信頼性を要求しない分野を見つけることこそ、IoTで生き残る条件だと思います。

蛇足ですが、インターネットにおいて、その早明期からあるアプリケーションとしては、メール配送システムは古くから有るアプリケーションであり、メッセージ交換サービスのプロトタイプ的なものですから、これを理解せずに、さらにその先のIoTのデザインをするとか開発をすると言うのは、若干変に聞こえたりすると、思えるので、デリケートな分野じゃないIoTを模索しておけば、既存メールシステムへの理解が薄くても自分の仕事には影響が無いと言えるので、そういう分野を探せれば良いなぁと思います。

または、「既存インターネットとの相互接続が無い、閉域ネットワーク内部のシステム」であれば、外部とのやり取りが発生し得ないので、外部の攻撃者にさらされる事が無く、安全であると言えるのでしょう。問題は、いわゆるTCP/IP関連製品は、デファクトスタンダードで、安価で出回っているので、知らない所で、既存インターネットとの相互接続が発生するリスクが有るので、そこを如何に管理するかが鍵だと思います。

「既存インターネットとの相互接続が無いネットワークを、閉域ネット等と呼びます」そこで、閉域ネットとして外部との相互接続が、全くない場合、その閉域ネットの利用者や関係者は、少しのIT知識が有れば仕事をすることが出来ます。でも、外部接続拠点が有る場合、既存インターネットとの相互接続拠点について安全確保を徹底したい場合には、相当な知識や技量が要求されます。