web-dev-qa-db-ja.com

クラウドスパナーによるローカル開発

クラウドスパナーでローカル開発を行う方法はありますか?ドキュメントとCLIツールを確認しましたが、何も表示されていないようです。あるいは、誰かが読み取りに対して同様に動作するSQLデータベースを提案できますか(書き込みについて何をすべきかわからない)?

編集:明確にするために、私はローカルで開発を行うことができるように、CloudSpannerと同じフレーバーのSQLを話すデータベースを探しています。正確なパフォーマンス特性は、APIや一貫性の動作ほど重要ではありません。ゴキブリはこれらの要件を満たしていないと思いますか?

20
Daniel Compton

現在、CloudSpannerのローカル開発オプションはありません。現在のオプションは、GCPで単一ノードインスタンスを開始することです。

現在、Cloud Spannerのように動作する別のデータベースはありませんが、 CockroachDB は同様の原則で動作します。原子時計やGPSユニットにアクセスできないため、さまざまなトレードオフが発生します。特に、読み取りと書き込み、および「古い読み取り」の欠如について。あなたは Jepsenブログ でもっと読むことができます:

Spannerが線形化可能性を確保するためにすべての書き込みの後に待機する場合、CockroachDBは競合する読み取りでのみブロックします。結果として、その一貫性の保証はわずかに弱くなります。

6
Dan McGrath

ダンが言ったように、現在サポートされている方法は、複数のインスタンス(dev、staging、prod)を持つことです。または、複数のデータベースを1つのインスタンスに配置して、環境全体でリソースコストを共有することもできます。

ローカルモックサーバーは、開発者が必要とする生産性機能のリストの上位にあることを私たちは知っています。

6
Dominic Preuss

CockroachDB 読み取りについてはCloud Spannerと同様に動作する必要があり、Mac OS XとLinux、およびDockerを使用するWindowsでネイティブに実行できます。ローカル開発の場合、すべてが1台のマシンで実行されているため、TrueTimeがなくても違いはありません。

書き込みの場合、あなたは今運が悪いです。 Spannerには書き込み用のカスタムAPIがあり、CockroachDBは標準のINSERT/UPDATE/DELETEステートメントをサポートしています。その結果、CockroachDBは選択したORMで動作する可能性が高くなり、そのサポートを拡張するために懸命に取り組んでいます。

3
Peter Mattis