diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-03-06 18:58:23 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-03-06 18:58:23 +0300 |
| commit | 17b68bc21fae99c17ec48e046e67a643b9d159bb (patch) | |
| tree | 00b2da2f55876e720aecccc10dbc59232da768db /storage | |
| parent | edfd43c52ae3f2fa16f6ab5d64cb48218a2c0a64 (diff) | |
Enha (rag): async writes
Diffstat (limited to 'storage')
| -rw-r--r-- | storage/storage.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/storage/storage.go b/storage/storage.go index 9ad9745..57631da 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -102,6 +102,22 @@ func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo { logger.Error("failed to open db connection", "error", err) return nil } + // Enable WAL mode for better concurrency and performance + if _, err := db.Exec("PRAGMA journal_mode = WAL;"); err != nil { + logger.Warn("failed to enable WAL mode", "error", err) + } + if _, err := db.Exec("PRAGMA synchronous = NORMAL;"); err != nil { + logger.Warn("failed to set synchronous mode", "error", err) + } + // Increase cache size for better performance + if _, err := db.Exec("PRAGMA cache_size = -2000;"); err != nil { + logger.Warn("failed to set cache size", "error", err) + } + // Log actual journal mode for debugging + var journalMode string + if err := db.QueryRow("PRAGMA journal_mode;").Scan(&journalMode); err == nil { + logger.Debug("SQLite journal mode", "mode", journalMode) + } p := ProviderSQL{db: db, logger: logger} if err := p.Migrate(); err != nil { logger.Error("migration failed, app cannot start", "error", err) |
