bogdanovich / siberite

Siberite is a simple, lightweight, leveldb backed message queue written in Go.
Other
588 stars 23 forks source link

goleveldb dependency appears to no longer be maintained #48

Open alyandon opened 1 day ago

alyandon commented 1 day ago

@bogdanovich

I noticed you merged my old PR so thought I'd bring this to your attention.

It looks like goleveldb may no longer be under active maintenance: https://github.com/syndtr/goleveldb/issues/400. I found goleveldb infinite table "bloat" issues with my particular usage of siberite (very rapid key turnover - I doubt keys ever made it out of the memstore) that made me have to look for other queue solutions. Unfortunately, despite my best efforts I was never able to fully track down the cause of the bloat in goleveldb - my only suspicion was old keys were not being tombstoned correctly and removed during compaction cycles.

In the issue I linked above, a suggested alternative that appears to be under active development is https://github.com/lotusdblabs/lotusdb. I have no idea how much of a "drop in" replacement it would be but maybe worth considering if you are actively planning on continuing to work on siberite.

bogdanovich commented 1 day ago

Thanks for bringing this up. Have you tried to use siberite with the latest goleveldb version (instead of the vendored one)? I'm not currently planning to actively work on siberite.

alyandon commented 1 day ago

I did try and keep up with goleveldb releases to see if any resolved the issue but none of them did. However, it has probably been at least 2 years since I last tried and I've long since moved to a different team so not working on queue related things internally anymore.