Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jtolds
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
17 ms
·
151.
▲
by
jtolds
12y ago
We implemented a future class that had very similar functionality to a deferred. We used goroutines heavily but channels not so much. I suspect we can improve go runtime scheduler performance by starting to go through and replace pieces wit
152.
▲
by
jtolds
12y ago
Right on. We immediately had not totally horrible estimates for how long it would take. Further, we have always really been inspired by Joel Spolsky's article on rewrites: http://www.joelonsoftware.com/articles/fog
153.
▲
by
jtolds
12y ago
No, I think we're honestly even more sold on protocol buffers' wire format than before. That said, if I did want to go looking elsewhere, I think the main serialization format I am really interested in is Cap'n Proto: http:&
154.
▲
by
jtolds
12y ago
We just doubled our instance count, we should be good now.
155.
▲
by
jtolds
12y ago
lol, I just thought it was an amusing situation.
156.
▲
by
jtolds
12y ago
The main codebase actually started out targeting desktop-class hardware, but the poor uptime of user's work machines (now laptops, soon tablets) actually made our business model not work, hence the dedicated hardware.
157.
▲
by
jtolds
12y ago
With Twisted (and with our threadpool worker pools), many patterns translated directly into Goroutine usage in a much cleaner way. Where with Python we were using our own helper libraries, Go's stdlib and the language itself were often
158.
▲
by
jtolds
12y ago
We did. We used Cython where we could, but Cython doesn't work with Twisted (or at least inline deferreds, which holy we had everywhere), due to different generator semantics. Edit: in fact, our internal protobuf lib was all generated
159.
▲
by
jtolds
12y ago
Our website is Apache + Python :)
160.
▲
by
jtolds
12y ago
Hi! Yes, you should totally swing by. Shoot us an email :) I think the sort of performance issues we were hitting were honestly related to just Python runtime overhead. A Python function call is actually really expensive, and with Twisted D
161.
▲
by
jtolds
12y ago
We're I/O bound now (as we should have been to begin with), so speedup isn't the linear function you might expect here.
162.
▲
by
jtolds
12y ago
Well and more so, our workload really should be mostly I/O bound. We freed up the CPU with Go, but CPU is no longer the current bottleneck.
163.
▲
by
jtolds
12y ago
We're getting slammed :( We're spinning up a new webserver.
164.
▲
by
jtolds
12y ago
EDIT: fixed my calculations again. Without tests but with our supporting libraries, our codebase was 36784 lines of Python. Those same lines became 41717 lines of Go. Counting lines of code is hard.
165.
▲
by
jtolds
12y ago
Yeah, we actually have a few cgo packages. We have OpenSSL bindings (we need to use our hardware accelerated crypto, go's crypto/tls lib doesn't support that (yet)), a faster CRC thing, we needed monotonic clocks and couldn&#
166.
▲
by
jtolds
12y ago
While we're planning on open sourcing some things, I'm not sure we'll ever open source that one. Even though it was much faster, it didn't see much time in production due to the less than desirable impact it made (go Amd
167.
▲
by
jtolds
12y ago
We're planning on open sourcing a bunch of stuff. We'll have some follow up posts.
168.
▲
by
jtolds
12y ago
We had about 3 or 4 guys full time. On my silly little i3 laptop, the whole codebase builds in 18 seconds - I suspect most of that is our C extensions.
169.
▲
by
jtolds
12y ago
Doh, I totally should have mentioned that, cause yeah that was big too. We went from about 80-95mb resident memory (and our cgroups config doesn't allow for much swap) to about 50-60mb on average, which is a metric we weren't even
170.
▲
Space Monkey dumps Python for Go
(spacemonkey.com)
338 points
by
jtolds
12y ago
|
204 comments
171.
▲
by
jtolds
15y ago
it's one thing to pay money and gain space, but it's another thing to pay money and lose disk space you have. i feel like people are more likely to pick the former.
172.
▲
by
jtolds
15y ago
ISPs pay for bandwidth leaving and entering their network. inter-network bandwidth is actually free for them, so it's very likely spacemonkey could prefer peering with other users on the same ISP.
173.
▲
PLT Racket now uses kqueue/epoll
(github.com)
2 points
by
jtolds
15y ago
|
0 comments
174.
▲
by
jtolds
15y ago
My feeling is that the traditional definition of self discipline is kind of a fake thing. To me, self discipline is knowing yourself well enough to know where you will fail, and taking appropriate counter measures - not being strong-willed
175.
▲
Mozy releases C++ library for high-perf async, event I/O in a sync model.
(code.mozy.com)
8 points
by
jtolds
16y ago
|
0 comments