Google Research published at SIGMOD, 2012 and then published a paper about it at VLDB, 2013. Google used to use Sharded MySQL for their Ads system. But it had bad performance on availability, scalability and functionality. So Google decided to build a new database on Spanner to keep all RDBMS features but with scalability.
The Spanner provides a global timestamp order for the transactions to use. Thus F1 can use timestamp to achieve concurrency control. F1 actually gets three kinds of transaction control methods:
F1 supports traditional relational data model. The Cluster Hierarchical Model would use repeated data (repeated ancestor's primary key) to store the data in a clustered way for fast joining process. The Cluster Hierarchical Model stores data like a tree with a root row, and then followed by its child rows and grand child rows.
F1 directly uses a separated Spanner table to store index information. F1 has two kinds of indices which are Local Index and Global Index. Local Index requires to require root primary key as a prefix so that the index can be used to locate the row in the same Spanner Directory fast. Global Index is a costly index which can locate the data globally without prefix.
https://ai.google/research/pubs/pub41344
Google Inc
2013