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

[FR] Pluggable storage engines? #562

Open
akamensky opened this issue Jul 21, 2023 · 3 comments
Open

[FR] Pluggable storage engines? #562

akamensky opened this issue Jul 21, 2023 · 3 comments

Comments

@akamensky
Copy link

Is your feature request related to a problem? Please describe.
Current storage relies on whisper type. A brief look into code seems it is very intertwined with the code.

Describe the solution you'd like
An abstraction interface to the storage to be able to experiment with alternative storage types or even have multiple storage types shipped with go-carbon.

Additional context
N/A

@deniszh
Copy link
Member

deniszh commented Jul 21, 2023

Hi @akamensky
Not sure if easy/possible to do, because indeed whisper is everywhere. I had idea to implement alternative storage as whisper compatible by interface, which make sense IMO, because we have enough scalable but not whisper compatible storage for Graphite - Victoria Metrics, InfluxDB, Graphite Clickhouse etc.

@akamensky
Copy link
Author

@deniszh I am quite interested in alternative storage options and am willing to implement at least one, but I need a list of methods that such storage driver need to implement.

@deniszh
Copy link
Member

deniszh commented Jul 21, 2023

Hi @akamensky
You can check e.g. https://pkg.go.dev/github.com/go-graphite/go-whisper or go-whisper code. But as I said currently go-carbon is quite intertwined with whisper, maybe it's easier to build new engine based on carbon-clickhouse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants