Stability improvements

This commit is contained in:
Pijus Kamandulis 2025-03-12 22:00:30 +02:00
parent 813b9faeaa
commit b2516eda9f
5 changed files with 15 additions and 9 deletions

View File

@ -90,6 +90,7 @@ func runTestsWithPreset(t *testing.T, name string, testPreset testPreset, f test
ts := runTestServerCustomConfig(serverConfig) ts := runTestServerCustomConfig(serverConfig)
defer ts.Server.Close() defer ts.Server.Close()
defer ts.DataStore.Close()
client, err := azcosmos.NewClientFromConnectionString( client, err := azcosmos.NewClientFromConnectionString(
fmt.Sprintf("AccountEndpoint=%s;AccountKey=%s", ts.URL, config.DefaultAccountKey), fmt.Sprintf("AccountEndpoint=%s;AccountKey=%s", ts.URL, config.DefaultAccountKey),

View File

@ -10,6 +10,7 @@ import (
"github.com/pikami/cosmium/internal/datastore" "github.com/pikami/cosmium/internal/datastore"
badgerdatastore "github.com/pikami/cosmium/internal/datastore/badger_datastore" badgerdatastore "github.com/pikami/cosmium/internal/datastore/badger_datastore"
mapdatastore "github.com/pikami/cosmium/internal/datastore/map_datastore" mapdatastore "github.com/pikami/cosmium/internal/datastore/map_datastore"
"github.com/pikami/cosmium/internal/logger"
) )
func main() { func main() {
@ -19,11 +20,13 @@ func main() {
switch configuration.DataStore { switch configuration.DataStore {
case config.DataStoreBadger: case config.DataStoreBadger:
dataStore = badgerdatastore.NewBadgerDataStore() dataStore = badgerdatastore.NewBadgerDataStore()
logger.InfoLn("Using Badger data store")
default: default:
dataStore = mapdatastore.NewMapDataStore(mapdatastore.MapDataStoreOptions{ dataStore = mapdatastore.NewMapDataStore(mapdatastore.MapDataStoreOptions{
InitialDataFilePath: configuration.InitialDataFilePath, InitialDataFilePath: configuration.InitialDataFilePath,
PersistDataFilePath: configuration.PersistDataFilePath, PersistDataFilePath: configuration.PersistDataFilePath,
}) })
logger.InfoLn("Using in-memory data store")
} }
server := api.NewApiServer(dataStore, &configuration) server := api.NewApiServer(dataStore, &configuration)

View File

@ -28,6 +28,7 @@ func NewBadgerDataStore() *BadgerDataStore {
func (r *BadgerDataStore) Close() { func (r *BadgerDataStore) Close() {
r.db.Close() r.db.Close()
r.db = nil
} }
func (r *BadgerDataStore) DumpToJson() (string, error) { func (r *BadgerDataStore) DumpToJson() (string, error) {

View File

@ -20,14 +20,14 @@ var (
const ( const (
ResponseSuccess = 0 ResponseSuccess = 0
ResponseUnknown = 100 ResponseUnknown = 100
ResponseFailedToParseConfiguration = 101 ResponseFailedToParseConfiguration = 101
ResponseFailedToLoadState = 102 ResponseFailedToLoadState = 102
ResponseFailedToParseRequest = 103 ResponseFailedToParseRequest = 103
ResponseServerInstanceAlreadyExists = 104 ResponseServerInstanceAlreadyExists = 104
ResponseServerInstanceNotFound = 105 ResponseServerInstanceNotFound = 105
ResponseFailedToStartServer = 106 ResponseFailedToStartServer = 106
ResponseCurentDataStoreDoesNotSupportStateLoading = 107 ResponseCurrentDataStoreDoesNotSupportStateLoading = 107
ResponseDataStoreNotFound = 200 ResponseDataStoreNotFound = 200
ResponseDataStoreConflict = 201 ResponseDataStoreConflict = 201

View File

@ -65,6 +65,7 @@ func StopServerInstance(serverName *C.char) int {
if serverInstance, ok := getInstance(serverNameStr); ok { if serverInstance, ok := getInstance(serverNameStr); ok {
serverInstance.server.Stop() serverInstance.server.Stop()
serverInstance.dataStore.Close()
removeInstance(serverNameStr) removeInstance(serverNameStr)
return ResponseSuccess return ResponseSuccess
} }
@ -100,7 +101,7 @@ func LoadServerInstanceState(serverName *C.char, stateJSON *C.char) int {
} }
return ResponseSuccess return ResponseSuccess
} }
return ResponseCurentDataStoreDoesNotSupportStateLoading return ResponseCurrentDataStoreDoesNotSupportStateLoading
} }
return ResponseServerInstanceNotFound return ResponseServerInstanceNotFound