Deterministic Garbage Collector

2005年第4四半期にリリースが予定されているバージョンでは、ガベージコレクションによるアプリケーションの一時的な停止を、決められた時間内に収めることを保証する「Deterministic Garbage Collector」(決定的ガベージコレクタ)を搭載する。実行中のアプリケーションの動作速度を犠牲にしてでも、ガベージコレクションの時間を短縮する手法を採る。この機能は、テレコム業界などノンストップな運用が求められる業界のニーズに対応したもの。

商用レベルのPC向けのJavaVMの実装のメジャーどころは,Sun, IBM, BEAの3社だろう.これまで,PC・サーバ用のJavaVMでは,Deterministic Garbage Collectorを採用した実装はなかったと記憶しているが,今回,BEAが実装してきたようだ.この手のリアルタイム性に関する要求は,組込み系では一般的だったが,PCでは,それほど一般的ではなかったが,よりシビアなテレコム系に適用するために実装した,ということらしい.

Garbage Collectionは,本質的にリアルタイム性を導入しにくいと思うので,どういうアルゴリズムがあるんだろう,と興味を持ったので,少し調べてみることにした.とりあえず,acm.orgのDigital Libraryで検索してみると,Analysis of an algorithm for real time garbage collectionという論文が一番古そうだ.1976だから,もう30年近く前からアイデアのようだ.週末にでも読んでみよう.