Skip to content

Stores: handtekening en metabestanden in de storemap zelf, zodat IntermediateResults overzichtelijk blijft (DirectCar en PT_Chains) #122

Open

Description

@MaartenHilferink

Aanleiding

Sinds #118 heeft elke store een korte naam (leesbaar deel plus hash) met de handtekening in een apart bestand naast de store. Samen met de metabestanden die GeoDMS bij elke weggeschreven opslag maakt (<naam zonder extensie>.xml, GeoDmsMetaInfo), staan er in C:\LocalData\networkmodel_pbl\IntermediateResults per store drie of vier items:

store items in IntermediateResults
DirectCar_<moment>_<herkomst>_<bestemming>_<hash> <x>.mmd (map), <x>.xml (meta van de store), <x>.signature.txt, <x>.signature.xml
PT_Chains_<datum>_<venster>_<hash> (per blok) <x> (map met <n>of<N>.mmd en <n>of<N>.xml), <x>.signature.txt, <x>.signature.xml

Nu (2026-10-04) zijn dat 22 items voor 6 stores. Bij het opruimen van de verouderde ketenstores na #121 moesten per store drie items apart worden verplaatst (15 voor 5 stores). Bij de uitvoer staat de handtekening al in de map (Output/<datum>_<label>/signature.txt, #118).

Voorstel

Eén map per store, met de handtekening en alle metabestanden erin:

  1. PT_Chains, per blok (ChainStore_PerBlock TRUE, de standaard): de store is al een map (StorageBlockDir_Str). SignatureFile wordt StorageBlockDir_Str + '/signature.txt' in plaats van StorageBase_Str + '.signature.txt' (NetworkSetup/PublicTransport_Prep/ChainStore_Sig). GeoDMS zet signature.xml dan vanzelf in dezelfde map.
  2. DirectCar (PublicTransport_Prep/.../DirectCarStore_T): de store wordt StorageBase_Str + '/store.mmd', de handtekening StorageBase_Str + '/signature.txt'. De map <x> bevat dan store.mmd, store.xml, signature.txt en signature.xml. MaxSubPathLength wordt strlen('/store.mmd/0Dictionary.dms').
  3. PT_Chains als één store (ChainStore_PerBlock FALSE): op dezelfde manier als DirectCar (StorageBase_Str + '/store.mmd').

De handtekening komt niet in de .mmd-map zelf: te testen is of GeoDMS een .mmd-map leegmaakt als de store opnieuw wordt geschreven. Dat zou de handtekening wissen, want die wordt vóór de store geschreven (ExplicitSuppliers = "Sig/ForWriting").

Aandachtspunten

Overgang

  • De runkopieën in C:\LocalData\NM_PBL_runs delen dezelfde IntermediateResults: hun map heet NetworkModel_PBL, dus hun %LocalDataProjDir% is hetzelfde. Een kopie met de oude code zoekt <x>.signature.txt, de nieuwe <x>/signature.txt. Op dit moment zijn de kopieën 20261006_nacht, 20260616, 20250930_wacht en 20241001_wacht van 10b1503 (oude indeling).
  • Voorstel: een eenmalig script (bijvoorbeeld batch/MoveStoreSignatures.ps1) dat de bestaande stores omzet. PT_Chains: <x>.signature.* naar <x>/signature.*. DirectCar: map <x> maken, <x>.mmd naar <x>/store.mmd, <x>.xml naar <x>/store.xml, <x>.signature.* naar <x>/signature.*. Draaien als geen kopie met de oude code meer loopt, en de runkopieën dan bijwerken. De hash in de naam verandert niet, dus een revisie verhogen is niet nodig. Zonder omzetting zouden vooral de autostores opnieuw moeten (enkele uren per congestiemoment).
  • Alternatief: een lezer die eerst <x>/signature.txt probeert en anders <x>.signature.txt. Dat maakt StoreSignature_T ingewikkelder; een eenmalige omzetting lijkt eenvoudiger.

Mee te wijzigen

  • De Descr-teksten in cfg/main/Templates/StoreNames_T.dms en cfg/main/NetworkSetup/PublicTransport_Prep.dms ("in <store>.signature.txt", "de handtekening naast de store").
  • batch/ReportUpdateAll.py (r. 50): leest de namen DirectCar_<moment>_<herkomst>_<bestemming>_<hash>.mmd met de handtekening ernaast.
  • De IsWritten-controle per blok (ExistingFile(... StoreName + '.mmd/0Dictionary.dms')) blijft gelijk; alleen de plaats van de handtekening verandert.
  • Wiki en skills waar de indeling van IntermediateResults beschreven staat.

Winst

Een verouderde store opruimen wordt één map verwijderen, en IntermediateResults toont één item per store.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions