TC$mC$ on erinomainen suunta. NC$iden lisC$ysten myC6tC$ arkkitehtuuri
kehittyy pelkC$stC$ avain-arvo -varastosta aidoksi graafitietokannaksi (Graph
Database) ja saa hajautetun virtuaalimuistin kyvykkyyksiC$.
Kuten tiedostossa omega-registry-architecture.md on linjattu, jatketaan
samalla modulaarisella ja selkeC$llC$ AST-formaatilla. TC$ssC$ on uusi
moduulilaajennos, joka kattaa objektien topologian, serialisoinnin ja
swap-mekanismit:
OBJECT_TOPOLOGY {ramdb-topo-0001}
> description: Objektien rakenteellinen malli, tyyppijC$rjestelmC$ ja globaali
identiteetti. MC$C$rittC$C$, miten data jaetaan loogisiin avaruuksiin ja miten
oliot linkittyvC$t toisiinsa.
> type: architecture
> tags: [data-model, graph, namespaces, uid]
>
GLOBAL_UID_REGISTRY {ramdb-topo-0002}
> description: Keskusrekisteri, joka erottaa olion identiteetin (UID) sen
fyysisestC$ muistiosoitteesta. Kaikki viittaukset olioihin tehdC$C$n UID:n
kautta, mikC$ mahdollistaa olioiden siirtelyn muistissa (compaction) ja
swappauksen rikkomatta riippuvuuksia.
> type: data_structure
> tags: [uid, pointer-indirection, registry]
> depends_on: [ramdb-topo-0001]
>
NAMESPACE_ISOLATION {ramdb-topo-0003}
> description: Objektin sisC$isen datan osiointi toisistaan eristettyihin
avaruuksiin. Vakiona tarjotaan _sys (jC$rjestelmC$n metatieto, kellonajat,
tilat) ja _user (sovellustason data). Tukee rajattomasti uusia rinnakkaisia
nimiavaruuksia (esim. _ai_context, _physics) per objekti.
> type: specification
> tags: [namespaces, extensibility, isolation]
> depends_on: [ramdb-topo-0001]
>
NATIVE_TYPE_SYSTEM {ramdb-topo-0004}
> description: Tietokannan ymmC$rtC$mC$t sisC$iset tietorakenteet. Tukee
primitiivien lisC$ksi rakenteita: Array, Map, Linked List sekC$ Pointer
(UID-viittaus). Linked List mahdollistaa massiivisten, muistipuskuriin
hajautettujen jonojen lukottoman yllC$pidon.
> type: data_structure
> tags: [types, array, map, linked-list, pointers]
> depends_on: [ramdb-topo-0001]
>
RELATIONSHIP_BINDINGS {ramdb-topo-0005}
> description: JC$rjestelmC$tason graafisidokset olioiden vC$lillC$. Tukee
suunnattuja (A->B, A<-B) ja kaksisuuntaisia (A<->B) relaatioita. Sidokset
tallennetaan kevyinC$ UID-pareina, jolloin monimutkaisten verkostojen
(many-to-many) lC$pikC$ynti on erittC$in nopeaa suoraan muistista.
> type: logic
> tags: [graph, edges, relations, bindings]
> depends_on: [ramdb-topo-0002]
>
SERIALIZATION_ENGINE {ramdb-ser-0001}
> description: Datan muuntaminen muistiesityksestC$ (SAB) siirrettC$vC$C$n
muotoon (JSON/BSON) IN/OUT-vC$yliC$ varten.
> type: architecture
> tags: [serialization, parsing, io]
>
CIRCULAR_REF_RESOLVER {ramdb-ser-0002}
> description: ClykC$s serialisoija, joka estC$C$ ikuiset luupit A->B->A
-tilanteissa. Kun serialisoija kohtaa Pointer-tyyppisen muuttujan tai
relaation, se ei yritC$ syvC$kopioida (deep copy) kohdeoliota, vaan serialisoi
sen turvallisesti viittauksena (esim. {"$ref": "uid-1234"}).
> type: logic
> tags: [circular-references, safety, pointer-resolution]
> depends_on: [ramdb-ser-0001, ramdb-topo-0004]
>
SWAP_SUBSYSTEM {ramdb-swap-0001}
> description: Muistinhallinnan laajennus, joka sallii vC$hemmC$n kC$ytettyjen
olioiden (tai niiden raskaiden nimiavaruuksien) siirtC$misen ulkoiseen
tallennustilaan RAM-muistin vapauttamiseksi.
> type: architecture
> tags: [virtual-memory, swap, tiering, offloading]
>
SWAP_POINTER_REPLACEMENT {ramdb-swap-0002}
> description: Operaatio, jossa olion sisC$inen data (esim. _user avaruus)
poistetaan muistista ja korvataan kevyellC$ osoittimella swap://<swap_id>. Kun
olio seuraavan kerran haetaan (GET), tietokanta tunnistaa swap-osoittimen ja
pyytC$C$ SWAP_PROVIDERIA palauttamaan datan takaisin muistiin.
> type: logic
> tags: [swap-pointer, lazy-loading, memory-free]
> depends_on: [ramdb-swap-0001, ramdb-topo-0003]
>
PLUGGABLE_SWAP_PROVIDERS {ramdb-swap-0003}
> description: Rinnakkainen arkkitehtuuri ulkoisille swap-toteutuksille.
Voidaan kytkeC$ lennosta esimerkiksi host-koneen natiiviin tiedostojC$rjestelmC
$C$n (FS), selaimen IndexedDB-pohjaiseen virtuaaliseen tiedostojC$rjestelmC$C$n
(VFS) tai jopa verkon yli toimivaan jaettuun tallennustilaan.
> type: interface
> tags: [storage-backend, vfs, fs, pluggable]
> depends_on: [ramdb-swap-0001]
>
Swap-mekanismin toteutuksessa piilee yksi erittC$in mielenkiintoinen haaste:
Miten jC$rjestelmC$ kC$yttC$ytyy asynkronisesti, kun Worker (tai API) pyytC$C$
oliota, joka on sillC$ hetkellC$ swapattuna (esim. VFS:ssC$), odottamatta ja
blokkaamatta lukotonta ydinsilmukkaa? Haluatko pureutua tC$mC$n asynkronisen
swap-palautuksen suunnitteluun?