database for protobuf - profanedb or similar

319 views
Skip to first unread message

Tharaneedharan Vilwanathan

unread,
Oct 30, 2018, 2:49:22 PM10/30/18
to golan...@googlegroups.com
Hi All,

I am looking for a database for protobuf, preferably the one that fits Go environment better. I located profanedb. I am wondering if anyone tried it with Go and if there is any example code that I can take a look at. Also, please let me know if there is anything else I should try too.

Regards
dharani

robert engels

unread,
Oct 30, 2018, 3:09:30 PM10/30/18
to Tharaneedharan Vilwanathan, golan...@googlegroups.com
cockroachdb is in Go and uses protobuf to communicate - but it provides pre-built easy to use clients for many languages.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sam Whited

unread,
Oct 30, 2018, 3:22:41 PM10/30/18
to golan...@googlegroups.com
I'm not sure what you mean by "fits the Go environment", but PostgreSQL is very reliable and could easily hold protobufs in the BYTEA type, or of course the JSON representation in the JSONB type. The lib/pq [1] driver is very good.

I tend to think that choosing a niche database for a specific serialization format is a bad idea; instead think about your application and what you care about (speed, reliability, etc.), and about the general type of data you'll be storing (is it time series, highly relational, etc.) then pick something that's well tested and proven which meets your criteria.

—Sam

[1]: https://godoc.org/github.com/lib/pq

Marko Ristin-Kaufmann

unread,
Oct 30, 2018, 5:01:30 PM10/30/18
to Tharaneedharan Vilwanathan, golang-nuts
We are using LMDB with string or numerical keys and protobufs as values.

Be careful with the encoding of  numerical keys, though: complement of two is not in lexicographical order.

We are almost done with open-sourcing a python/go library: https://github.com/Parquery/pynumenc (see the pull request for the work in progress).

I can give you a ping once it's finished (this or the next week).

Cheers Marko 

robert engels

unread,
Oct 30, 2018, 5:31:49 PM10/30/18
to Tharaneedharan Vilwanathan, golan...@googlegroups.com
Also, if you are just looking for a simple high performance key value datastore, you can look at my github.com/robaho/keydb There is also a service wrapper allowing shared access via gRPC (protobufs) at github.com/robaho/keydbr

Marko Ristin-Kaufmann

unread,
Oct 30, 2018, 6:04:52 PM10/30/18
to robert engels, Tharaneedharan Vilwanathan, golang-nuts
Hi Robert,
I'm just curious: why did you develop yet another key/value store?

Cheers Marko 

robert engels

unread,
Oct 30, 2018, 6:17:38 PM10/30/18
to Marko Ristin-Kaufmann, Tharaneedharan Vilwanathan, golang-nuts
Just to learn Go, and do some performance tests. I had been a contributor to the Lucene project way back when, so the idea of doing a kv using LVM trees seemed like a good project - small enough in scope, but useful.

I only brought it up because it is simple enough that if you want to learn Go gRPC/protobufs in a real application it is very easy to understand.

Tharaneedharan Vilwanathan

unread,
Oct 31, 2018, 11:59:49 AM10/31/18
to ren...@ix.netcom.com, golan...@googlegroups.com
Thank you all for the response. Let me play with the options.

Regards
dharani


Reply all
Reply to author
Forward
0 new messages