Skip to content
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

Refactor SQLite Implementation #121

Open
gedw99 opened this issue Aug 15, 2024 · 4 comments
Open

Refactor SQLite Implementation #121

gedw99 opened this issue Aug 15, 2024 · 4 comments
Labels
core Related to core dependencies Dependency related

Comments

@gedw99
Copy link

gedw99 commented Aug 15, 2024

It’s got wal2 support and so will have higher perf for multi writer

https://www.reddit.com/r/golang/comments/1esdeq5/sqlite_driver_ncrucesgosqlite3_v0180/

@gedw99
Copy link
Author

gedw99 commented Aug 15, 2024

Not that this is not backwards compatible .

the ABI is different so best to test carefully on an existing project first .

@ayuhito
Copy link
Member

ayuhito commented Aug 15, 2024

@gedw99, thanks for the notification! I'm actually partially debating whether I should remove github.com/ncruces/go-sqlite3 in favour of the DuckDB SQLite extension, if there isn't a major change in binary size, since that would simplify our database implementation significantly with less drivers to worry about.

The performance of the SQLite implementation doesn't matter since it has barely any user metadata. Most of the heavy lifting and optimisations should be focused around our DuckDB implementations.

@ayuhito ayuhito added dependencies Dependency related core Related to core labels Aug 15, 2024
@ayuhito
Copy link
Member

ayuhito commented Aug 15, 2024

To be fair... I don't think it even matters if we just use plain old DuckDB for this and cut SQLite out of the entire equation for this. Since we only have one user row with a couple hundred website rows max to worry about, and I don't plan on adding a teams feature to the self-hosted product at least, the performance overhead of using an OLAP DB for this purpose would be negligible...

@gedw99
Copy link
Author

gedw99 commented Aug 16, 2024

I also like aspects of Duckdb.

I also like SQLITE because I can easily do MASTER / MASTER replication with it using Marmot ( NATS Jetstream. Works on any cloud.

@ayuhito ayuhito changed the title Update github.com/ncruces/go-sqlite3 Refactor SQLite Implementation Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Related to core dependencies Dependency related
Projects
None yet
Development

No branches or pull requests

2 participants