Bryan Matsuo

Results 52 comments of Bryan Matsuo

Comment imported from my #1 regarding design considerations > - Portability issues? Can databases be ported across os/arch? Portability across gc+gcc, gc+clang, gccgo? > - Potential GC issues. A Go...

One solution may be to expose an interface and one(?) variant of *.Put that use interface values. ``` type Value interface { MemAddr() unsafe.Pointer MemSize() uintptr } func Bytes(b []byte)...

My branch, bmatsuo/value-interfaces experiments with the interface proposed above. However, the results are not encouraging. Writing byte slices containing big-endian encoded uint64 values seems to be as good or better...

@lmd Thanks for the input. Honestly I hadn't really considered the benefits for a read-heavy workload. Do you have a benchmark program that I look at and maybe use to...

Thanks for the input @mranney. Indeed portability is not a show stopper for this issue. I have gotten the branch with this experimentation working again, bmatsuo/value-interfaces. The tests and benchmarks...

@lmb I'm a little confused about what I'm seeing benchmarked ~~here~~(edit: in that gist). Do you have any more details about the source of these tests/numbers, like a mailing list...

I realized that the experimental raft backend I have worked on uses a database with uint64 keys. On a 32-bit machine LMDB cannot store a 64-bit integer key/value (so a...

I've become aware of a development that is related to all of this. https://github.com/golang/go/issues/6907 It looks like it will be possible to get a pointer to the raw bytes backing...

The issue I mentioned before, golang/go#6907 didn't make it into go1.7. By the look of things I have doubts that it will make the go1.8 release. However, go1.8beta1 was just...

I am coming very far along in my implementation of this enhancement. My current implementation shows the consistent performance improvements you would expect from this optimization. I probably won't get...