google-nomulus/java/google/registry
guyben bba975a991 Allow over 1000 dns-updates to be handled at once
The task-queue API only allows reading 1000 tasks at a time, hence the original reason for this limit. We get over that limit by reading (and processing) items from the queue in a loop - 1000 at a time.

This is important because the 1000 dns-updates are shared among all TLDs,
meaning that a TLD with >1000 waiting updates can affect the update latency of
other TLDs.

In addition, partially fixes the bug where if there are more than 1000 updates to paused
/ non-existing TLDs, we completely block all updated to all TLDs.

By partially fixed, I mean "if we have around 1000 updates to paused TLDs, we will read them every time ReadDnsUpdates is called, ignore then, and only then get to the actual updates we want to process".

This works for a number of 1000 updates waiting - but if paused TLDs have tens or hundreds of thousands of updates waiting - this might still choke up other TLDs (not to mention we keep reading / updating 10s or 100s of thousands of tasks in the queue, that's... bad.)

A more thorough fix will come in a future CL, as it requires a more thorough change in the code.

Note that the queue lease command supports a maximum of 10 QPS. Any more than
that - and we get errors / empty results. Hence we limit our QPS to 9 to be on
the safe side.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=185218684
2018-02-20 15:42:09 -05:00
..
backup Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
batch Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
beam Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
bigquery Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
braintree Switch from Guava Optionals to Java 8 Optionals 2017-10-24 16:53:47 -04:00
builddefs Rename set to depset in .bzl and BUILD files 2017-08-29 16:53:21 -04:00
config Allow over 1000 dns-updates to be handled at once 2018-02-20 15:42:09 -05:00
cron Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
dns Allow over 1000 dns-updates to be handled at once 2018-02-20 15:42:09 -05:00
eclipse Switch from Guava Optionals to Java 8 Optionals 2017-10-24 16:53:47 -04:00
env Increase number of frontend/backend instances on prod/sandbox to 100 2018-02-20 15:18:54 -05:00
export Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
flows Add DateTime as extensibility param for allocation token logic 2018-02-20 15:27:42 -05:00
gcs Add publish functionality to billing pipeline 2018-01-04 17:17:59 -05:00
groups Clean up some code quality issues 2017-12-01 22:14:06 -05:00
idn Update IDN tables to comply with https://www.iana.org/help/idn-repository-procedure 2018-02-01 21:59:14 -05:00
keyring Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
loadtest Replace com.google.common.base.Function with java.util.function.Function 2017-12-27 11:08:55 -05:00
mapreduce Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
model Remove leniency on poll message ID format without years in them 2018-02-20 15:12:43 -05:00
module Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
monitoring/whitebox Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
pricing Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
proxy Register quota metrics in GCP proxy 2018-02-20 15:39:15 -05:00
rdap RDAP: Change data policy remark for redacted contacts 2018-02-20 15:33:31 -05:00
rde Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
reporting Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
request Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
security Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
storage/drive Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tldconfig/idn Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
tmch Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
tools Rename Soy map to legacy_object_map (first step of migration) 2018-02-20 15:34:57 -05:00
ui Remove references to SoySyntaxException 2018-02-20 15:37:48 -05:00
util Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
whois Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
xjc Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
xml Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
BUILD Add nocron ear and deployer rules for the crash environment 2017-10-04 16:16:45 -04:00
repositories.bzl Update FOSS bazel version to 0.10.0 2018-02-05 23:54:49 -05:00