Pure Go implementation of D. J. Bernstein's cdb constant database library
github.com
github.com
It's a good alternative to memcache if your data is larger than what memcached can support in RAM.
In the early 2000s I used it to implement most of the frontend for a PPC marketplace for search engines. Held up well. These days I'd just use memcached or redis.
Unless you are running memcached on an ec2 large instance (8gb) or bigger:
"No random limits: cdb can handle any database up to 4 gigabytes."
Anyways, it's useful for stuff where you want to ship out a big dictionary once a day or so and you need fast lookup but it doesn't have to be updated transactionally.
This is the perfect case for a cdb file: the list of local domains changes very rarely, but lookups happen 100s of times per second.
Granted though, it's a very special case. Aside of this mail case, I've yet to find another real world application.
I didn't have the RAM for holding it all in memory and I was only ever going to do read lookups on it.
It made it very easy to query things like: Given my favorite set of movies, which actors appearing in them have also appeared in the Doctor Who television series?
Just for fun / learning :)
Why is the speed of the Go compiler so important? Why not just use an incremental compiler? Why the hell would you want to recompile a 100k+ line program when there are known better alternatives?
Just doesn't make sense to me.
Of course, you can do something like incremental compilation only at -O0 with no inlining, which is what I suspect we'll end up doing in Rust (the relevant bug is [1]).
Why not do both? I appreciate that Go respects my time.
go seems to be nice, but compilation speed is no real argument!
It turns out that way more than the C++ set were interested in Go. Naturally, people familiar with environments where compilation speed is a non-issue were mystified by our enthusiasm for Go's low compilation times.