components/leveldb_proto/internal/proto_init_state_description.md
[TOC]
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.