Repository navigation
Stores: handtekening en metabestanden in de storemap zelf, zodat IntermediateResults overzichtelijk blijft (DirectCar en PT_Chains) #122
Description
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:
- PT_Chains, per blok (
ChainStore_PerBlockTRUE, de standaard): de store is al een map (StorageBlockDir_Str).SignatureFilewordtStorageBlockDir_Str + '/signature.txt'in plaats vanStorageBase_Str + '.signature.txt'(NetworkSetup/PublicTransport_Prep/ChainStore_Sig). GeoDMS zetsignature.xmldan vanzelf in dezelfde map. - DirectCar (
PublicTransport_Prep/.../DirectCarStore_T): de store wordtStorageBase_Str + '/store.mmd', de handtekeningStorageBase_Str + '/signature.txt'. De map<x>bevat danstore.mmd,store.xml,signature.txtensignature.xml.MaxSubPathLengthwordtstrlen('/store.mmd/0Dictionary.dms'). - PT_Chains als één store (
ChainStore_PerBlockFALSE): 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_runsdelen dezelfdeIntermediateResults: hun map heetNetworkModel_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ën20261006_nacht,20260616,20250930_wachten20241001_wachtvan 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>.mmdnaar<x>/store.mmd,<x>.xmlnaar<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.txtprobeert en anders<x>.signature.txt. Dat maaktStoreSignature_Tingewikkelder; een eenmalige omzetting lijkt eenvoudiger.
Mee te wijzigen
- De
Descr-teksten incfg/main/Templates/StoreNames_T.dmsencfg/main/NetworkSetup/PublicTransport_Prep.dms("in<store>.signature.txt", "de handtekening naast de store"). batch/ReportUpdateAll.py(r. 50): leest de namenDirectCar_<moment>_<herkomst>_<bestemming>_<hash>.mmdmet 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
IntermediateResultsbeschreven staat.
Winst
Een verouderde store opruimen wordt één map verwijderen, en IntermediateResults toont één item per store.
Activity