Goキャッシュライブラリの進化:RistrettoからOtter v2へ

2025-07-03

この記事では、Goキャッシュライブラリの進化について探求します。初期のGoキャッシュライブラリは、並行処理とパフォーマンスのボトルネックに悩まされていました。Ristrettoが登場し、高いスループットと良好なヒット率を提供することでリーダーとなりましたが、その設計上の欠陥は最終的にヒット率の低下と特定の負荷下での最適ではないパフォーマンスにつながりました。その後、TheineとOtter v1が登場し、Ristrettoの欠点を改善しようとしましたが、それぞれ長所と短所がありました。最終的に、著者はOtter v2を開発しました。これは、先行事例から得られた教訓を取り入れ、JavaのCaffeineライブラリからヒントを得て、高いスループット、高いヒット率、豊富な機能を実現しており、Goキャッシュライブラリの中でもトップレベルの候補となっています。