Download Game! Currently 71 players and visitors. Last logged in:KandaharSecderArasakaFrenor

Blitzer's Blog >> 71959

Back to blogs index
Posted: 03 Sep 2026 16:09 [ permalink ]
user@elli:~/Downloads/Remote/OB$ ls -ltra
total 72
drwxr-sr-xB 8 user userB 4096 SepB 3 14:33 ..
-rw-r--r--B 1 user userB 1542 SepB 3 14:38 worker.js
-rw-r--r--B 1 user userB 2812 SepB 3 14:47 index.html
-rw-r--r--B 1 user user 23214 SepB 3 14:55 package-lock.json
drwxr-sr-x 44 user userB 4096 SepB 3 14:55 node_modules
-rw-r--r--B 1 user userB B317 SepB 3 14:55 package.json
drwxr-sr-xB 2 user userB 4096 SepB 3 14:55 data
-rw-r--r--B 1 user userB 7494 SepB 3 14:59 obase.js
-rw-r--r--B 1 user userB 5728 SepB 3 16:03 obase-node.js
-rw-r--r--B 1 user userB 3263 SepB 3 16:04 server.js
drwxr-sr-xB 4 user userB 4096 SepB 3 16:04 .
user@elli:~/Downloads/Remote/OB$ node server.js
[Init] Ladataan tietokanta...
[Init] Soitettiin 1 WAL-tapahtumaa snapshotin pC$C$lle.
{"level":30,"time":1788440673563,"pid":28183,"hostname":"elli","msg":"Server
listening at http://127.0.0.1:3000"}
O-Base API Gateway is running on http://localhost:3000
{"level":30,"time":1788440673564,"pid":28183,"hostname":"elli","msg":"Server
listening at http://192.168.111.83:3000"}
{"level":30,"time":1788440673564,"pid":28183,"hostname":"elli","msg":"Server
listening at http://100.102.190.120:3000"}

==

Palvelin on nC$tisti pystyssC$ ja lokista nC$emme (Soitettiin 1
WAL-tapahtumaa...), ettC$ aiemmin lisC$C$mC$mme James Bond -tietue palautui
turvallisesti WAL-lokista RAM-muistiin!

Kokeillaan nyt itse taustakompaktiota (Snapshotting).

Aja toisessa terminaalissa nC$mC$ komennot perC$jC$lkeen:

==

user@elli:~/Downloads/Remote/OB$ { curl -X POST http://localhost:3000/api/admin
/compact; echo "";  ls -ltra data/;  cat data/snapshot.md; }
{"status":"Kompaktio aloitettu taustalla"}
total 12
drwxr-sr-x 4 user user 4096 Sep  3 16:04 ..
-rw-r--r-- 1 user user    0 Sep  3 16:07 crm_wal.jsonl
-rw-r--r-- 1 user user  114 Sep  3 16:07 snapshot.md
drwxr-sr-x 2 user user 4096 Sep  3 16:07 .
# Collection: asiakkaat
> Metadata: {"schema":"free"}

## Object: crm_007
- nimi: James Bond
- status: aktiivinen
user@elli:~/Downloads/Remote/OB$ 


==

[Snapshot] Aloitetaan taustakompaktio...
{"level":30,"time":1788440879291,"pid":28183,"hostname":"elli","reqId":"req-3",
"res":{"statusCode":200},"responseTime":2.812802999978885,"msg":"request
completed"}
[Snapshot] Kompaktio onnistui. Vanha WAL siivottu.

==

TC$ydellistC$! Nyt meillC$ on koossa koko perusarkkitehtuuri: Isomorfinen
RAM-ydin, salamannopea API-rajapinta, asynkroninen WAL-tallennus, lock-free
taustakompaktio ja kone/ihmisluettava AST-MD muoto. Ja mikC$ tC$rkeintC$,
kaikki toimii saumattomasti!

Koska UNIX-filosofiana on "tee yksi asia ja tee se hyvin", itse
tietokantamoottori (O-Base) alkaa olla valmis. Olemme rakentaneet
minimalistisen, mutta C$C$rimmC$isen tehokkaan datavaraston, joka abstrahoi
levyn I/O:n tC$ysin API-rajapinnan tieltC$.

Seuraavaksi meidC$n kannattaa rakentaa tyC6kaluja (tools) tai vC$likerroksia
(middleware), jotka hyC6dyntC$vC$t tC$tC$ tietokantaa, aivan kuten
Unix-tyC6kalut putkittuvat toisiinsa.