Download Game! Currently 80 players and visitors. Last logged in:SahadevCaitlineMarayanaVihaan

Blitzer's Blog >> 71930

Back to blogs index
Posted: 01 Sep 2026 07:08 [ permalink ]
User@elli:/opt/edge$ ./start.sh
tail -f /opt/edge/gateway.log
KC$ynnistetC$C$n EDGE_API_GATEWAY (portti 3000)...
API Gateway kC$ynnistetty taustalle PID:llC$ 24769.
Voit seurata lokeja komennolla: tail -f /opt/edge/gateway.log
[Server] No snapshot found, starting fresh
[Server] Core initialized                                        [Server]
Allocated 3146112 bytes for buses                       [Server] IN bus
created                                          [Server] Worker 0 spawned    
                                   [Server] Worker 1 spawned                  
                     [Server] Snapshot timer started (every 10000ms)          
       [Worker 0] Starting...                                          
[Worker 1] Starting...                                          
{"level":30,"time":1788235629893,"pid":24769,"hostname":"elli","msg":"Server
listening at http://127.0.0.1:3000"}                 {"level":30,"time":1788235
629896,"pid":24769,"hostname":"elli","msg":"Server listening at
http://192.168.111.83:3000"}
{"level":30,"time":1788235629896,"pid":24769,"hostname":"elli","msg":"Server
listening at http://100.102.190.120:3000"}
{"level":30,"time":1788235629897,"pid":24769,"hostname":"elli","msg":"API
Gateway & Swagger pystyssC$!"}
[Snapshot] Error: TypeError: this.core.getSharedArrayBuffer is not a function 
                                                       at OmegaServer.takeSnaps
hot (/opt/lockfree-ram-db/app.js:133:29)                                      
                           at Timeout._onTimeout (/opt/lockfree-ram-db/app.js:1
15:12)       at listOnTimeout (node:internal/timers:605:17)                  
at process.processTimers (node:internal/timers:541:7)        [Snapshot] Error:
TypeError: this.core.getSharedArrayBuffer is not a function                   
                                     at OmegaServer.takeSnapshot
(/opt/lockfree-ram-db/app.js:133:29)                                          
                       at Timeout._onTimeout (/opt/lockfree-ram-db/app.js:115:1
2)       at listOnTimeout (node:internal/timers:605:17)                   at
process.processTimers (node:internal/timers:541:7)        [Snapshot] Error:
TypeError: this.core.getSharedArrayBuffer is not a function                   
                                     at OmegaServer.takeSnapshot
(/opt/lockfree-ram-db/app.js:133:29)                                          
                       at Timeout._onTimeout (/opt/lockfree-ram-db/app.js:115:1
2)       at listOnTimeout (node:internal/timers:605:17)                   at
process.processTimers (node:internal/timers:541:7)

TC$mC$ on aivan loistava esimerkki siitC$, miksi hajautettu arkkitehtuurikehity
s tekoC$lyn kanssa vaatii tarkkuutta!
MikC$ meni pieleen?
TC$ssC$ kC$vi klassinen tekoC$lyn "koodin yhdistC$misen" (merge) virhe. Kun
DevChat-1 rakensi sinulle Snapshot-ominaisuuden, se lisC$si core.js
-tiedostoon metodin getSharedArrayBuffer(). Kuitenkin, kun DevChat-2 rakensi
uuden core_2.js -tiedoston indeksointia varten, se unohti lisC$tC$ tC$mC$n
edellisessC$ chatissa keksityn metodin uuteen versioon.
Kun app.js yrittC$C$ nyt 10 sekunnin vC$lein ottaa dumpin muistista komennolla
this.core.getSharedArrayBuffer(), se kaatuu, koska kyseistC$ metodia ei enC$C$
ole! Onneksi tC$mC$ on taustaprosessi, joten itse API Gateway pysyi pystyssC$,
mutta varmuuskopioita ei synny.
Miten korjata tC$mC$ heti
Avaa /opt/lockfree-ram-db/core.js ja lisC$C$ tC$mC$ puuttuva puoli tusinaa
riviC$ takaisin OmegaCore-luokan sisC$lle (esimerkiksi heti initHashTable()
-metodin perC$C$n):
  /**
   * Returns the underlying SharedArrayBuffer.
   * Used for zero-copy snapshot dumping.
   */
  getSharedArrayBuffer() {
    return this.sab;
  }

Tallenna tiedosto ja buuttaa palvelin uudelleen:
./start.sh
tail -f /opt/edge/gateway.log

Nyt, kun odotat 10 sekuntia, lokiin pitC$isi ilmestyC$ kaunis viesti:
[Snapshot] Written X bytes to /opt/lockfree-ram-db/snapshot.bin
Kun nC$et tuon tekstin, meillC$ on kC$sissC$mme maailmanluokan Lock-free RAM
-tietokanta, joka on paitsi salamannopea ja O(1)-indeksoitu, myC6s
sC$C$nnC6llisesti levylle varmuuskopioituva!
Oletko valmis siirtymC$C$n kolmanteen DevChatiin ja rC$jC$yttC$mC$C$n potin
graafisidoksilla (Relations), kunhan saat tC$mC$n ensin vihreC$lle?