まず,数十億 IOPS を達成するには,PCI Express の bus を介していたら間に合わない.しかし,特殊なハードウェアを使っているわけではなく,プレスリリースには HP ProLiant DL 370 + ioDrive2 Duos を使っていると記述されている.
(プレスリリースから引用 http://www.fusionio.com/press-releases/fusion-io-breaks-one-billion-iops-barrier)
This demonstration used eight HP ProLiant DL370 servers, each equipped with eight ioDrive2 Duos, to break the one billion IOP barrier when transferring 64 byte data packets.
現状の x86 間に合うとすれば,「データがインメモリに書かれただけである」という場合くらいだろう.すると,1つの仮説が浮かび上がる.
Auto Commit Memory はOSのメモリ管理とフラッシュディスクと電源の合わせ技
まず,Auto Commit Memory の中で使われているであろう技術は,SSDAlloc という名前で既に論文化されている[1].使われているかもしれない,という根拠は,著者のページに Fusion IO と産学提携している 都度が書いてあるためだ(もちろん,違う技術が使われている可能性もありますが :P ).
SSDAlloc を用いることにより,OS から見てメモリとFlashディスクを透過的に扱うことができる.メモリとフラッシュディスクを透過的に扱うと,1つ大きな問題にぶち当たる.sync() ができないため,データの永続性を保証できない.そこで,ACM では電源のバッテリーを工夫することで,データの払い出しを保証していると予想される.これは,プレスリリースの以下の文言からも見て取れる.
(プレスリリースから引用 http://www.fusionio.com/press-releases/fusion-io-breaks-one-billion-iops-barrier)
Data integrity is assured by the ioMemory architecture’s ability to flush all in-flight data, even if the power is abruptly cut, without the need for super capacitors or batteries.
スリリースの以下の文言からも見て取れる.つまり,技術の中身はOSのメモリ管理とフラッシュディスクと電源の合わせ技,というわけだ.
ソフトウェアに与える影響
Auto Commit Memory により,フラッシュディスクはメモリと透過的に扱うことができる.逆に,sync は ACM にとっては最適化の邪魔になる.すると,sync を発行する DB は軒並みレガシー化する.
逆に,Volt-DB や Oracle Coherence ・Gemfire といった インメモリDB・データグリッドは,ACM を用いることにより全て永続化が保証される.完全に DB の代替になることが可能になる.
Auto Commit Memory により,フラッシュディスクはメモリと透過的に扱うことができる.逆に,sync は ACM にとっては最適化の邪魔になる.すると,sync を発行する DB は軒並みレガシー化する.
逆に,Volt-DB や Oracle Coherence ・Gemfire といった インメモリDB・データグリッドは,ACM を用いることにより全て永続化が保証される.完全に DB の代替になることが可能になる.
まとめ
Auto Commit Memory は,メモリとFlush Driveを透過的に繋ぐ技術であると予想される.あくまでも「Auto Commit Memory」であり,sync してる訳ではないことに注意が必要.すると sync は最適化の邪魔となる.逆に,sync を発行しないインメモリDB・データグリッド技術が世間を圧巻するだろう.このデバイスは,費用対効果さえ高ければ計算機のモデルを変える可能性が非常に高い.今後の動向に注目していきたい.
[1] SSDAlloc: hybrid SSD/RAM memory management made easy. 著者の HP を見るとわかるが,Fusion IO と産学提携しているようだ.