Google の Spanner DBに関する論文を読んでいます。これは、 Rich Hickey の Datomicと同様の問題に対処しているようです。
Google の Spanner DB はEpochal Timeの概念を実装していますか?
Google の Spanner DBに関する論文を読んでいます。これは、 Rich Hickey の Datomicと同様の問題に対処しているようです。
Google の Spanner DB はEpochal Timeの概念を実装していますか?
要約: そう思いますが、「エポカル タイム」の概念が実際にどのようなものかはよくわかりません。
質問で参照されているビデオ全体を見ました (幸いなことに、これは興味深いビデオです)。ヒッキーが未来を純粋な過去の機能 (少なくとも、データベースに関して)[1]、またはより正確には、一連のトランザクション機能の構成として。
行間を読むと、核となる考え方は、時間を量子に分割することができ、それぞれが単一のトランザクション関数の完全な実行を表すということだと思います。(Hickey は、これらのクォンタムが「エポック」であると言うだろうと思いますが、おそらく私は間違っています。Datomic 用語集の「エポック」の定義は、ある程度関連しているだけです。) 各トランザクション関数には、それ自体の実行のアサーションが効果的に含まれているため、 、トランザクション識別子は、タイムクォンタムのプロキシと見なすことができます。実際、単一のトランザクションで使用されるトランザクション ID は、あるマシンのクロックに偶然関連する、単調に増加する一連の数字にならざるを得ない場合があります (ただし、個々のクロックは時間ごとに逆方向にスキップできるため、厳密には等しくはありません)。
したがって、私はこの考えを 2 つに解釈しています。
すべてのミューテーションに「タイムスタンプ」を付けます。と
突然変異が過去のデータを置き換えるのではなく、追加するように手配します。
もしそうなら、Bigtable (いくつかの実装上の制限はありますが) と Spanner の両方が Hickey のモデルに準拠しています。
Bigtable[2] はキーとタイムスタンプと値のマッピングを提供しますが、タイムスタンプの単調性を保証するために各アプリケーションに任せています。単調なタイムスタンプを実装し、単一のライターを使用するアプリケーションの場合、Datomic と非常によく似ています。また、不変のデータ構造に基づいており、タイムスタンプベースのクエリを許可します (「過去は現在の部分範囲です」)。ただし、Spanner の論文 [3] が示すように、Bigtable は同期更新を提供しないため、レプリカから読み取られた 2 つの異なるキーが同じ過去のサブレンジを持つという保証はありません。これにより、Google の内部チームは Bigtable に代わる高価で低速な代替手段を使用するようになったようです。Spanner は、トランザクションのコストが高くなるという犠牲を払っても、比較的効率的な方法で同期更新も提供するように設計されました。Spanner の論文を正しく理解していれば、
Spanner は「SQL に似た」API を提供しますが、Bigtable などの内部データストアは key-timestamp-value です。Bigtable とは異なり、タイムスタンプはトランザクションによって提供され、慎重に監視されたリアルタイムからのずれの範囲内に保たれます (Google は、この保証を維持するために、「それほど高価ではない」独自の原子時計を購入したようです)。Datomic は、設計上、単一のトランザクション システムですが、高可用性のためにスタンバイ トランザクションを構成できます。(ドキュメントを正しく読んでいれば、1 つだけです。) これにより、時刻の同期がはるかに簡単になり、リアルタイムをタイムスタンプとして使用することもできます。
3 つのデータベース システムはすべて、概念的には時系列のミューテーションを提供します。それらは、別々のミューテーションでのタイムスタンプの一貫性と単調性に関する保証、およびグローバルな書き込みと読み取りの一貫性を提供する実際の能力において異なりますが、プレゼンテーションの最初の数分間で Hickey による同じ基本的な機能をすべて満たしています。 : ミューテーション (「更新」) はデータモデルの一部であり、簡単に説明でき、基本的に非破壊的です。
[1]: ビデオの約 19 分で、ヒッキーは「エポカル タイム モデル」は彼が思いついたフレーズにすぎず、正式な定義はないと述べています。
[2]: プレゼンテーションの約 42 分後、Hickey は Bigtable アーキテクチャについて説明しています。Spanner は明らかに後継テクノロジであり、基盤となるデータモデルを拡張しますが、置き換えるものではありません。