Weighted Round-Robin DNS Solutions?

The round-robin algorithm is often used as a simple-yet-effective method of distributing requests to a single-point-of-entry to multiple servers in the background. It’s used by DNS servers, peer-to-peer networks, and many other multiple-node clusters/networks.

In a nutshell, round-robin algorithms pair an incoming request to a specific machine by cycling (or, more specifically, circling) through a list of servers capable of handling the request. It’s a common solution to many network load balancing needs, even though it does not result in a perfectly-balanced load distribution, strictly speaking. In the non-ideal world we our servers live in, there are many reasons why the stock round-robin algorithm just isn’t good enough when it comes to properly balancing server loads.

The first and most important thing to keep in mind is that not all servers are created equal. One should be able to take advantage of all available resources, and it’s impossible to guarantee that all the servers available to process incoming requests are capable of dealing with the same load quantities, take as long to carry out each command, and deal with larger/longer queues as elegantly. Nor can all requests be treated the same, either. Some take longer to process than others, involve more work, and are generally more-demanding than the rest – just as others are finished relatively fast and with far-fewer resources.

Continue reading

Server Move Completed – NeoSmart Technologies Fully Optimized!

We’ve been working on moving to a new server all week, and we’ve just finished the transition. Best of all, we’ve switched to the new servers without any downtime in-between. Our new server is a 1.86 GHz Core 2 Duo and with 3GB of DDR2 RAM – all thanks to the awesome guys and gals at Lunarpages, the best host there is.

A lot of work has gone into this transition in hopes of raising the performance – and more importantly, the reliability – of our server. In the past year (since we first started our hosting with LP), we’ve gone from several million hits a month to dozens of millions, and our old server took quite a hit. To that end, we’ve focused on deploying lightweight and highly-optimized code all around; hopefully there will be no more un-expected downtime… ever.

Our current software setup is very complicated, but hopefully it’ll take us all the way to 0.00 minutes of downtime – that’s our goal! We have multiple application servers and programs running in the background each doing what they best – instead of the traditional have-the-web-server-do-it-all way. At the moment, we currently have a software stack comprising of a tightly-knit mesh of these products:

Continue reading

XML FTW!

They invented XML for a reason… So why doesn’t anybody use it? eXtensible Markup Language is the perfect format for storing configuration files and settings for many different reasons. Most obviously, it’s very clear and straight-forward. There are no two-ways about any piece of information or data. You get what you want, when you need it.

The .NET Framework does things right here, storing per-application settings in “.config” files in the user and/or the application directory that have the settings listed in valid XML data which nest correctly and can be easily accessed via an auto-parser in the application itself. Linux now uses XML files for many of its configuration (well, not XML per-say since they don’t use a recognized top-level namespace, but the XML hierarchical structure is there alright). So why can’t Windows just cut to the chase and make the switch – only good can come of it!

The registry may be a nice “hierarchical” place to store bits and pieces of data… but the problem is that it is prone to corruption and conflict because of the way the API is designed. The registry API doesn’t enforce strict hierarchical data access for read and write, so many times things go haywire. Like Windows Explorer for example. Fellow blogger Kristan Kenney has just posted (yet another) bug in Windows Vista that ends up with Windows Explorer thinking every single folder on your hard drive is a photo album — and displaying the files as such!

Continue reading