Content-type: text/html Set-Cookie: cookiehash=D8TIX1F9GET8DML97LCWDC1UDL31CF7Q; expires=Sat, 17 Oct 2020 00:00:00 GMT; path=/; DMI News

DMI News

Previous Entry.. Next Entry..

DMI Updates For fun and profit... well, fun anyway

August 19, 2009 20:27

As some of you have noticed, and many of you have inquired about, I am doing a months long software upgrade to the site. I will attempt to answer some of the more frequently asked questions about this process and what it means for the future.

A quick bit of history. The site originally was a simple static page with one cam, one light, and no more than 100 visitors a day. Simple cgi bash scripts that called bottlerocket (a linux based x10 interface program) to turn the lights on and off was all that was needed. As things evolved, I simply made necessary changes to adapt. Even then, until I moved out of the Plano house, things were pretty simple. I had the same number of cams on the site all the time, the same number of lamps, and that kept the dynamic aspect of the site to a bare minimum. Having several hundred visitors on the site at one time was no problem. In fact, the computer I was using then was an order of magnitude less powerful than the one I have hosting the site now, and it could handle 20x the user load. My only constraint at the time was bandwidth.

Over time, however, I added the ability to have people host their own cams, accounts, and numerous other things. This required a lot more computer overhead to build the page. However, as I built this, I did everything as quickly as I could. Therefore, I'm reading flat files for most of the databases. This became problematic as the databases got larger. Long story short, I have a huge hacked-together mess that works... but not very well. I've held off on doing any major publicity for the site, in small part, because I simply can't handle the traffic.

The event that forced me to change my outlook on all of this was the datacenter explosion in June 2008. The site was down for 6 days, and while I do occasional backups of the site in case of something catastrophic, recovering from that would have taken a while if I needed to rebuild everything from backups. I decided at that time I was going to redesign the system so that the databases could be loadbalanced in realtime over multiple servers, at multiple locations. Since this requires recoding practically everything from scratch anyway, it's the perfect opportunity to do it right this time.

All of the databases will be served by several different programs. I'm creating them from scratch instead of using mysql or some other database server for several reasons. First off, a database server is designed to be a jack of all trades approach which means there is more overhead on each command transaction and more storage space is required. With my own programs, I can cheat a bit and save time on various things, as well as be able to support a lot of the workload in the server program itself, things that mysql aren't designed for. I suppose they could be modded, but if I'm going to go to that much work anyway, might as well roll my own.

As for new features, I'm currently just recoding the site to achieve the current functionality. Once I'm finished, new features will be possible. I have a LONG list of stuff I want to do with the site in the next couple of years. I don't expect to be able to accomplish it all, and some things are kinda required as a prerequisite to others, so while a lot of what I'm doing appears dull and boring (even to me), it's necessary none the less for more exciting things. I have determined in the past it's best to not brag endlessly about future projects, especially those which I have no clear roadmap to ever completing. I much prefer to finish something and then unveil it upon a world that is shocked at the discovery. Anyways, I'm off to work, so I'll continue this later.