filecoin-project / lotus

Reference implementation of the Filecoin protocol, written in Go
https://lotus.filecoin.io/
Other
2.81k stars 1.25k forks source link

lmdb: fork lmdb-go and apply upstream updates #5345

Open raulk opened 3 years ago

raulk commented 3 years ago

Unfortunately the go lmdb binding we're using (https://github.com/bmatsuo/lmdb-go) is unmaintained, and it hasn't been updated to latest lmdb versions. We need to create a fork and update lmdb from 0.9.19 to 0.9.27.

See changelog here: https://github.com/LMDB/lmdb/blob/mdb.RE/0.9/libraries/liblmdb/CHANGES.

It's also possible that we need to apply some freelist fixes, as found by the turbogeth team: https://github.com/ledgerwatch/turbo-geth/blob/master/ethdb/kv_lmdb.go#L31.

Blocks #4992.

raulk commented 3 years ago

We might be able to just use https://github.com/ledgerwatch/lmdb-go.