aprs.me/lib/aprsme_web/live/map_live
Graham McIntire f225f57044
perf(packets): keyset-based pagination for recent-packet queries
get_recent_packets/1 and get_recent_packets_for_map/1 now accept a
:cursor option (%{received_at: DateTime, id: uuid}) instead of :offset
for deep paging. On the 100M-row partitioned packets table, offset
scanning was linear in page depth; keyset is constant.

Ordering tightened to (received_at DESC, id DESC) so the cursor is
stable across ties. idx_packets_received_desc still covers the lookup;
a dedicated (received_at DESC, id DESC) index isn't worth its size
given microsecond timestamp granularity.

historical_loader migrated from batch_offset*batch_size scheduling to
a sequential cursor chain. The old loader fanned out N Process.send_after
batches up-front which could arrive out-of-order; the cursor version
waits for batch N before scheduling N+1, and also short-circuits the
remaining schedule when an under-full batch signals exhaustion.

mobile_channel load_historical_packets dropped its meaningless
`offset: 0`; callsign history already lacked offset.

No LiveView or WebSocket payload shapes changed. offset: 0 (or omitted)
still behaves as first page; non-zero offsets are silently ignored.
2026-04-21 10:15:04 -05:00
..
components.ex vendor heroicons SVGs, remove GitHub dependency 2026-03-03 13:34:23 -06:00
data_builder.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
display_manager.ex fix: stabilize moving station tracking 2026-03-26 18:48:43 -05:00
historical_loader.ex perf(packets): keyset-based pagination for recent-packet queries 2026-04-21 10:15:04 -05:00
index.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
navigation.ex Add logging to map location determination for debugging 2026-03-22 16:27:43 -05:00
packet_batcher.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
packet_processor.ex Batch RF path queries, batch marker removals, and JS callsign index 2026-02-20 09:04:22 -06:00
packet_utils.ex Remove dead PostGIS code, deduplicate utilities, and simplify module hierarchy 2026-02-20 13:39:07 -06:00
popup_component.ex integrate /:call to main page 2025-07-13 10:36:58 -05:00
rf_path.ex Batch push_events, RF path queries, and ETS tuning for hot paths 2026-02-20 08:30:54 -06:00
url_params.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00