Skip to content

SQL Support for LRR #87

@psilabs-dev

Description

@psilabs-dev

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.

Metadata

Metadata

Assignees

Labels

downstreamA downstream issue (not to be brought upstream).featureNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions