Brad Fitzpatrick (brad) wrote,
Brad Fitzpatrick

code push party; load balancing; garbage collection

Everybody's meeting at the office at 10 pm for pizza and pushing weeks of new code live. Fun fun.

Somebody asked how late we'll be there. I said, "It depends on how bad your code is." :P

I worked most the day on monobal (my C# load balancer). I also reinvestigated Pound the other day, but wasn't impressed. The SSL functionality is neat, but the load balancing isn't. For example, if a backend node is found dead, the client gets a 503 error... rather than the load balancer using a new node? I read that in the manpage. Could that be? Or does it differentiate between TCP failures and HTTP response timeouts. Monobal doesn't handle HTTP response timeouts (yet?) because I've never had a problem with that.

I think I'll be copying Pound's config file format, though, at least for the simple load balancing method. (Monobal lets you select between load balancing policies...)

Mono currently uses the Boehm GC, but I don't trust it. At least not for 24/7 usage allocating and losing pointers to tons of small objects without big GC interruptions. So, I made monobal use freelists for its rapidly created/discarded objects so I make the GC work less.

I'm getting anxious about actually testing monobal in production... I keep finding something else to improve first, but I'm about done I think. If/when it proves itself in production I want to start polishing it up (make the generic round-robin policies/etc) and give it a website.

  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.