Repository navigation
Follow-ups from the review of the row-storage series (#1458 to #1470) #1499
Description
Purpose
This issue tracks the Python follow-ups from the review of the Reliable Reporting row-storage series (#1095, #1445, #1458, #1459, #1464, #1466, #1467, #1468, #1469, and #1470). The review itself is on the protocol repository: review of adcp#7996, and the maintainer's reply asks for the follow-ups to be filed here. The direction of the shared persistence document is discussed on adcp#7996, not here. The parent for the series is #1457.
Each follow-up is verified against main at 47084e83a (after #1485). Items that #1481, #1482, or #1485 already fixed are not filed: the substring match on an error message (now ReportingRowBindingMismatchError), the UTC {period_date} (now the source-timezone calendar date), the stored locator names and bounds (now object_ref, native_version_ref, size_bytes, format, and algorithm), and the missing documentation of the per-SDK account lock key (the docs now state one writer SDK per database).
Follow-ups
Protocol shape and public surface:
- Build typed control totals from the generated
ReportingControlTotalmodel #1487 Build typed control totals from the generatedReportingControlTotalmodel - Pin the
adcp.reporting.ledgerpublic API before 9.0.0 GA #1490 Pin theadcp.reporting.ledgerpublic API before 9.0.0 GA
Module boundaries:
-
row_write.pydepends on private members ofPgReportingLedgerStore#1488row_write.pydepends on private members ofPgReportingLedgerStore - Staged uploads live in a process-local dict on the store #1489 Staged uploads live in a process-local dict on the store
- Promote
_catalog_objectsto a public catalog module and unify therequired_*schema.jsonloaders #1497 Promote_catalog_objectsto a public catalog module and unify therequired_*schema.jsonloaders
Object storage:
- Remove the per-object advisory lock now that
{revision_key}is required in key templates #1492 Remove the per-object advisory lock now that{revision_key}is required in key templates (committed to in the reply above) -
find_shareabledocuments aFOR SHAREguarantee that the staging path does not get #1493find_shareabledocuments aFOR SHAREguarantee that the staging path does not get - Replace the ctypes
statxcall in the filesystem row provider #1494 Replace the ctypesstatxcall in the filesystem row provider - Collapse the repeated skeleton of the GCS, S3, and Azure row providers #1496 Collapse the repeated skeleton of the GCS, S3, and Azure row providers
- Bound
row_binding_idandcredential_refto 255 characters like the AdCP identifiers #1498 Boundrow_binding_idandcredential_refto 255 characters like the AdCP identifiers
Shared layout and tests:
- Shared row-storage DDL is order-dependent; name the exact
DROP CONSTRAINTin the refusal and the docs #1495 Shared row-storage DDL is order-dependent; name the exactDROP CONSTRAINTin the refusal and the docs - Row-storage interop test: replay tests skip without fixtures, fixtures are oversized, and the docs claim a JS replay that does not exist #1491 Row-storage interop test: replay tests skip without fixtures, fixtures are oversized, and the docs claim a JS replay that does not exist
Three of these need a matching change in the JS SDK (#1492, #1495, and #1498); each says so in its body.
Activity