Replace metadata backend from Redis to PostgreSQL. Updated constantly.
The following benefits are expected of a switch:
- data integrity guarantees with a truly acid-compliant database
- significant performance improvements and sub-millisecond search.
Tentative Disclaimer and Downstream Limitations
This is a downstream feature and so will be subject to maintenance and limitations.
- only archive, category and tank SQL support
- only guarantee docker-side integration tests will pass. No windows, brew, or bare linux support provided unless you are developing. Similarly, only docker environment will be supported.
- Running Postgres database will not be included in the AIO instance; use a separate container.
- Redis will not be removed, as we will still use it for cache and config.
- Migration will not be provided. Use of API to migrate data is expected.
- No feature requests. Only will aim for feature parity with existing upstream dev branch.
- possible desertion/permanent loss of support due to incompatibility/unsolvable problems/boredom or other trivial reasons.
What you should know and your responsibilities in using this feature:
- understanding and accepting the MIT license and no warranty
- knowing how SQL works and backing up your data in the event of data loss
- knowing how to call rest APIs and using an API client to migrate data.
- configuring your own Postgres server if needed and see fit (configuration should not be expected for server to work)
- debugging and troubleshooting any issue that might come up with postgres.
If you are fine with how LRR is so far performance/data integrity-wise, or are not familiar with any of the above responsibilitiies or prerequisites, then this feature is probably not worth trying.
AI
AI will be used (and probably used a lot).
While I aim to understand every line of code in the end, I'm also an LRR user and trying to solve a real problem that I'm currently facing and would like to benefit a lot from this feature. As much as I love LRR, every day I don't have this feature is a day that using LRR drives me another inch up the mile-long fucking wall. I also don't plan to do this major rewrite without using/experimenting with AI. So I'm not just doing this as some masochistic exercise in writing tedious postgres CRUD.
That said, I will be making all the architectural decisions (like what the schema will be, how things should be written, how I like things done), so that I don't have to end up in merge conflict hell everytime a change is made upstream. And I will be using it, writing tests for it, all that kind of stuff.
Replace metadata backend from Redis to PostgreSQL. Updated constantly.
The following benefits are expected of a switch:
Tentative Disclaimer and Downstream Limitations
This is a downstream feature and so will be subject to maintenance and limitations.
What you should know and your responsibilities in using this feature:
If you are fine with how LRR is so far performance/data integrity-wise, or are not familiar with any of the above responsibilitiies or prerequisites, then this feature is probably not worth trying.
AI
AI will be used (and probably used a lot).
While I aim to understand every line of code in the end, I'm also an LRR user and trying to solve a real problem that I'm currently facing and would like to benefit a lot from this feature. As much as I love LRR, every day I don't have this feature is a day that using LRR drives me another inch up the mile-long fucking wall. I also don't plan to do this major rewrite without using/experimenting with AI. So I'm not just doing this as some masochistic exercise in writing tedious postgres CRUD.
That said, I will be making all the architectural decisions (like what the schema will be, how things should be written, how I like things done), so that I don't have to end up in merge conflict hell everytime a change is made upstream. And I will be using it, writing tests for it, all that kind of stuff.