|Google Releases Spanner Emulator|
|Written by Kay Ewbank|
|Monday, 01 June 2020|
Google has released an offline emulator for Cloud Spanner, its globally-distributed, and strongly consistent database service built for the cloud. The emulator is designed to make Cloud Spanner more accessible to the broader developer community.
Google describes Spanner as combining the best of relational and NoSQL databases - scalable, distributed, but supporting ACID transactions and SQL queries. Spanner is used internally at Google for many of Google's apps, including Gmail, Photos, and Calendar. It is available as a database as a service running on Google Cloud.
Google's internal implementation of Spanner is the largest single database on earth and spans all Google’s data centers - hence the name Spanner. Describing it in a research paper in 2012, Google researchers said that:
"At the highest level of abstraction, it is a database that shards data across many sets of Paxos state machines in data-centers spread all over the world. Replication is used for global availability and geographic locality; clients automatically failover between replicas. Spanner automatically reshards data across machines as the amount of data or the number of servers changes, and it automatically migrates data across machines (even across datacenters)to balance load and in response to failures. Spanner is designed to scale up to millions of machines across hundreds of datacenters and trillions of database rows."
Google says Spanner has seen "huge customer adoption across several different industries and verticals", leading to a large community of application developers using Cloud Spanner. This is the market the offline emulator is aimed at. It is intended to reduce application development cost and improve developer productivity for the customers.
The emulator provides a local in-memory Spanner service emulator that you can use for prototyping, developing and testing applications locally. Data is stored in memory so doesn't persist across runs. Once an application is working with the emulator, all you need to do is change the endpoint configuration to carry out end-to-end testing.
The Cloud Spanner emulator comes with the full set of Spanner APIs, including the SQL and DDL features that could be run locally for prototyping, development and testing. You can carry out querying of schema metadata for a database using Information Schema. REST and gRPC APIs are supported and can be used with the existing client libraries, OSS JDBC driver as well as the Cloud SDK. The emulator is supported natively on Linux, and requires Docker on MacOS and Windows platforms. IDEs such as IntelliJ and Eclipse can be configured to directly communicate with the Cloud Spanner emulator endpoint.
Google plans to continue building and supporting customer requested features. The Cloud Spanner emulator is available on GitHub.
or email your comment to: firstname.lastname@example.org