mirror of
https://github.com/google/nomulus.git
synced 2025-04-30 12:07:51 +02:00
Add documentation for ForeignKeyIndex and EppResourceIndex
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=137536233
This commit is contained in:
parent
5f691d6329
commit
4ae9f6a107
1 changed files with 33 additions and 1 deletions
|
@ -82,7 +82,7 @@ are multiple cursors per operation; for instance, the cursors related to RDE
|
||||||
reporting, staging, and upload are per-TLD cursors. To accomplish this, each
|
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` 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
|
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
|
Datastore, depending on the operation). If the `Cursor` applies to the entire
|
||||||
registry environment, it is considered a global cursor and has a scope of
|
registry environment, it is considered a global cursor and has a scope of
|
||||||
`EntityGroupRoot.getCrossTldKey()`.
|
`EntityGroupRoot.getCrossTldKey()`.
|
||||||
|
|
||||||
|
@ -187,6 +187,38 @@ There are a number of other useful utility methods for interacting with EPP
|
||||||
resources in the `EppResourceUtils` class, many of which deal with inspecting
|
resources in the `EppResourceUtils` class, many of which deal with inspecting
|
||||||
the status of a resource at a given point in time.
|
the status of a resource at a given point in time.
|
||||||
|
|
||||||
|
## Foreign key indexes
|
||||||
|
|
||||||
|
Foreign key indexes provide a means of loading active instances of `EppResource`
|
||||||
|
objects by their unique IDs:
|
||||||
|
|
||||||
|
* `DomainResource`: fully-qualified domain name
|
||||||
|
* `ContactResource`: contact id
|
||||||
|
* `HostResource`: 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
|
||||||
|
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.
|
||||||
|
|
||||||
## History entries
|
## History entries
|
||||||
|
|
||||||
A `HistoryEntry` is a record of a mutation of an EPP resource. There are various
|
A `HistoryEntry` is a record of a mutation of an EPP resource. There are various
|
||||||
|
|
Loading…
Add table
Reference in a new issue