データ構造

class OpenDir

オープンされたディレクトリエントリ。 Dir と、それに加えて 先頭の Doc の全情報を含みます。

class CacheVC

キャッシュへ書込む入力を受け付ける仮想接続クラス。

int CacheVC::openReadStartHead(int event, Event *e)

キャッシュオブジェクトの最初の読み込みを実行する。

int CacheVC::openReadStartEarliest(int event, Event *e)

オブジェクトの 代替 の最初の読み込みを実行する。

class HttpTunnel

データ転送ドライバ。これは プロデューサ のセットを含みます。各プロデューサは一つ以上の コンシューマ に接続されます。トンネルは、プロデューサからコンシューマへデータを移動させる為に、イベントとバッファを扱います。データは、データが修正される時のみ、またはソース ( Traffic Server の外からデータを取得するもの)とシンク ( Traffic Server の外へデータを移動するもの)のためにコピーが実行されるため、可能な限り参照カウントバッファに維持されます。

class CacheControlResult

cache.config のある行からデータを保持します。

class CacheHTTPInfoVector

P_CacheHttp.h で定義されます。これは HTTPInfo オブジェクトの配列であり、オブジェクトの代替に関する情報のリポジトリとして提供します。それはキャッシュ内のオブジェクトのメタデータ部分に配置されます。

class HTTPInfo

HTTP.h で定義されます。

このクラスは HTTPCacheAlt のラッパーです。ラップされたクラス内のデータへのアクセスのための外部 API を提供します。ラップされたクラスのインスタンスへのポインター(NULL の可能性がある)のみ保持します。

class CacheHTTPInfo

HTTPInfo の 型定義。

class HTTPCacheAlt

HTTP.h で定義されます。

キャッシュオブジェクトの単一の 代替 のメタデータです。下記の他データを含みます。

  • 代替の最古の Doc のキー。
  • リクエストヘッダとレスポンスヘッダ。
  • フラグメントオフセットテーブル。[]
  • オリジンサーバー からのリクエストとレスポンスのタイムスタンプ。
class EvacuationBlock

退避のためのレコード。

class Vol

キャッシュボリューム 内において ストレージユニット を表します。

off_t data_blocks

The number of blocks of storage in the stripe.

off_t segments

ボリュームのセグメント数。セグメント内のエントリ数で分割されたエントリのおおよその合計数。全エントリをカバーするように丸め込まれます。

off_t buckets

ボリュームのバケット数。 DIR_DEPTH で分割されるセグメント内のおおよそのエントリ数。現在は約 16,384 (2^16 / 4) で定義されます。バケットはインデックスハッシュの対象として使用されます。

DLL<EvacuationBlock> evacuate

EvacuationBlock バケットの配列。これは、退避スパンごとに一つのバケットを持つようなサイズになります。

off_t len

バイト単位のストライプ長。

int Vol::evac_range(off_t low, off_t high, int evac_phase)

low から high の範囲に任意の EvacuationBlock がある場合、退避を開始します。退避が開始されなかった場合は 0 を、それ以外は非 0 を返します。

class CacheVol

volume.config で記述される キャッシュボリューム

class Doc

P_CacheVol.h で定義されます。

uint32_t magic

正当性チェック値。正当なドキュメントには DOC_MAGIC が設定されます。

uint32_t len

ヘッダ長、フラグメントテーブル、この構造体を含む、このセグメントの長さ。

uint64_t total_len

メタデータを含まない、ヘッダを含むドキュメント全体の長さ。

INK_MD5 first_key

ドキュメントの最初のインデックスキー。(インデックスキーはボリュームインデックスにおいてこのオブジェクトを見つけるのに使用されます。)

INK_MD5 key

このフラグメントのインデックスキー。前後のフラグメントのキーがこのキーから計算出来るように、フラグメントキーは計算的に繋がっています。

uint32_t hlen

ドキュメントヘッダ(メタデータ)長。 HTTP ヘッダの長さではありません。

uint8_t ftype

フラグメントタイプ。現在、 CACHE_FRAG_TYPE_HTTP のみ使用されます。キャッシュ拡張がいつか実装されれば、他のタイプが使用されるかもしれません。

uint24_t flen

もしあるなら、フラグメントテーブル長。オブジェクトの、先頭の Doc のみがフラグメントテーブルを持つべきです。

フラグメントテーブルは、 HTTP コンテンツ (メタデータや HTTP ヘッダは含みません)に関係したオフセットのリストです。各オフセットは、フラグメントの最初のバイトのバイトオフセットです。テーブルの最初の要素は、二番目のフラグメントです。(配列のインデックス 1 となるでしょう) 最初のフラグメントのオフセットはもちろん常にゼロであり、保存されません。この目的は、レンジリクエストの高速な検索を可能にすることです。先頭の Doc が指定されると、範囲の最初のバイトを含むフラグメントはそれ以上のディスクアクセス無しに、直接計算して読み込むことができます。

Removed as of version 3.3.0. [1]

uint32_t sync_serial

不明。

uint32_t write_serial

不明。

uint32_t pinned

ピン留めされたオブジェクトのフラグとタイマー。

uint32_t checksum

不明。

class VolHeaderFooter

脚注

[1]バージョン 3.2.0 で変更されました。以前は先頭の Doc 内で持ちましたが、同一フラグメントテーブルを共有するために異なる代替を引き起こしました。