Skip to main content
QUICK REVIEW

[論文レビュー] Understanding Application-Level Caching in Web Applications: A Comprehensive Introduction and Survey of State-of-the-Art Approaches

Jhonny Mertz, Ingrid Nunes|arXiv (Cornell University)|Nov 22, 2017
Caching and Content Delivery参考文献 80被引用数 8
ひとこと要約

本論文は、Webアプリケーションにおけるアプリケーションレベルのキャッシングの包括的サーベイを提示しており、処理済みコンテンツをメモリに格納することでパフォーマンスとスケーラビリティを向上させる技術に焦点を当てている。静的および適応的キャッシング戦略の両方をカバーし、開発者や研究者が最小限の手動介入で効果的で自己最適化可能なキャッシングソリューションを設計するためのガイダンスを提供する。

ABSTRACT

A new form of caching, namely application-level caching, has been recently employed in web applications to improve their performance and increase scalability. It consists of the insertion of caching logic into the application base code to temporarily store processed content in memory and then decrease the response time of web requests by reusing this content. However, caching at this level demands knowledge of the domain and application specificities to achieve caching benefits, given that this information supports decisions such as what and when to cache content. Developers thus must manually manage the cache, possibly with the help of existing libraries and frameworks. Given the increasing popularity of application-level caching, we thus provide a survey of approaches proposed in this context. We provide a comprehensive introduction to web caching and application-level caching, and present state-of-the-art work on designing, implementing, and managing application-level caching. Our focus is not only on static solutions but also approaches that adaptively adjust caching solutions to avoid the gradual performance decay that caching can suffer over time. This survey can be used as a start point for researchers and developers, who aim to improve application-level caching or need guidance in designing application-level caching solutions, possibly with humans out-of-the-loop.

研究の動機と目的

  • Webキャッシングの基礎的理解を提供し、アプリケーションレベルのキャッシングがWebアプリケーションのパフォーマンスを向上させる役割を明らかにすること。
  • アプリケーション固有の論理やドメイン依存性による手動でのアプリケーションレベルキャッシングの管理における課題を特定すること。
  • 時間経過に伴うパフォーマンスの低下を防ぐために動的に調整できる、静的および適応的キャッシングアプローチをサーベイすること。
  • アプリケーションレベルのキャッシングソリューションを実装または改善したい研究者や開発者にとってのリファレンスとして機能すること。

提案手法

  • 設計および実行時動作に基づいて、既存のアプリケーションレベルのキャッシングアプローチを分類・分析すること。
  • コンテンツの格納および取得に事前に定義されたルールに依存する静的キャッシング技術を検討すること。
  • ワークロードおよびシステム状態を監視することで、キャッシングポリシーを動的に調整する適応的キャッシングメカニズムを調査すること。
  • 開発者がアプリケーションコードにキャッシング論理を統合しやすくするためのライブラリやフレームワークの使用を評価すること。
  • 知的なコンテンツ選択を通じてキャッシュ無効化のオーバーヘッドを低減し、キャッシュヒットレートを向上させる技術を強調すること。
  • 効果的なキャッシング戦略を設計するにあたり、アプリケーション固有の知識の重要性を強調すること。

実験結果

リサーチクエスチョン

  • RQ1実装およびパフォーマンスへの影響という観点から、従来のWebキャッシングとアプリケーションレベルのキャッシングの主な違いは何か?
  • RQ2Webアプリケーションにおける静的キャッシングアプローチは、コンテンツ選択および無効化をどのように処理するか、またそれらの制限は何か?
  • RQ3時間経過に伴うアプリケーションレベルキャッシングのパフォーマンスの低下を緩和するための適応的戦略は何か?
  • RQ4開発者はどのようにして最小限の手動オーバーヘッドでアプリケーションコードにキャッシング論理を効果的に統合できるか?
  • RQ5現代のフレームワークやライブラリは、スケーラブルでメンテナンス性の高いアプリケーションレベルのキャッシングをどのように可能にしているか?

主な発見

  • アプリケーションレベルのキャッシングは、メモリに格納された事前処理済みコンテンツを再利用することで応答時間を顕著に改善する。
  • 手動でのキャッシュ管理にはアプリケーション固有の深い知識が必要であり、開発の複雑さと保守コストが増加する。
  • 適応的キャッシングアプローチは、アクセスパターンやデータの変動性の変化に応じて動的に調整することで、パフォーマンスの低下を是正するのを助ける。
  • キャッシュに含める内容やタイミングを細かく制御できるように、キャッシュ論理をアプリケーションコードに統合することが可能になる。
  • 既存のフレームワークやライブラリは、キャッシュの実装を容易にするが、キャッシュの一貫性を損なわないように注意深い設計が依然として必要である。
  • 本サーベイでは、スケーラビリティと保守性を向上させるために、自己調整型および自動化されたキャッシング戦略への傾向が顕著に増加していると同定している。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。