missing updates #5

Merged
mats merged 77 commits from refactor/http-proxy into main 2025-10-14 23:12:06 +02:00
2 changed files with 43 additions and 47 deletions
Showing only changes of commit 6345d91ef7 - Show all commits

View File

@@ -2,8 +2,6 @@ package main
import (
"encoding/gob"
"fmt"
"os"
"time"
)
@@ -23,48 +21,48 @@ func NewDiskStorage(stateFile string) (*DiskStorage, error) {
stateFile: stateFile,
LastSaves: make(map[uint64]int64),
}
err := ret.loadState()
return ret, err
//err := ret.loadState()
return ret, nil
}
func saveMessages(_ interface{}, _ CartId) error {
// No-op: legacy event log persistence removed in oneof refactor.
return nil
}
// func saveMessages(_ interface{}, _ CartId) error {
// // No-op: legacy event log persistence removed in oneof refactor.
// return nil
// }
func getCartPath(id string) string {
return fmt.Sprintf("data/%s.prot", id)
}
// func getCartPath(id string) string {
// return fmt.Sprintf("data/%s.prot", id)
// }
func loadMessages(_ Grain, _ CartId) error {
// No-op: legacy replay removed in oneof refactor.
return nil
}
// func loadMessages(_ Grain, _ CartId) error {
// // No-op: legacy replay removed in oneof refactor.
// return nil
// }
func (s *DiskStorage) saveState() error {
tmpFile := s.stateFile + "_tmp"
file, err := os.Create(tmpFile)
if err != nil {
return err
}
defer file.Close()
err = gob.NewEncoder(file).Encode(s.LastSaves)
if err != nil {
return err
}
os.Remove(s.stateFile + ".bak")
os.Rename(s.stateFile, s.stateFile+".bak")
return os.Rename(tmpFile, s.stateFile)
}
// func (s *DiskStorage) saveState() error {
// tmpFile := s.stateFile + "_tmp"
// file, err := os.Create(tmpFile)
// if err != nil {
// return err
// }
// defer file.Close()
// err = gob.NewEncoder(file).Encode(s.LastSaves)
// if err != nil {
// return err
// }
// os.Remove(s.stateFile + ".bak")
// os.Rename(s.stateFile, s.stateFile+".bak")
// return os.Rename(tmpFile, s.stateFile)
// }
func (s *DiskStorage) loadState() error {
file, err := os.Open(s.stateFile)
if err != nil {
return err
}
defer file.Close()
return gob.NewDecoder(file).Decode(&s.LastSaves)
}
// func (s *DiskStorage) loadState() error {
// file, err := os.Open(s.stateFile)
// if err != nil {
// return err
// }
// defer file.Close()
// return gob.NewDecoder(file).Decode(&s.LastSaves)
// }
func (s *DiskStorage) Store(id CartId, _ *CartGrain) error {
// With the removal of the legacy message log, we only update the timestamp.

14
main.go
View File

@@ -49,10 +49,10 @@ func spawn(id CartId) (*CartGrain, error) {
ret.lastChange = time.Now().Unix()
// Legacy loadMessages (no-op) retained; then replay append-only event log
_ = loadMessages(ret, id)
_ = ReplayCartEvents(ret, id)
//_ = loadMessages(ret, id)
err := ReplayCartEvents(ret, id)
return ret, nil
return ret, err
}
func init() {
@@ -65,7 +65,7 @@ type App struct {
}
func (a *App) Save() error {
hasChanges := false
a.pool.mu.RLock()
defer a.pool.mu.RUnlock()
for id, grain := range a.pool.GetGrains() {
@@ -73,7 +73,7 @@ func (a *App) Save() error {
continue
}
if grain.GetLastChange() > a.storage.LastSaves[uint64(id)] {
hasChanges = true
err := a.storage.Store(id, grain)
if err != nil {
log.Printf("Error saving grain %s: %v\n", id, err)
@@ -81,10 +81,8 @@ func (a *App) Save() error {
}
}
if !hasChanges {
return nil
}
return a.storage.saveState()
}
func (a *App) HandleSave(w http.ResponseWriter, r *http.Request) {