Skip to content

アートワーク取得の信頼性向上: タイムアウト値の調整検討 #60

@9c5s

Description

@9c5s

背景

beat-link (Pro DJ Link) の調査を踏まえ、TCNetのアートワーク取得における信頼性向上の検討事項をまとめる。

TCNetはUDP上のFileパケットでアートワークを転送するため、TCPベースのPro DJ Linkと比べてパケットロスや応答遅延の影響を受けやすい。

現状の実装

  • requestTimeout: 2000ms (リクエスト全体のタイムアウト)
  • fileCollectionTimeout: 200ms (totalPackets=0のFileパケット蓄積タイムアウト)
  • tcnet-viewer側で最大3回リトライ

観測された問題パターン

Pattern 1: 部分データ (解決済み)

BridgeがtotalPackets=0のFileパケットで送信 → 最初のパケットだけで即resolve → 不完全な画像
fileCollectionTimeoutベースの蓄積方式で対応済み

Pattern 2: 全リトライtimeout

Bridgeが応答しない or 応答が遅い → 3回×2秒=6秒で全滅
→ 未解決。requestTimeoutの延長が有効かもしれないが、UXとのバランスが必要

検討事項

  • requestTimeoutを2秒→5秒程度に延長する検討 (beat-linkは10秒)
  • fileCollectionTimeoutの200msが最適か実機データで検証
  • Bridgeの応答パターンの調査 (どのタイミングでアートワークが準備完了するか)
  • メタデータ取得成功後に一定時間待機してからアートワークをリクエストする戦略の検討

参考

  • beat-link ArtFinder.java - 10秒タイムアウト、失敗時はnull返却 (リトライなし)、2段キャッシュ
  • beat-linkはTCP (dbserver) 経由のためパケットロスの問題がない

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestreliabilityReliability and connection stability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions