orderfile32
pure golang key database support key have value
The orderfile32 is standard alone fast key value database. It have two version. one is this. two is orderfilepeta. this version is open source version. this version support database size is 32gb. max key add value length is 128kb. orderfilepeta database max size support 16peta byte. max key add value length 32mb. orderfile peta for commerce use only. if you want orderfilepeta you can contact me by email [email protected]. normal user orderfile32 is enough for using. 32gb is compressed size. this size can contain about 2billion normal item data.
this projec I devloped many years. now I release it for public. if you like it. you can use it. you will found it is very good.
feature
- hight performance
- log database.
- support application crash recover.
- small database file.
- embedable
- support rand get from database.
- support max match for word split.
- support find previous/next key by current key.
- support zip snappy xz lz4 flate compress type.
- support database compress after used long time.
- support multi core.
- support multi thread.
- support automatic recover.
- support fix key length.
- support unique key defined by end bytes.
- support normal application and large data application.
- support fill function using key suffix.
install
got get github.com/epowsal/orderfile32
simple example code
package main
import "github.com/epowsal/orderfile32"
db,dber:=NewOrderfile("myfirstdb",0,0,[]byte{0})
if dber!=nil {
panic(dber)
}
db.PushKey([]byte("key"),[]byte("value"))
fkey,bfkey:=db.FillKey([]byte("key"))
if bfkey==false {
panic("error")
}
fmt.Println(fkey)
db.Close()
benchmark compare to other
write benchmark
ordefile32 write 1 million speed test screenshot:
badger write 1 million speed test screenshot:
bolt write 200 thousand speed test screenshot:
orderfilepeta write 1 million speed test screenshot:
orderfile32 write 1 million items use 7.1 second.
badger write 1 million items use 26.7 second.
bolt write 0.2 million items use 90 second.
orderfilepeta write 1 million items use 15.9 second.
so orderfile32 if the fastest writing database.the large database orderfilepeta is faster than badger.
read benchmark
ordefile32 read 1 million times speed test screenshot:
badger read 1 million times speed test screenshot:
bolt read 0.2 million times speed test screenshot:
ordefilepeta read 1 million times speed test screenshot:
after test get:
orderfile32 read 1 million items first time read use 3.9 second. second time read use 3.0 second.
badger read 1 million items use 6.5 second.
bolt read 0.2 million items use 0.5 second.
orderfilepeta read 1 million items. first read use 6.5 second. second read use 6.1 second.
so if bolt read 1 million items will use 2.5 second.
so bolt is the fastest reading database.
compare orderfile32 with badger. orderfile32 is almost two time faster than badger.
compare orderfilepeta with badger. they almost equal.
database size compare:
orderfile32 1 million item file size screenshot:
badger 1 million item file size screenshot:
bolt 0.2 million item file size screenshot:
orderfilepeta 1 million item file size scrrenshot:
orderfile32 1 million items database file size is 19mb.
badger 1 million items database file size is 26.7mb.
bolt 0.2 million items database file size is 16mb.
orderfilepeta 1 million items database file size if 20mb.
bolt 5 times size is 80mb.
so bolt have largest database file size.
orderfile32 and orderfilepeta have smallest database file size.
thanks and support me by donate
paypal:
捐赠以表示感谢与支持
支付宝: