Re:In-memory key-value store in C, Go and Python
by teejae on Wednesday March 21, 2012 @10:40AM
(#3734580)
FYI, In the Go version, the lock can be added more simply, without the rw:
// Synchronize map access between multiple goroutines. type cache struct { m map[string]string sync.RWMutex }
Then, you can just use:
cache.Lock/Unlock/RLock/RUnlock directly. It's clearer. The beauty of Go's mixins.
The big win is that Go allows you to write straightforward concurrent code but under the hood uses high-performance system calls like epoll.
EDIT: Here's a thread-safe version: https://github.com/jbarham/Key-Value-Polyglot/blob/master/me.... Still plenty fast.