Remove datastore related code (#1906)

This commit is contained in:
Lai Jiang 2023-01-19 14:44:11 -05:00 committed by GitHub
parent 913edb23ee
commit e41fd7877e
152 changed files with 886 additions and 4460 deletions

View file

@ -77,14 +77,14 @@ The following cursor types are defined:
* **`SYNC_REGISTRAR_SHEET`** - Tracks the last time the registrar spreadsheet
was successfully synced.
All `Cursor` entities in Datastore contain a `DateTime` that represents the next
timestamp at which an operation should resume processing and a `CursorType` that
identifies which operation the cursor is associated with. In many cases, there
are multiple cursors per operation; for instance, the cursors related to RDE
reporting, staging, and upload are per-TLD cursors. To accomplish this, each
All `Cursor` entities in the database contain a `DateTime` that represents the
next timestamp at which an operation should resume processing and a `CursorType`
that identifies which operation the cursor is associated with. In many cases,
there are multiple cursors per operation; for instance, the cursors related to
RDE reporting, staging, and upload are per-TLD cursors. To accomplish this, each
`Cursor` also has a scope, a `Key<ImmutableObject>` to which the particular
cursor applies (this can be e.g. a `Registry` or any other `ImmutableObject` in
Datastore, depending on the operation). If the `Cursor` applies to the entire
the database, depending on the operation). If the `Cursor` applies to the entire
registry environment, it is considered a global cursor and has a scope of
`EntityGroupRoot.getCrossTldKey()`.
@ -172,27 +172,14 @@ objects by their unique IDs:
* `Host`: fully-qualified host name
Since all `EppResource` entities are indexed on ROID (which is also unique, but
not as useful as the resource's name), a `ForeignKeyIndex` provides a way to
not as useful as the resource's name), the `ForeignKeyUtils` provides a way to
look up the resources using another key which is also unique during the lifetime
of the resource (though not for all time).
A `ForeignKeyIndex` is updated as a resource is created or deleted. It is
important to note that throughout the lifecycle of an `EppResource`, the
underlying Datastore entity is never hard-deleted; its deletion time is set to
the time at which the EPP command to delete the resource was set, and it remains
in Datastore. Other resources with that same name can then be created.
## EPP resource index
An `EppResourceIndex` is an index that allows for quick enumeration of all
`EppResource` entities in Datastore. Datastore does not otherwise provide an
easy way to efficiently and strongly consistently enumerate all entities of a
given type. Each `EppResourceIndex` is assigned randomly to an
`EppResourceIndexBucket` upon creation, the number of which is configured to be
greater than the number of shards typically used for Mapreduces that enumerate
these entities. Mapreduces that process all `EppResource` entities (or
subclasses thereof) distribute each `EppResourceIndexBucket` to available
shards.
It is important to note that throughout the lifecycle of an `EppResource`, the
underlying entity is never hard-deleted; its deletion time is set to the time at
which the EPP command to delete the resource was set, and it remains in the
database. Other resources with that same name can then be created.
## History entries
@ -232,7 +219,7 @@ between the registry and registrars. Refer to [RFC 5730 Section
2.9.2.3](https://tools.ietf.org/html/rfc5730#section-2.9.2.3) for their protocol
specification.
Poll messages are stored by the system as entities in Datastore. All poll
Poll messages are stored by the system as entities in the database. All poll
messages have an event time at which they become active; any poll request before
that time will not return the poll message. For example, every domain when
created enqueues a speculative poll message for the automatic renewal of the