-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking issue: SQL migration #659
Comments
Ref #659 Better enforces the difference between a column that is `NULL` or a column that contains JSON containing `null`, and removes the need for unsafe manual casting.
Ref #659 Better enforces the difference between a column that is `NULL` or a column that contains JSON containing `null`, and removes the need for unsafe manual casting.
Need to kind of figure out what to do for the waitlist and booth. I think the other stuff that's in Redis right now can be separate tables, but we only have one waitlist and we only have one booth. One idea is to just use a waitlist table a la:
Where position is unique, position = 0 is the current booth, history ID is only populated if position = 0. |
Using a transaction for the booth would have one negative effect with the current simple setup. Kysely + SQLite only uses a single database connection. You wouldn't be able to handle any requests while an advance is in progress, and an advance includes potential async work (fetching a stream URL for soundcloud). It could be aided by using a threadpool to handle requests, with one connection each, and a dedicated thread for handling advances. |
Initial perf test for WLK looks … decent (playlists and history load in dozens of milliseconds instead of 500-1500 ms, including network latency), but the single-threadedness is definitely a problem. |
üWave is moving away from MongoDB to simplify operations (and probably get a performance boost to boot). For a small self-hosted service operating on relational data, MongoDB was a poor choice.
Initially, the focus will be on SQLite, which will have no trouble handling a typical server with a few dozen simultaneous users despite being synchronous. We could use worker threads to improve concurrency later if needed.
#637 contains a large chunk of the work, migrating all MongoDB uses to SQLite.
Follow up items, roughly in order:
npx u-wave/core#migrate
to move over your database, or something?)The text was updated successfully, but these errors were encountered: