16a4b8f87e Replace file-based ClientTextStore with SQLite implementation (#5553)
* Replace file-based ClientTextStore with SQLite implementation

SQLite provides indexed lookups instead of loading/parsing a 5MB+ text file.
This should significantly reduce the ~142ms spent on loadTextStore during
game loading.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add S3 sync for SQLite client text store

- Store dbPath and optional persister reference in SqliteClientTextStore
- Sync database file to cloud storage in saved() method
- Download from cloud storage on load if local file doesn't exist
- Pass persister to createWithData for new game creation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Sync SQLite to S3 immediately after migration

Prevents data loss if server restarts before saved() is called after
migrating from old text-based format to SQLite.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 16:01:52 -08:00
2025-03-30 11:19:46 -07:00
2025-09-24 08:13:22 -07:00
2014-11-16 21:03:14 -08:00
S
Description
No description provided
Readme
9.4 GiB
Languages
Scala 44.5%
C++ 19.9%
C# 16.6%
Starlark 10.1%
Go 3.5%
Other 5.3%