GoogleCloudPlatform/pontem

Backup data format uses serialized Java Spanner API objects

nielm opened this issue · 1 comments

nielm commented

The backup uses Java Serialization of the Spanner Struct class to store the database rows.
This is not optimal as it depends on the internal Spanner API code never changing in ways that could render the serialized objects unreadable, which would make the backups useless.

Because of this (and other) issues, Serialization is generally frowned on for long term object persistence unless the developers of the classes involved (spanner API in this case) specifically design their classes to cope with the possibility of change.
See Effective Java V2, Chapter 11

Backup and restore now supports Avro.