queries
queries
¶
Monitor-specific database queries.
Classes¶
Functions¶
delete_stale_checkpoints
async
¶
delete_stale_checkpoints(
brotr: Brotr, keep_keys: list[str]
) -> int
Remove stale monitor checkpoints.
Deletes every monitor CHECKPOINT whose state_key neither exists
as a relay URL in the relay table nor appears in keep_keys.
This covers both orphaned relay markers (relay deleted) and orphaned
named keys (feature disabled) in one pass.
Parameters:
-
brotr(Brotr) –Brotr database interface.
-
keep_keys(list[str]) –Named keys to preserve (e.g.
["announcement", "profile"]for enabled publishing features).
Returns:
-
int–Number of deleted rows.
Source code in src/bigbrotr/services/monitor/queries.py
fetch_relays_to_monitor
async
¶
fetch_relays_to_monitor(
brotr: Brotr,
monitored_before: int,
networks: list[NetworkType],
) -> list[Relay]
Fetch all relays due for monitoring, ordered by least-recently-monitored.
Returns relays that have never been monitored or whose last monitoring
occurred before monitored_before. Ordering ensures that relays
with the oldest (or missing) monitoring marker are monitored first.
Rows that fail Relay construction are skipped.
Parameters:
-
brotr(Brotr) –Brotr database interface.
-
monitored_before(int) –Exclusive upper bound -- only relays whose checkpoint
timestampis before this Unix timestamp (or NULL) are returned. -
networks(list[NetworkType]) –Network types to include.
Returns:
Source code in src/bigbrotr/services/monitor/queries.py
insert_relay_metadata
async
¶
insert_relay_metadata(
brotr: Brotr, records: list[RelayMetadata]
) -> int
Batch-insert relay-metadata junction records.
Splits records into batches respecting BatchConfig.max_size and delegates each chunk to Brotr.insert_relay_metadata() (cascade mode).
Parameters:
-
brotr(Brotr) –Brotr database interface.
-
records(list[RelayMetadata]) –RelayMetadata instances to insert.
Returns:
-
int–Number of new relay-metadata records inserted.
Source code in src/bigbrotr/services/monitor/queries.py
upsert_monitor_checkpoints
async
¶
Upsert monitoring checkpoint markers for a batch of relays.
Called after each health-check chunk to record the timestamp of the last check, preventing the same relay from being re-checked within the same discovery interval.
Parameters:
-
brotr(Brotr) –Brotr database interface.
-
relays(list[Relay]) –Relays that were checked (successful and failed).
-
now(int) –Unix timestamp to store as the checkpoint value.
Source code in src/bigbrotr/services/monitor/queries.py
is_publish_due
async
¶
is_publish_due(
brotr: Brotr, state_key: str, interval: float
) -> bool
Check whether enough time has elapsed since the last publish checkpoint.
Parameters:
-
brotr(Brotr) –Database interface.
-
state_key(str) –Checkpoint key — must be one of
"announcement"or"profile". -
interval(float) –Minimum seconds between publishes.
Returns:
-
bool–Trueif the interval has elapsed or no checkpoint exists.
Raises:
-
ValueError–If state_key is not in the whitelist.
Source code in src/bigbrotr/services/monitor/queries.py
upsert_publish_checkpoints
async
¶
upsert_publish_checkpoints(
brotr: Brotr, state_keys: list[str]
) -> None
Save the current time as publish checkpoints.
Parameters:
-
brotr(Brotr) –Database interface.
-
state_keys(list[str]) –Checkpoint keys — each must be one of
"announcement"or"profile".
Raises:
-
ValueError–If any key is not in the whitelist.