既知の制限事項
以下は、Accelerateを使用する際の既知の制限事項の説明です。追加の制限事項に遭遇した場合は、Discordを通じて共有してください。
Rawクエリをキャッシュできません
現時点では、Rawクエリのレスポンスをキャッシュすることはできません。
fluent APIとの互換性はありません
(Accelerateで使用されている)クライアント拡張機能は、現在fluent API型を正しく転送しません。クライアント拡張機能への修正を近日中に予定しています。
非常に負荷の高いクエリまたは長時間実行されるクエリとの互換性はありません
Accelerateは、高パフォーマンス、低レイテンシのクエリで動作するように設計されています。パフォーマンスの問題やリソースの競合を引き起こす可能性のある、非常に負荷の高いクエリや長時間実行されるクエリでの使用は意図されていません。制限は設定可能ですが、推奨ガイドライン内に収まるようにクエリを最適化することを推奨します。
最適化または削減できないクエリについては、次の2つの解決策のいずれかを推奨します。
-
リードレプリカ拡張機能を使用する: Prisma ORMのリードレプリカ拡張機能を使用すると、
primary
とreplica
の2つの異なる接続を設定できます。Accelerate接続をprimary
として設定し、直接接続をreplica
として設定できます。リソースを大量に消費するクエリや長時間実行されるクエリはreplica
にルーティングでき、primary
(Accelerate接続)は通常のクエリを処理します。ご注意ください。このソリューションでは、直接接続の設定と、完全に生成されたPrisma Client(--no-engine
なし)の両方が必要です。 -
分析クエリを分離する: 推奨されるソリューションは、分析クエリを別のアプリケーションに分離することです。この別のアプリケーションは、直接接続を使用して、Accelerateを利用したアプリケーションのパフォーマンスやコストに影響を与えることなく、負荷の高いクエリを実行できます。
非常に負荷の高いクエリまたは長時間実行されるクエリとPrisma Accelerateを実行する必要があるユースケースがある場合は、お問い合わせください。
MongoDB接続文字列の直接IPv4アドレスとの互換性はありません
Accelerateは、MongoDB接続文字列の直接IPv4アドレスをサポートしていません。IPv4アドレスが提供されると、AccelerateはNATゲートウェイ経由でルーティングするためにIPv6形式に変換します。この変換により、ポート値の形式が原因で接続文字列が無効と見なされる場合があります。
回避策: この問題を解決するには、IPv4アドレスを指すDNSレコードを作成し、直接IPの代わりに接続文字列でそのDNSレコードを使用します。
例
- IPv4接続文字列 (非対応):
mongodb://user:password@192.168.1.100:27017/db_name
- DNSレコード接続文字列 (対応):
mongodb://user:password@my-database.example.com:27017/db_name
AccelerateのIPv6ファースト設計の詳細については、ブログ記事を参照してください。