Googleのデータストアでトランザクションがどのように実装されているかは不明です。Google Cloud Datastore Transactions実装
私が到達しようとしているリソースをどのように決定しますか?なぜなら、我々はすべての要求に対して使用しなければならないグローバルトランザクションオブジェクトを受け取っているからです。私は疑問を持っています。これはデータベースレベルではなく、クライアントライブラリレベルで行われます。
このトランザクションは読み取りと書き込みの両方で機能しますか?つまり、私はトランザクションを使用してドキュメントのロックメカニズムを実装することができます。つまり、2人のユーザーが同時にアクセスすることはできません(マルチスレッド/マルチプロセスのアプリケーションを扱う場合はmutexなど)。
最後の質問です。データストアに実装されたトランスナショナル・メカニズムは、どのように知っていますか?私は、高水準のアーキテクチャー、あるいはおそらくより良い理解を得るために、説明の中で短いかもしれないダイアグラムを処理するかもしれません。
これは関連するものではありませんが、Google Cloud Functionsとnode.js環境をプロジェクトに使用しています。私は、これが使用法に厳しい制限を加えるべきではないと信じています。
リソースがロックされているかどうかを確認する必要があるとします。したがって、クライアントAとクライアントBは、このリソースがすでにロックされているかどうかを確認するためにトランザクション内のデータストアにリクエストを送信します。この場合、この要求のいずれかが失敗します(両方の読み込み時)。両方ともトランザクション内でデータストアに書き込もうとすると、そのうちの1つはもちろんそれを実行できません。しかし、もし彼らがコードの1行だけで欠場すれば、両方の書き込みが成功し、クライアントAがクライアントBのレコードをオーバーライドするチャンスがあります。 – QuestionAndAnswer
私はちょうど確認するために、他のユーザーがその文書を編集できるかどうか(読み取りはOKです)。 – QuestionAndAnswer