Add an action to sync the remote Valkey cache (#3032)

This uses two cursors (one for hosts and one for domains) to track our
progress in "catching up", or syncing recent changes to the database,
using the update-timestamp field. When the cache is in use and fully
caught up, these
cursors should be kept relatively up-to-date to the actual time, i.e.
less than one hour behind
This commit is contained in:
gbrodman
2026-05-05 15:29:43 +00:00
committed by GitHub
parent f44642fe28
commit 81b3a2fc5b
10 changed files with 480 additions and 28 deletions
@@ -257,11 +257,11 @@ td.section {
<tbody>
<tr>
<td class="property_name">generated by</td>
<td class="property_value">SchemaCrawler 17.8.1</td>
<td class="property_value">SchemaCrawler 17.10.2</td>
</tr>
<tr>
<td class="property_name">generated on</td>
<td class="property_value">2026-03-21 03:39:17</td>
<td class="property_value">2026-05-01 18:52:49</td>
</tr>
<tr>
<td class="property_name">last flyway file</td>
@@ -273,7 +273,7 @@ td.section {
<p>&nbsp;</p>
<svg viewBox="0.00 0.00 4797.00 3528.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3524)">
<title>SchemaCrawler_Diagram</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-3524 4793,-3524 4793,4 -4,4" /> <text text-anchor="start" x="4556.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated by</text> <text text-anchor="start" x="4639.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">SchemaCrawler 17.8.1</text> <text text-anchor="start" x="4555.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated on</text> <text text-anchor="start" x="4639.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2026-03-21 03:39:17</text> <polygon fill="none" stroke="#888888" points="4552,-4 4552,-44 4781,-44 4781,-4 4552,-4" /> <!-- allocationtoken_a08ccbef -->
<title>SchemaCrawler_Diagram</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-3524 4793,-3524 4793,4 -4,4" /> <text text-anchor="start" x="4549" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated by</text> <text text-anchor="start" x="4632" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">SchemaCrawler 17.10.2</text> <text text-anchor="start" x="4548" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated on</text> <text text-anchor="start" x="4632" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2026-05-01 18:52:49</text> <polygon fill="none" stroke="#888888" points="4545,-4 4545,-44 4781,-44 4781,-4 4545,-4" /> <!-- allocationtoken_a08ccbef -->
<g id="node1" class="node">
<title>allocationtoken_a08ccbef</title> <polygon fill="#e9c2f2" stroke="transparent" points="481.5,-993 481.5,-1012 667.5,-1012 667.5,-993 481.5,-993" /> <text text-anchor="start" x="483.5" y="-999.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public."AllocationToken"</text> <polygon fill="#e9c2f2" stroke="transparent" points="667.5,-993 667.5,-1012 741.5,-1012 741.5,-993 667.5,-993" /> <text text-anchor="start" x="702.5" y="-998.8" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text> <text text-anchor="start" x="483.5" y="-980.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">token</text> <text text-anchor="start" x="661.5" y="-979.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text> <text text-anchor="start" x="669.5" y="-979.8" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text> <text text-anchor="start" x="483.5" y="-960.8" font-family="Helvetica,sans-Serif" font-size="14.00">domain_name</text> <text text-anchor="start" x="661.5" y="-960.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text> <text text-anchor="start" x="669.5" y="-960.8" font-family="Helvetica,sans-Serif" font-size="14.00">text</text> <text text-anchor="start" x="483.5" y="-941.8" font-family="Helvetica,sans-Serif" font-size="14.00">redemption_domain_repo_id</text> <text text-anchor="start" x="661.5" y="-941.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text> <text text-anchor="start" x="669.5" y="-941.8" font-family="Helvetica,sans-Serif" font-size="14.00">text</text> <text text-anchor="start" x="483.5" y="-922.8" font-family="Helvetica,sans-Serif" font-size="14.00">token_type</text> <text text-anchor="start" x="661.5" y="-922.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text> <text text-anchor="start" x="669.5" y="-922.8" font-family="Helvetica,sans-Serif" font-size="14.00">text</text> <polygon fill="none" stroke="#888888" points="480.5,-916.5 480.5,-1013.5 742.5,-1013.5 742.5,-916.5 480.5,-916.5" />
</g>
File diff suppressed because one or more lines are too long
@@ -147,7 +147,7 @@
create table "Cursor" (
scope text not null,
type text not null check ((type in ('BRDA','RDE_REPORT','RDE_STAGING','RDE_UPLOAD','RDE_UPLOAD_SFTP','RECURRING_BILLING','SYNC_REGISTRAR_SHEET','ICANN_UPLOAD_TX','ICANN_UPLOAD_ACTIVITY'))),
type text not null check ((type in ('BRDA','RDE_REPORT','RDE_STAGING','RDE_UPLOAD','RDE_UPLOAD_SFTP','RECURRING_BILLING','SYNC_REGISTRAR_SHEET','ICANN_UPLOAD_TX','ICANN_UPLOAD_ACTIVITY','REMOTE_CACHE_DOMAIN_SYNC','REMOTE_CACHE_HOST_SYNC'))),
last_update_time timestamp(6) with time zone not null,
cursor_time timestamp(6) with time zone not null,
primary key (scope, type)