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

Add option to use XTDB in coco/base charts #125

Open
planetf1 opened this issue Feb 9, 2022 · 8 comments
Open

Add option to use XTDB in coco/base charts #125

planetf1 opened this issue Feb 9, 2022 · 8 comments
Assignees

Comments

@planetf1
Copy link
Member

planetf1 commented Feb 9, 2022

Currently both charts use inmemory or the graph repo. In memory isn't persistent - fine for the first steps of a demo, but can be frustrating if developers use the environment as a springboard for further investigation. The graph repo is slow.

Meanwhile xtdb is compelling, the performance figures look good, so we could point people down a better path by including xtdb in these charts

Additionally I need xtdb to support my operator work. Whilst the charts using the operator will be rather different in terms of egeria, the setup of xtdb would follow a similar pattern

@planetf1
Copy link
Member Author

planetf1 commented Apr 1, 2022

Note - XTDB referenced in odpi/egeria#6341

@cmgrote
Copy link
Member

cmgrote commented Sep 22, 2022

@planetf1 let's pick this up when we can? I can help translate configurable back-end from what we've setup in PTS and CTS charts, but would love your help / guidance on how to leverage any PV(C) patterns for the underlying persistence layer.

@planetf1
Copy link
Member Author

Thanks @cmgrote . I've seen the pts/cts example, but I doubt I'll get a chance to look at this until after our upcoming community meeting so probably looking at w/c 10 Oct onwards

@dwolfson
Copy link
Member

dwolfson commented Dec 5, 2022

This would be good - but what XTDB backend should use by default? rocks? Postgres? @cmgrote - any recommendations? I would assume that this isn't production but could be a test environment.

@cmgrote
Copy link
Member

cmgrote commented Dec 5, 2022

Purely for these kinds of test purposes we could go for either XTDB's own native in-memory back-end (no persistence), or for a mixture of RocksDB and/or LMDB. Both of these can run embedded (no external dependencies) while still giving a disk-backed persistence possibility. (Postgres would require an external dependency to run the Postgres system itself, as I don't believe it can run "embedded", at least not with XTDB.)

In fact the config I use when running the CTS and PTS charts is:

  • LMDB as the index store
  • RocksDB as the document store and transaction log

@planetf1
Copy link
Member Author

planetf1 commented Dec 5, 2022

And for ref - supported list: https://docs.xtdb.com/administration/configuring/#_storage

I think we should have 2 options
a) inmemory
b) persistent

At some point we need to move to seperating out the persistence - arguably it's easier, and will be needed if/when we do replication.

The logical stages might be

  • add xtdb/in memory
  • add a simple xtdb/persisted configuration using rocksdb (we already have storage allocated in a persistent configuration for each container)
  • seperate out to external stores - this could be postgres+rocks or whatever we think!

but preferably in rapid progression :-)

@dwolfson
Copy link
Member

dwolfson commented Dec 5, 2022

Indeed - and we are also discussing adding a Postgres option in the Egeria deployment for other purposes anyway..

@planetf1
Copy link
Member Author

@dwolfson Some of this has been done, but you may wish to add more?

@planetf1 planetf1 assigned dwolfson and unassigned cmgrote and planetf1 Jun 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Todo
Development

No branches or pull requests

3 participants