google-nomulus/java/google/registry
larryruili 3d5a6b808c Change loadActiveApplicationsByDomainName to non-transactional
We can easily end up enlisting too many entity groups (separate
DomainApplications) in a TransactionalFlow when loading all applications
tracked by the DomainApplicationIndex. This makes the load operation
transactionless, to avoid overenlisting.

Potential problems:
1. We fail to prevent landrush applications, if a single sunrise application
exists. This is likely fine, except for a brief moment in Sunrush when a
sunrise application is made immediately prior to a landrush application. The
result is we accept an invalid application- which can be mediated manually.

2. We fail to prevent a domain create for a domain with an open application.
This is a little more sinister, but also unlikely unless someone submits an
application immediately before someone tries to create the same domain (sans
application?)

3. We return an invalid DomainCheck response (instead of 'pending allocation').
Not the worst outcome.

4. We reduce the AuctionStatusCommand and GetApplicationIdsCommand to
eventual consistency. Since they're internal tools, that's not too big a deal.

A better solution:
DomainApplications really should just be normalized under a virtualEntityGroup
by fullyQualifiedDomainName, or a hash-bucket like EppResources are. The
DomainApplication -> DomainBase -> EppResource hierarchy seems to be purely for
code reuse, at the cost of Datastore consistency. This would, however, require
quite some refactoring, and a custom resave operation across all
DomainApplications.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169395586
2017-10-04 16:16:44 -04:00
..
backup Add and fix mapreduce counters 2017-08-29 17:21:43 -04:00
batch Move ResaveAllEppResources mapreduce from tools service to backend 2017-09-20 10:27:17 -04:00
bigquery Add activity report generation code 2017-08-29 15:53:33 -04:00
braintree Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
builddefs Rename set to depset in .bzl and BUILD files 2017-08-29 16:53:21 -04:00
config Shorten the lock timeout for rdeStaging 2017-08-29 16:59:18 -04:00
cron Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
dns Extract multiple commit prevention in DNS writers into a base class 2017-09-20 10:27:17 -04:00
eclipse Add Cloud KMS as dependency of eclipse package 2017-03-21 15:17:04 -04:00
env Move ResaveAllEppResources mapreduce from tools service to backend 2017-09-20 10:27:17 -04:00
export Migrate to new Sheets v4 api 2017-09-20 10:27:17 -04:00
flows Fix closing and self-closing tags in templates 2017-09-20 10:27:17 -04:00
gcs Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
groups Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
idn Run buildifier on codebase to format BUILD files 2016-11-28 18:15:21 -05:00
keyring Set KmsKeyring as the default Keyring 2017-07-10 11:40:02 -04:00
loadtest Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
mapreduce Use real Preconditions class, not old clone from unrelated package. 2017-09-20 10:27:17 -04:00
model Change loadActiveApplicationsByDomainName to non-transactional 2017-10-04 16:16:44 -04:00
module Migrate to new Sheets v4 api 2017-09-20 10:27:17 -04:00
monitoring Add tool to check if other requests are still running 2017-09-12 15:51:50 -04:00
pricing Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
rdap Resolve RDAP TODO without action 2017-09-20 10:27:17 -04:00
rde Use different locks for thin and full rde reports 2017-09-20 10:27:17 -04:00
reporting Add transaction report generation code 2017-09-12 15:51:50 -04:00
request Check if lock owner is finished on lock acquisition 2017-09-20 10:27:17 -04:00
security Remove XsrfTokenManager fallback for validating legacy tokens 2017-03-21 15:36:31 -04:00
storage/drive Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tldconfig/idn Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tmch Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
tools Move ResaveAllEppResources mapreduce from tools service to backend 2017-09-20 10:27:17 -04:00
ui Fix closing and self-closing tags in templates 2017-09-20 10:27:17 -04:00
util Add unit tests to RequestStatusCheckerImpl 2017-09-12 15:51:50 -04:00
whois Add logging to WhoisReader 2017-09-12 15:51:50 -04:00
xjc Fix the build on MacOS 2017-07-12 11:03:50 -04:00
xml Add support for a domain delete superuser EPP extension 2017-09-12 15:51:50 -04:00
BUILD Document procedural changes to restore 2017-05-03 10:43:25 -04:00
repositories.bzl Migrate to new Sheets v4 api 2017-09-20 10:27:17 -04:00