TC$mC$ on erinomainen strategia! Kun jaamme nC$mC$ kolme massiivista
arkkitehtuurimuutosta omiin konteksteihinsa (chatteihin), tekoC$lyn huomiokyky
ei pirstaloudu, ja saat sataprosenttisen tarkkaa, huippuunsa viritettyC$
matalan tason koodia.
Olet aivan oikeassa siinC$, ettC$ Snapshotit / WAL (Vaihe C3) on nC$istC$
tC$rkein, sillC$ se tekee ohjelmasta aidosti tietokannan pelkC$n
muistipuskurin sijaan.
Kirjoitin sinulle alle bash-skriptin. Se generoi /opt/edge/prompts/ -kansioon
kolme valmista tekstitiedostoa. Skripti lukee automaattisesti olennaiset
tiedostot (DESIGN.md, core.js, app.js, worker.js, api-gateway.js) ja "bundlaa"
ne kunkin promptin loppuun Markdown-koodilohkoina, jotta uusi chat saa
vC$littC6mC$sti tC$ydellisen kC$sityksen nykyisestC$ arkkitehtuuristasi.
Generointiskripti (Aja tC$mC$ /opt -kansiossa)
Kopioi tC$mC$ koodi ja tallenna se esimerkiksi nimellC$ generate_prompts.sh ja
aja bash generate_prompts.sh.
#!/bin/bash
# generate_prompts.sh - Generoi LLM-promptit uusille arkkitehtuuriominaisuuksil
le
# Varmistetaan hakemistot
mkdir -p /opt/edge/prompts
cd /opt
# Funktio tiedoston bundlaamiseksi promptiin
bundle_file() {
local file_path=$1
local target_prompt=$2
if [ -f "$file_path" ]; then
echo -e "
### Tiedosto: $file_path
\`\`\`javascript" >> "$target_prompt"
cat "$file_path" >> "$target_prompt"
echo -e "
\`\`\`
" >> "$target_prompt"
else
echo "Varoitus: Tiedostoa $file_path ei lC6ytynyt!"
fi
}
echo "Generoidaan Prompt 1: Datan pysyvyys (Snapshots / WAL)..."
PROMPT1="/opt/edge/prompts/PROMPT_1_SNAPSHOTS.txt"
cat << 'EOF' > "$PROMPT1"
Tavoite: Rakentaa Lock-free RAM tietokantaamme (Node.js, SharedArrayBuffer)
datan pysyvyys (Persistence).
Ominaisuudet:
1. Zero-Copy Snapshots: Taustaprosessi (esim. OmegaServerissC$ app.js), joka
sC$C$nnC6llisin vC$liajoin (esim. 10s) dumppaa koko SharedArrayBufferin (tai
sen kC$ytetyn osan) levylle binC$C$ritiedostona (snapshot.bin) ilman
sC$ikeiden lukitsemista.
2. Fast Recovery: Kun tietokanta (app.js) kC$ynnistyy, se tarkistaa onko
snapshot.bin olemassa. Jos on, se lataa sen suoraan SharedArrayBufferiin ennen
worker-sC$ikeiden ja viestivC$ylien avaamista.
Ota huomioon DESIGN.md tiedoston arkkitehtuuri, erityisesti ZERO_COPY_SNAPSHOTS
ja APPEND_ONLY_LOG.
Alla on nykyinen koodipohja. Anna minulle pC$ivitetyt versiot tarvittavista
tiedostoista (todennC$kC6isesti app.js ja core.js) ja kerro, miten integraatio
tehdC$C$n.
EOF
bundle_file "lockfree-ram-db/DESIGN.md" "$PROMPT1"
bundle_file "lockfree-ram-db/core.js" "$PROMPT1"
bundle_file "lockfree-ram-db/app.js" "$PROMPT1"
echo "Generoidaan Prompt 2: O(1) Indeksointimoottori..."
PROMPT2="/opt/edge/prompts/PROMPT_2_INDEXING.txt"
cat << 'EOF' > "$PROMPT2"
Tavoite: Rakentaa Lock-free RAM tietokantaamme O(1) -tasoinen
indeksointimoottori (Atomic Hash Table).
Nykyinen tilanne: Pystymme hakemaan dataa vain suoralla UID-avaimella API
Gatewaysta.
Ominaisuudet:
1. Haluan uuden lock-free tietorakenteen (esim. erillinen Int32Array nC$kymC$
jaettuun muistiin), johon workerit voivat pC$ivittC$C$ indeksit atomisesti
(Atomics.compareExchange) INSERT/UPDATE operaatioiden yhteydessC$.
2. Indeksin avulla API Gatewayn Lock-free Direct Read (api-gateway.js) voi
hakea dokumentteja avain-arvo -pareilla (esim. hae sensor="p4_temp" ->
palauttaa uid:n).
3. Hash Table -tC6rmC$ykset hoidetaan Linear Probing -menetelmC$llC$.
Ota huomioon DESIGN.md tiedoston INDEXING_ENGINE ja ATOMIC_HASH_TABLE
sC$C$nnC6t.
Alla on nykyinen koodipohja. Anna pC$ivitetyt versiot tiedostoista (core.js,
worker.js ja api-gateway.js).
EOF
bundle_file "lockfree-ram-db/DESIGN.md" "$PROMPT2"
bundle_file "lockfree-ram-db/core.js" "$PROMPT2"
bundle_file "lockfree-ram-db/worker.js" "$PROMPT2"
bundle_file "edge/api-gateway.js" "$PROMPT2"
echo "Generoidaan Prompt 3: Graafisidokset ja relaatiot..."
PROMPT3="/opt/edge/prompts/PROMPT_3_RELATIONS.txt"
cat << 'EOF' > "$PROMPT3"
Tavoite: Laajentaa Lock-free RAM tietokannan muistiasettelua (Memory Layout)
tukemaan huippunopeita, suoria muistiosoitin-relaatioita olioiden vC$lillC$
(Graafisidokset).
Ominaisuudet:
1. Uudet OP_CODEt: OP_LINK (Luo relaatio kahden UID:n vC$lille) ja OP_UNLINK
(Poista relaatio).
2. Olion rakenteen (ATOMIC_POINTER_DIRECTORY) laajentaminen siten, ettC$ se
tukee relaatioiden offsetteja.
3. Relaatioiden tulee olla kytkettynC$ lock-free -hengessC$ niin, ettC$ API
Gateway pystyy lukemaan (GET) olion lisC$ksi sen suorat relaatiot
vC$littC6mC$sti ilman worker-jonoa.
Ota huomioon DESIGN.md tiedoston RELATIONSHIP_BINDINGS ja ATOMIC_POINTER_DIRECT
ORY sC$C$nnC6t. UID:t on rajoitettu 7-bittiseen ASCII-muotoon
(ASCII_IDENTIFIERS).
Alla on nykyinen koodipohja. Anna minulle pC$ivitetyt versiot (core.js,
worker.js, app.js ja api-gateway.js).
EOF
bundle_file "lockfree-ram-db/DESIGN.md" "$PROMPT3"
bundle_file "lockfree-ram-db/core.js" "$PROMPT3"
bundle_file "lockfree-ram-db/worker.js" "$PROMPT3"
bundle_file "edge/api-gateway.js" "$PROMPT3"
echo -e "
[OK] Promptit generoitu onnistuneesti kansioon: /opt/edge/prompts/"
echo "Voit nyt kopioida kunkin tiedoston sisC$llC6n (esim. cat
/opt/edge/prompts/PROMPT_1_SNAPSHOTS.txt | xclip -sel clip) ja aloittaa uuden
chatin AI:n kanssa!"
Miten toimit jatkossa:
* Aja yllC$ oleva bash-skripti.
* Koska sovimme, ettC$ Snapshotit/WAL on tC$rkein seuraava ominaisuus, aloita
tulostamalla ensimmC$isen promptin sisC$ltC6 ruudulle:
cat /opt/edge/prompts/PROMPT_1_SNAPSHOTS.txt
* Kopioi koko tuloste (teksti ja sen perC$C$n tulostuvat koodiblokit) ja
liitC$ se tC$ysin uuteen, tyhjC$C$n AI-keskusteluun.
* Tuossa uudessa keskustelussa rakennatte snapshot.bin -dumppauksen. Kun
saatte sen toimimaan, siirrC$ muutokset koneellesi.
* Sen jC$lkeen voit ajaa skriptin uudelleen (jotta Prompt 2 saa uusimmat
koodisi) ja jatkaa vastaavasti ominaisuuksien kehittC$mistC$!