Recorded in ProtoDatabaseSelector::InitUniqueOrShared
when starting, next step is to initialize the unique database.
Recorded in ProtoDatabaseSelector::InitWithDatabase
, which is only used by unit tests and perf tests, not a final state.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique database is corrupted, executing callback with kCorrupt
.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique DB fails to open and ProtoDatabaseImpl
is created without a shared DB provider, should only happen in FakeDB and Perftests. executing callback with kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when both unique and shared databases fail to open, shared DB can fail to open because SharedProtoDatabase::GetClientAsync
returns an error or when SharedProtoDatabaseProvider
returns no SharedProtoDatabase
instance. callback is executed with kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there's no shared DB client and a shared database is requested, callback is executed with kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there's no shared DB client because it failed to open and a unique DB was requested, callback is executed with kError
because the shared DB could contain unmigrated data.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no unique DB because it failed to open, the callback is executed with kError
as the unique DB could contain unmigrated data.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique DB opens successfully but ProtoDatabaseImpl
is created without a shared DB provider, should only happen in FakeDB and Perftests. executing callback with kOK
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there‘s no shared DB client because it doesn’t exist in disk and a unique database was requested, callback is executed with kOK
and the unique DB is used as this is expected to happen before any migrations.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there‘s no unique DB because it doesn’t exist and the shared DB metadata reports that no migration has been attempted, we set the database as migrated to shared, execute the callback with kOK
and use the shared DB.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when the unique DB fails to open but the metadata reports that data is now in the shared DB. callback is executed with kOK
and the shared DB is used. This is expected to happen after migrating and deleting the unique DB.
Recorded in ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
when data deletion fails before a migration, we’ll attempt to delete again next time, callback is called with kOK
and the old data is used.
Recorded in ProtoDatabaseSelector::OnMigrationTransferComplete
when MigrationDelegate::DoMigration
returns an error, callback is executed with kOK
and the unique DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationTransferComplete
when MigrationDelegate::DoMigration
returns an error, callback is executed with kOK
and the shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a successful migration but old data fails to be deleted, callback is executed with kOK
and shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a successful migration but old data fails to be deleted, callback is executed with kOK
and unique DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a successful migration and data deletion, callback is executed with kOK
and shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a successful migration and data deletion, callback is executed with kOK
and unique DB is used.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
and ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
, indicates that data will be migrated from unique to shared, not a final state. Next step is calling MigrationDelegate::DoMigration
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
and ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
, indicates that data will be migrated from shared to unique, not a final state. Next step is calling MigrationDelegate::DoMigration
.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the database for SharedDBMetadataProto
fails to load metadata for the specified database, expected for the first time, not a final state.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when metadata is retrieved for a client and it has no migration state, we write MIGRATION_NOT_ATTEMPTED
back to the database and regardless of the DB’s result we report that no migration has been attempted.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the shared database experienced data corruption in an earlier initialization, shared DB callback is executed with kCorrupt
.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the shared database opened successfully without corruption, the shared DB callback is executed with kOK
.
Recorded in SharedProtoDatabase::Init
and SharedProtoDatabase::CheckCorruptionAndRunInitCallback
when the shared proto DB failed to open, the shared DB callback is executed with kError
(or any other non kOK
result)
Recorded in SharedProtoDatabase::Init
when the shared proto DB does not exist, the shared DB callback is executed with kInvalidOperation
.