Vitess: Scaling MySQL databases for the web
code.google.com
code.google.com
"Go is miles ahead of C++ and Java in terms of expressibility and close in terms of performance. It is also relatively simple and has a straightforward interaction with Linux system calls."
It has always frustrating to say "We use Go at Google, I just can't say how." So I'm happy that now I can say that YouTube use Go in their core infrastructure, serving more than a billion requests per day with this service alone.
I hope someday Go will get the acknowledgement it deserves as a real piece of genius. I really encourage recommend just to take a 15-min try at http://tour.golang.org.
// Muahahaha
func strlen(str *C.char) int {
gstr := (*[1 << 30]byte)(unsafe.Pointer(str))
length := 0
for gstr[length] != 0 {
length++
}
return length
}
BTW, is Google planning to make a proper mysql driver in go (implementing database/sql API and not unsafe) ? * Impossible/difficult to gracefully handle connection/query timeouts.
* Extremely poor query/row cache (the table's entire query cache is flushed anytime a write is made in the table)
* Poor connection memory usage- Each open connection sucks up ~10MB of memoryIt just looks like a connection pooler with a RPC interface?
Am I missing a feature?
It seems like this could be dropped in as a replacement with very little code re-factoring if the client library is similar to the native mysql client lib. (or an adapter could be written)
Does anybody know what would be involved in getting this working with PHP?
LevelDB is a key-value storage library. MySQL is a relational database server. They are about as different as data stores can get.
If your making something to parse and validate SQL yourself which is what it seems like they are doing then why go through all the hassle to run it a second time through another SQL parser. Also since your mandating everything have a "Key" why are we not using a "Key-Value" store.
I am not saying this is a bad project or a bad design decision I am just curious why they made those decisions since at first glance it makes no sense whatsoever.