Goの公式クラウドスパナクライアントライブラリNewClient()
は、Context
を受け入れます。通常、Context
は(潜在的に長時間実行される)要求チェーンの一部として渡されます。これは、NewClient()
が、Cloud Spannerにアクセスする必要のあるサービスによって処理される一意の要求ごとに呼び出されることを意味していますか?リクエストごとに新しいCloud Spanner Clientインスタンスを作成する必要がありますか?
従来のリレーショナルデータベースを使用していた場合、リソース使用量(ネットワーク接続など)を減らすために、プロセスによって何度も使用されるクライアントの共有プールを作成していました。リクエストハンドラが始動するたびにユニークなデータベースクライアントを作成するというアイデアは、私には少し不本意です。クライアントライブラリの意図された使用法を誤解しているのではないかと思います。
一方、Cloud Spanner は一般的には魔法のようになので、これは実際には奨励された効率的なパターンであることを私にはあまり驚かないでしょう。それでも、確かに知っているのはうれしいですし、ドキュメントは実際にそれについて議論しません。これはNEWCLIENT()がクラウド スパナにアクセスする必要のあるサービスが扱う各 ユニークな要求のために呼び出されることを意図していることを意味するものではない