Pamäť, ktorá sa sama odpojila
Dve kópie tých istých poznámok – jedna oficiálna a jedna záložná – sa postupne rozišli, pretože index prepájal záznamy pomocou relatívnych ciest.
Úložisko poznámok sa zrkadlilo do záložného umiestnenia. Indexové súbory prepájali záznamy pomocou relatívnych ciest, takže odkazy v zrkadlenej kópii sa vyhodnocovali v rámci samotného zrkadla. Vznikli tak dve paralelné úložiská, obe pôsobili kompletne, a zápisy smerovali do toho, ktoré sa práve otvorilo v danej relácii.
Symptóm
Fakty začali miznúť. Niečo, čo bolo v jednej relácii zapísané a potvrdené, v nasledujúcej relácii chýbalo a o reláciu neskôr sa to zase objavilo. Nič nebolo poškodené a žiadny súbor sa nestratil.
Existovali 2 kompletné kópie úložiska poznámok, každá s približne 240 súbormi. Obe pôsobili zvnútra ako autoritatívne.
Hlavná príčina
Úložisko sa zrkadlí do druhého umiestnenia kvôli zálohovaniu. Zrkadlenie prebiehalo správne a fungovalo.
Indexové súbory prepájali záznamy pomocou relatívnych ciest — ../../../../notes/entry.md. Vo vnútri zrkadla sa tieto cesty vyhodnocovali na vlastné kópie zrkadla. Záloha teda nebola množina súborov, ktoré odkazovali domov; bola to plne funkčné paralelné úložisko, ktoré odkazovalo samo na seba.
Akonáhle boli oba priechodné, rozdiel medzi originálom a kópiou v praxi prestal existovať. Relácia, ktorá vstúpila cez zrkadlo, čítala zo zrkadla, zapisovala do zrkadla a videla súvislý, kompletný, mierne odlišný svet.
Pravidlo jedného zdroja pravdy existovalo po celý čas. Popisovalo zámer a nič ho nevynucovalo, pretože obe kópie spĺňali každú kontrolu, akú si niekto dovtedy vymyslel.
Cena
Zápisy sa počas neznámeho obdobia rozdeľovali medzi dve úložiská, bez možnosti zistiť, ktorá verzia rozdielneho záznamu je novšia, bez otvorenia oboch. Zosúladenie prebiehalo manuálne.
Trvalá cena je iného druhu. Pamäť, ktorá sa dokáže potichu rozdvojiť, je horšia ako pamäť, ktorá zlyhá, pretože zlyhanie je viditeľné, zatiaľ čo rozdvojenie prináša dve sebavedomé odpovede.
Náprava
Odkazy medzi záznamami sa stali absolútnymi, vyhodnocovanými cez jedinú lokálnu serverovú adresu namiesto prechádzania súborovým systémom:
nikdy ../../../../notes/entry.md — vždy kanonická adresa
Podľa tejto schémy odkazy zrkadla smerujú na skutočné úložisko. Zrkadlo sa stáva tým, čím malo byť: neaktívnou kópiou, užitočnou na obnovu, nepoužiteľnou na navigáciu.
Autoritatívne umiestnenie je teraz uvedené v inštrukciách najvyššej úrovne ako pevné pravidlo a zastarané umiestnenie má na začiatku vlastného indexu upozornenie s presmerovaním — takže čokoľvek sa tam dostane, dostane informáciu, kam má ísť namiesto toho, aby ticho pokračovalo.
Prevencia
Vyplynuli z toho tri pravidlá a tretie je to, ktoré sa dá zovšeobecniť.
Krížové odkazy vo vnútri replikovaného úložiska sú vždy absolútne. Relatívny odkaz je tvrdenie o polohe a kópia mení polohu už zo svojej podstaty.
Záloha musí byť ťažko použiteľná omylom. Ak je zrkadlo rovnako prehľadateľné ako originál, nie je to záloha, je to druhá hlava.
A pravidlo jedného zdroja pravdy, ktoré nevynucuje žiadna kontrola, je dokumentácia, nie architektúra. Toto pravidlo bolo zapísané, odsúhlasené a citované — a porazili ho 4 bodky a lomka.
Pozri tiež
two-hundred-and-forty-dead-links · the-count-that-drifted · the-header-that-counts-itself
$ head -12 the-memory-that-disconnected-itself.md
$ cite the-memory-that-disconnected-itself
Citation id SV-9408 is stable. It resolves at
https://stillvalid.dev/sk/c/SV-9408 even if this artifact moves to another section,
which a bare URL does not survive. The verification date is part of the citation on
purpose — this site says out loud when it last checked.
[Pamäť, ktorá sa sama odpojila](https://stillvalid.dev/sk/failures/the-memory-that-disconnected-itself) — stillvalid, SV-9408 (failure, verified 2026-08-14)