温故知新ということですか?

KVSとは言わずもがな?Key Value Storeの略称なんですが、お恥ずかしい話、
ここ最近で知った言葉でして。
とはいえ、重ねた年齢は時として役に立つこともあるわけで、概念そのものの
理解は割と速かった気がします。(と自画自賛


一昔前?はストレージ(メモリとディスク)も高くて、言語もスクリプト系が
存在しなく(それでもperlはあったか)、ソフトウェアのハードルが高かった
ですね。
ましてや本格的なDBMSなんて、それこそ有史以前?のメインフレームのごとき
存在でした。
SQLという単語は知ってるけど、実体験できませんみたいな。
Oracleにお目通りかなうのは神託を受けたごく一部の神官だけでしたからね
そういう意味ではあのネーミングは深いですな)

それがMySQL(やPostgreSql)の登場によって激変しましたね。
その前にLinuxBSDファミリーの登場もあったのですが。


なので、簡単にまとめると、こんな感じですかね?
庶民が手を出せなかったテクノロジー<=>代替テクノロ

Unixマシン(専用ハードウェア/Alpha,Sparc,etc)<=>PC(x86
UnixOS(AT&T/UCB,etc)<=>PC-UNIX
(R)DBMS(Oracle,Sybase,etc)<=>OSS RDBMS(MySQL/PostgreSql)

インターネットが普及して、21世紀に入り、そして時代はWeb全盛期に突入
同時並行で?ストレージの単価は猛烈な勢いで低下していき、同時にその
ハードウェアの性能を使い切るソフトウェアもどんどん低価格化してきました。
(究極的には全部をOSSで組めば、ソフトウェアに対価を払う必要はない)

LAMPという単語もありますね。
ただ、どうも、このMがひっかかっていたのですね。
MySQLは悪くない。SQLを解釈するすばらしく速い実行環境がOSSで提供されることに
何の異論もありません。
問題はその使われ方ですね。
本来の使い方であるRDBの部分をことごとく無視して単なるデータストアとして使う。
まぁ、それでも十分に速度は出るし、既にある枯れた*1テクノロジだから、それはそれでありなんでしょうけど。
ただ、そういうある種、世界観が違うテクノロジを無理矢理接合する関係で生じた
インピーダンスミスマッチを解消するためにO/Rマッパを開発、導入するという。
ま、それで解決してしまうというのもすばらしいことなんですけど。
でも、なんか、ちょっと違うんじゃないですか。というのは頭の隅に常にあった。

メモリ上では辞書(python用語-連想配列-ハッシュ-map)*2
なのだから、そのまま格納できればいいんじゃないかと。

って、そんなことは私が考えるまでもなく、遥か昔から世の中に存在はしてましたわな。
由緒正しきはdbmだし、その発展系としてのbdbですわな。
まぁ、結局のところは温故知新なんですわな。
敢えて言えば、昨今のKVSは分散をかなり意識しているというところでしょうか。

温故知新なら、年寄りにも活躍する場面はあるんじゃないかと(苦笑)

*1:これはもちろん(この業界特有の)褒め言葉。念のため

*2:ハッシュ、mapともに複数の意味を持っていて、言語によって指しているものが違うのでちょっと嫌なんですが