昨日の話の続き。
コンピューターは、昔は微細化技術を発展させて、トランジスタを集約させることによって、
処理スピードを上げてきた。ムーアの法則は、この処理スピード向上を、よく物語っているわけ
だが、この方法には限界がある。微細化を進めると、最終的には、電子1個でトランジスタの
動作が出来るか?ということになる。
これは、不可能である。電子などの量子は、1個とかいう状態になると、値がわからない。
観測した時点で値が確定するんじゃなかったっけ。実際、電子数個という状態になると、
ON/OFF状態に間違いが出るんだそうな(と、なにかでよんだ。雑音がはいると・・・)
もちろん、これらの問題は、量子コンピューターによって解決されるかもしれない。
しかし、それまで待つのは、現実的ではない。
そこで、処理スピード向上の切り札として、並列化、スケールアウトが考えられてきた。
今後のコンピューター処理は、そこで、並列処理、非同期処理を多用する方向に発展するものと思われる。
Ajax,JQueryしかり、Hadoopしかり。
ここで、並列処理プログラミングを考えると、
・小さい単位にプログラムを小分けして
・それを同時並行で走らせる
ということになる。
そうすると、
・小分けされた何本ものプログラム1つ1つにおいて、初期化しないといけない
→共通部分続出
・小さなトランザクションがいっぱい出てくる
→RDBだと大変
ということになる。
前者の、共通部分続出に関しては、共通部分の結果をキャッシュに入れておき、それを利用すればよい。
例えばmemcachedを使うとか。
こうなった場合、RDBでJOINして、毎回結果を求めるより、
オブジェクト単位でキャッシュして、データを取ってきたほうが、JOIN時間を短縮できる。
その際、このオブジェクト構造こそ、半構造データということになる。
このような、並列処理にプログラミングパラダイムが変わったことによる
オブジェクトキャッシュとしての半構造化データへの着目という話も
実務的には、あると思う。
コンピューターは、昔は微細化技術を発展させて、トランジスタを集約させることによって、
処理スピードを上げてきた。ムーアの法則は、この処理スピード向上を、よく物語っているわけ
だが、この方法には限界がある。微細化を進めると、最終的には、電子1個でトランジスタの
動作が出来るか?ということになる。
これは、不可能である。電子などの量子は、1個とかいう状態になると、値がわからない。
観測した時点で値が確定するんじゃなかったっけ。実際、電子数個という状態になると、
ON/OFF状態に間違いが出るんだそうな(と、なにかでよんだ。雑音がはいると・・・)
もちろん、これらの問題は、量子コンピューターによって解決されるかもしれない。
しかし、それまで待つのは、現実的ではない。
そこで、処理スピード向上の切り札として、並列化、スケールアウトが考えられてきた。
今後のコンピューター処理は、そこで、並列処理、非同期処理を多用する方向に発展するものと思われる。
Ajax,JQueryしかり、Hadoopしかり。
ここで、並列処理プログラミングを考えると、
・小さい単位にプログラムを小分けして
・それを同時並行で走らせる
ということになる。
そうすると、
・小分けされた何本ものプログラム1つ1つにおいて、初期化しないといけない
→共通部分続出
・小さなトランザクションがいっぱい出てくる
→RDBだと大変
ということになる。
前者の、共通部分続出に関しては、共通部分の結果をキャッシュに入れておき、それを利用すればよい。
例えばmemcachedを使うとか。
こうなった場合、RDBでJOINして、毎回結果を求めるより、
オブジェクト単位でキャッシュして、データを取ってきたほうが、JOIN時間を短縮できる。
その際、このオブジェクト構造こそ、半構造データということになる。
このような、並列処理にプログラミングパラダイムが変わったことによる
オブジェクトキャッシュとしての半構造化データへの着目という話も
実務的には、あると思う。