Build the nav-data store on a Mac instead of on the aircraft - #42
Open
RISCfuture wants to merge 1 commit into
Open
Build the nav-data store on a Mac instead of on the aircraft#42RISCfuture wants to merge 1 commit into
RISCfuture wants to merge 1 commit into
Conversation
RISCfuture
force-pushed
the
navdata/emit-store
branch
4 times, most recently
from
September 8, 2026 08:00
6ba7298 to
a903769
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 08:02
a903769 to
20347a9
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 08:03
20347a9 to
7e822c2
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 15:48
7e822c2 to
69fe171
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 16:13
69fe171 to
a3e5ddf
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 16:20
a3e5ddf to
ee751a7
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 16:26
ee751a7 to
6ec41b8
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 16:33
6ec41b8 to
067f4f5
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
2 times, most recently
from
September 8, 2026 16:58
bb621d4 to
e745638
Compare
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 17:10
e745638 to
38e0085
Compare
The app spends minutes assembling this store on the pilot's device, once a cycle, before it can be used at all. DownloadNASR can build the same store in under a minute and publish it, turning that wait into a download. Measured against the current cycle: 29,287 airports and 654,785 obstacles, 84 MB as a store and 18 MB compressed, against 14.7 MB for the property list the app builds it from today. The download grows by a fifth and the import disappears. It is built by transcoding a dataset that has already been published, rather than going back to the FAA for it. The store is then a pure function of the payload the app falls back to, and cannot drift from it. It is written through the same NavDataStoreWriter the app's own import runs, for the same reason. VACUUM INTO writes the result, rather than a copy. Core Data journals ahead, so a store copied out from under a writer leaves its most recent rows in the write-ahead log beside it — and a store published without that sidecar opens perfectly and reads as empty. The built store is then reopened read-only through the app's own pair of configurations and its rows counted, because a store this binary can write but the app cannot open is the failure worth catching in a build rather than in a cockpit. Each cycle gets a manifest named for it, stating the window it is effective for, the schema shape it was built against, and the size and digest of the store. It also carries the date this dataset's OurAirports data was processed, which nothing in the store file itself records and which the app reports beside the FAA cycles. There is no "latest": a mutable pointer cannot say which cycle is current, and a stale one looks exactly like a fresh one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
RISCfuture
force-pushed
the
navdata/emit-store
branch
from
September 8, 2026 18:09
38e0085 to
68104cb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The app spends minutes assembling this store on the pilot's device, once
a cycle, before it can be used at all. DownloadNASR can build the same
store in under a minute and publish it, turning that wait into a
download.
Measured against the current cycle: 29,287 airports and 654,785
obstacles, 84 MB as a store and 18 MB compressed, against 14.7 MB for the
property list the app builds it from today. The download grows by a fifth
and the import disappears.
It is built by transcoding a dataset that has already been published,
rather than going back to the FAA for it. The store is then a pure
function of the payload the app falls back to, and cannot drift from it.
It is written through the same NavDataStoreWriter the app's own import
runs, for the same reason.
VACUUM INTO writes the result, rather than a copy. Core Data journals
ahead, so a store copied out from under a writer leaves its most recent
rows in the write-ahead log beside it — and a store published without
that sidecar opens perfectly and reads as empty.
The built store is then reopened read-only through the app's own pair of
configurations and its rows counted, because a store this binary can
write but the app cannot open is the failure worth catching in a build
rather than in a cockpit.
Each cycle gets a manifest named for it, stating the window it is
effective for, the schema shape it was built against, and the size and
digest of the store. There is no "latest": a mutable pointer cannot say
which cycle is current, and a stale one looks exactly like a fresh one.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
Stack created with GitHub Stacks CLI • Give Feedback 💬
🤖 Generated with Claude Code
https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq