couchbase / moss

moss - a simple, fast, ordered, persistable, key-val storage library for golang
Other
959 stars 58 forks source link

Q: Transaction performance #54

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hi, this project looks very interesting. I have a lot of transaction writes, instead of multiple writes per transaction.

How many transaction writes of small data can moss handle per second on average ssd? For example with BoltDB it was only about 250, so I wonder if this project can perform better or if it is also limited by the file system.

hisundar commented 6 years ago

Hi, that is a hard question to answer directly since the correct answer would be "it depends". SSD type, number of elements in each transaction, average key/value sizes, number of writer threads. However, moss-store is an LSM based engine unlike boltdb which uses an MVCC B+Tree, therefore architecturally speaking it should be a much more performant choice for transactional writes. The link below has benchmark results for indexing performance http://www.blevesearch.com/bleve-bench/indexing.html but again the use case may or may not be the same as the one you seek, so the results should be interpreted accordingly. Thanks

ghost commented 6 years ago

I was interested because I was considering moss as event store and events come from anywhere so I cannot group transactions together. Plus it can be 1k events/s.