Skip to content
Jingguo Yao edited this page Jun 26, 2016 · 95 revisions

Issue

TODO

  • opentracing, Dapper
  • The the wiki page: Life of a transaction
  • HLC implementation code

Go:

  • go gRpc API
  • go net API

Cockroach:

  • trace a single a single get and insert KV SQL.  - How to lookup a row from the KV cluster  - Who is the transaction coordinator?  - Who is the split coordinator?

Memo

  • Review Raft paper and watch Raft video. Raft replicates ops one by one. Or tow ops can proceed in parallel?
  • The following two paragraphs from design doc seems to conflict with each other:

Paragraph 1:

If a new range replica leader is elected, it sets the low water mark for the cache to the current wall time + ε (ε = 99th percentile clock skew).

Paragraph 2:

This is accomplished by setting the low water mark of the timestamp cache to the expiration of the previous lease plus the maximum clock offset.

  • What is the difference between clock skew and clock offset?

  • Internals of MongoDB, VoltDB, CouchBase and Lucene index as illustrated in the diagram of Read vs. Write Optimization Spectrum section.

  • util/http.go mentions ProtoEncoding includes application/x-protobuf and application/x-google-protobuf.. But protorpc now uses application/octet-stream and application/x-google-protobuf.

  • References: http://stackoverflow.com/a/1425984/431698

Spanner VS CockroachDB

  • Spanner has fragments, directory, tablet and spanserver. CockroachDB has range and nodes.
  • Spanner uses one Paxos group for one tablet. CockroachDB use one Raft group for one node (MultiRaft).
  • Spanner many have multiple hierarchies. CockroachDB use one monolithic map for all tables.
Clone this wiki locally