ほとんどのIT業界の流行語はすぐに陳腐化します。それには良い理由があり、かつて競争優位性を持っていた技術も、十年以内により優れた代替技術に置き換えられるからです。したがって、ソフトウェアベンダーが期限切れの流行語を押し続ける (1) のならば、その最も単純な説明は、彼らの研究開発チームが既に世界の変化に気づいていないということです。

逸話的な話ですが、複数のベンチャーキャピタリストから、設立から数年以上経過したソフトウェア企業への投資に疲れ果てたという話を聞きました。なぜなら、多くの企業は創業時に自らを定義した技術環境から自社の技術を切り離すことができないからです。

(1) 技術市場そのものが技術の「有効期限」を決定します。ある技術を評価する際、その技術が最先端の状態にどの程度近い状態であり続けるかを推測するにとどまります.

インメモリーデータベースはかつてIT業界の流行語でしたが、その後の進化に追いつけず、今日では「インメモリ」や「インメモリコンピューティング」を提供していると謳うソフトウェア企業は、時代遅れの技術を市場に持ち込んでいることになります (2)。誤解しないでください:「メモリ」の活用は — 後述しますが — これまで以上に重要ですが、コンピューティングの環境は以前よりもはるかに複雑になっています。

(2) 理論上は、マーケティングチームだけが遅れをとっており、技術チームはすでに飛躍している可能性もあります。しかし、私が出会ったソフトウェア企業でこの問題に悩んでいた例はありません。マーケティングが常に技術よりも先行していると安心して推測できます.

90年代後半から2000年代初頭にかけて、RAMと呼ばれる特定の種類の揮発性メモリが十分に手ごろな価格になり、ますます興味深く価値のあるデータセットが「インメモリ」に収まるようになりました。当時、RAMが非常に高価かつ制限が多いという考えのもとで、可能な限りRAMへの負荷を抑えるために複雑な工夫が凝らされる手法が有効とされ、多くのソフトウェアベンダーは、「インメモリ」コンピューティングという新たな自由なアプローチで問題を見直すことで、従来、回転ディスクにのみ依存していた製品に比べて飛躍的な高速化を達成しました.

2018年に話を進めると、インメモリーデータベースはもはや時代遅れの視点となっており、すでに何年もその状態が続いています。データストレージには多くの種類があります:

  • L1 CPUキャッシュ
  • L2/L3 CPUキャッシュ
  • ローカルRAM
  • ローカルGPU RAM
  • ローカルSSD
  • ローカルHDD
  • リモートRAM
  • リモートSSD
  • リモートHDD
  • テープまたは光学ストレージ

Intel Optaneのような、新しいストレージ技術については、独自のデバイスクラスに近いものも含め、省略しています.

「インメモリ」コンピューティングを推進するベンダーは、自社のソフトウェア技術が主に二種類のメモリ、_ローカルRAM_と_リモートRAM_の活用に重点を置いていることをほのめかしています。確かにローカルとリモートの両方のRAMを最大限に活用することは良いことですが、それは同時に他の代替手段の活用がおろそかになっているエンジニアリング手法をも示唆しています.

例えば、過去20年で、ハイエンドCPUにおけるCPUキャッシュは512KBから60MB以上に拡大しました。これほどのCPUキャッシュがあれば、「キャッシュ内コンピューティング」が可能となり、単なる「インメモリコンピューティング」に比べて大幅な高速化が実現できます。しかしながら、キャッシュを活用するためには、多くのデータ構造の縮小やさらに洗練された戦略が求められ、これはRAMの観点から見れば必要以上、あるいは望ましいとさえ言えないほどのものです.

しかし、CPUキャッシュがローカルRAMよりも高速であるという点だけを強調しても本質を見失います。今日の優れたソフトウェアエンジニアリングは、これらすべてのデータストレージクラスの能力を最大限に活かすことを伴います。クラウドコンピューティングのおかげで、必要に応じたコンピューティングリソースのアドホックな組み合わせがこれまでになく容易になりました.

したがって、Lokadは「インメモリ」ソフトウェア技術を提供していません。なぜなら、そうすることで現在利用可能な他の選択肢を活用する妨げとなるからです。例えば、2TBまでのRAMを搭載したマシンをレンタルすることは可能ですが、それはクライアントにとって不必要なほど高価になります。多くのアルゴリズムは完全にストリーミング可能であるため、テラバイト単位のデータ処理にテラバイト単位のRAMは必ずしも必要なく、1GBのRAMが1GBのHDDに比べて約1000倍高価であることを考えると、これは実装の詳細ではありません.

私たちの目標は、ソフトウェアエンジニアリングに関する固定観念に固執することではなく、限られた予算で可能な限りの成果を出すというより広いエンジニアリングの視点を貫くことにあります。言い換えれば、代替手段に対してインメモリ処理が有利な場合にはそれを採用するものの、それ以上にこだわることはありません.

また、コンピューティングリソースはオンデマンドで完全に調整可能ではない(例:CPUキャッシュのないマシンを現実的にレンタルすることはできません)ため、Lokadでは、当初明確に要求されていなかったとしても、支払われたすべてのリソースを最大限に活用することに努めています.