> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ライトアヘッドログ

> ライトアヘッドログを使用して、W&B Weave のトレースデータ取得の耐障害性を向上させます

ライトアヘッドログ (WAL) は、API リクエストをサーバーに送信する前にディスクへ永続化します。デフォルトでは、クライアントはリクエストをメモリにバッファリングしますが、プロセスが予期せず終了すると、バッファされたデータは失われます。Weave の WAL は、送信前にリクエストをディスクへ書き込むことで、この問題に対処します。

WAL を有効にすると、クライアントはまず各 API リクエストをローカルの JSONL ファイルに書き込み、その後その内容をサーバーにフラッシュします。プロセスがクラッシュした場合やサーバーに到達できない場合でも、データはディスク上に残り、クライアントの次回実行時に自動的に送信されます。

WAL は、プロセスが中断される可能性がある環境や、サーバーが一時的に利用できなくなる可能性がある環境で特に有用です。

* **コンテナー オーケストレーション**: バックグラウンドスレッドによるトレースのアップロードが完了する前に、Pod がエビクトされたり OOM Killer によって強制終了されたりする可能性があります。
* **分散トレーニング**: 複数のプロセスが並列でトレースを書き込む環境では、いずれかのプロセスが失敗する可能性があります。
* **不安定なネットワーク**: Weave サーバーへの接続が断続的になる環境です。
* **バッチジョブ**: 長時間実行されるジョブでは、クラッシュによるトレースデータの損失が大きな影響を及ぼします。

サーバーレス関数のような短命の環境では、すべてのデータが確実にアップロードされるよう、プロセス終了前に `weave.flush()` または `weave.finish()` を呼び出すことも検討してください。詳細は [ワーカープロセスでのトレースデータ損失](/ja/support/weave/articles/trace-data-loss-in-worker-processes) を参照してください。

<Note>
  ライトアヘッドログは、明示的に有効化する必要があります。今後のリリースではデフォルトで有効になる予定です。
</Note>

<div id="enable-the-write-ahead-log">
  ## ライトアヘッドログ (WAL) を有効にする
</div>

Weave クライアントで WAL を有効にするには、`WEAVE_ENABLE_WAL` 環境変数を `true` に設定します:

```bash theme={null}
export WEAVE_ENABLE_WAL=true
```

`weave.init()` を呼び出す前に、Python で設定することもできます:

```python theme={null}
import os
os.environ["WEAVE_ENABLE_WAL"] = "true"
```

そのほかのコード変更は不要です。WAL は既存の Weave トレースコードと透過的に連携して動作します。

<div id="how-it-works">
  ## 仕組み
</div>

WAL が有効な場合:

1. Weave は、Weave API への各 call (object の作成、call の開始、call の終了など) を、メモリ内に保持するだけでなく、ディスク上の JSONL ファイルにも追記します。
2. 各プロセスはそれぞれ専用のログファイルに書き込むため、並列プロセス同士で競合しません。
3. バックグラウンドの送信プロセスがログファイルを読み取り、その内容を Weave サーバーに送信します。
4. データの送信に成功すると、Weave がログファイルを削除します。

ログファイルは、作業ディレクトリ内の `.weave/wal/` に、entity と project ごとに整理されて保存されます。各ファイルには、生の API リクエストが JSON object として 1 行に 1 つずつ格納されます。

クライアントは起動時に、以前の run から残っている既存のログファイルがあるかどうかを確認します。見つかった場合、送信プロセスはそれらを新しいデータとあわせて送信します。つまり、クラッシュしたプロセスによって書き込まれたデータは、次回クライアントの実行時に Weave が自動的に復旧します。

<div id="environment-variables">
  ## 環境変数
</div>

以下の環境変数は WAL の動作を制御します。

| 変数                         | タイプ    | デフォルト   | 説明                                                                                        |
| -------------------------- | ------ | ------- | ----------------------------------------------------------------------------------------- |
| `WEAVE_ENABLE_WAL`         | `bool` | `false` | ライトアヘッドログ (WAL) を有効にします。`true` に設定すると、Weave は API リクエストをサーバーに送信する前に、まずローカルのディスクに書き込みます。   |
| `WEAVE_DISABLE_WAL_SENDER` | `bool` | `false` | WAL 送信を無効にします。`true` に設定すると、Weave はリクエストをローカルのディスクに書き込みますが、サーバーにはフラッシュしません。これはデバッグに役立ちます。 |

Weave で使用できるすべての環境変数の一覧については、[environment variables](/ja/weave/guides/core-types/env-vars) リファレンスページを参照してください。
