Wednesday, August 26, 2009

Evolution of a Home Server System

My concept of a home server system has evolved over time.

I got in to a home network early on, long before I had broadband internet or even a modem connection shared via a proxy server. The purpose was sharing files and printers, playing the occasional networked game. The network was peer to peer.

I originally decided that I needed a server right after I lost a hard disk on my home computer system containing irreplaceable information, and decided right then that one fatal hard disk crash was too many, and I needed to be fault-tolerant in the future. My initial implementation of a server was with the oldest, slowest system that I had, a 486 with 20 meg of ram, to which I attached a SCSI disk farm featuring three 6 gig hard drives made into a RAID-5 array. Windows NT Server 4.0 was my choice of operating system, influenced in no small way by similar systems I was working with professionally. This served me well for quite some time, until the point where I outgrew spreadsheets as a repository for data and moved into databases.

I had dabbled in Microsoft Access for a time, but all of a sudden my databases proliferated and multiplied. My choice of a file server with ample (at the time) storage capacity but minimal computing power became quickly overwhelmed, frequently maxed out, and especially at a time when I began encouraging the whole family to take advantage of fault-tolerant storage. So it became necessary create a new server system.

I built my next one from scratch also, a barebones system with state-of-the-art CPU and disks, along with Windows Server 2000. This one fared better at first, however my databases continued to expand.

At this time I began dabbling with Linux, Slackware to be specific. I had purchased Slackware 2.2 a number of years ago, only to set it aside when I could not get X-Windows to work correctly. I have had rather extensive experience with X-Windows, DEC Windows to be specific, and always thought it would be fun to dabble with at home. So now, having been laid off and plenty of time on my hands, I decided to dabble with it again, having about the same amount of luck. I decided an upgrade was in order, and purchased the latest Slackware, 10.2. Bundled with this was MySQL, which I quickly discovered and began to dabble in this as well. It took time, but eventually all my Access databases were ported into MySQL, and I began to explore Apache and PHP as well.

My web server was hosted on a laptop, an old Thinkpad initially, and it did quite well at first. I also ran MySQL on this laptop, this being my Slackware playground. I generated a number of testimonials as to the small footprint a LAMP stack could work within, even as I overwhelmed it eventually. My main MySQL server moved over to the Windows Server system, but even that eventually became overwhelmed as I tested the limits of the system, first with test scenarios and then hosting my ever-growing databases.

A new server system was in order, especially as another desktop computer had crashed, this time with a fried motherboard. My existing server was gutted to make into the new desktop, and I once again bought new hardware. This time I did not even use a barebones platform but completely from scratch this time. I upgraded to Slackware 12.0, used Samba to share the data to the Windows desktops, and put in a Core2 Quad CPU that runs most apps like greased lightning. I consolidated my LAMP stack on this system, and it is working very well. One of my slower pages, a PDF rendering of one of my novels that took three-plus minutes to load via the laptop Apache server, now loads in ten seconds or so. With some of my tables having over a million rows, this computing power is serving me well.

So you can see how my concept of a server has changed over time, from computing power being irrelevant to essential.

Wednesday, December 05, 2007

Further RSS issues

My saga with RSS continues. As I stated before, changes to MySQL's forum site led me to pursue using an RSS reader as my main interface to the forums. That worked quite well until recently. My only issue had been that the various replies to a post showed as separate entries to the reader, with no connection between them. Coming back from a self-imposed hiatus, I find that this problem has been fixed, at the expense of creating another one. Now, each thread shows up once only in the reader, along with an indication of how many replies have been posted. This is fine, except that the thread is not marked as updated, and so threads that get replied to are never highlighted as unread by the reader. This of course makes it extremely difficult to conduct timely and efficient interactions with someone on the board. I now have to peruse the forum web page with the thread list looking for new posts, an error-prone procedure supposedly eliminated by the reader, which had been popping up little notes on my screen when someone replied.

I have enjoyed helping out on the boards in the past, and intend to do so again, however without a foolproof automatic means of being notified of new replies, this rather puts a crimp on my activities.

Tuesday, January 16, 2007

Reaction to the iPhone concept

I find the new iPhone to be conceptually very interesting. Now, I am very new to the world of PDAs— I have only just started using one, a cast-off Palm Pilot from someone, and already I am thinking of things that it should be able to do but doesn't, or I haven't learned how yet. I suspect that very shortly I will be wondering how I got along without a PDA all these years.

Now, this new iPhone from Apple (I hope that they win the name from Cisco, as I have never ever heard of a Cisco iPhone but the name seems to naturally fit alongside iPod and other Apple products) will apparently be running a version of OSX. I find this very intriguing, because it opens up all sorts of interesting possibilities, including perhaps being able to run MySQL on it, or at least a client, perhaps a small database replicated from a fixed or not-as-mobile source.

At first glance and after hearing various reports, it sounds like a very capable device even without getting under the hood and finding out what makes it tick. Of interest will be what CPU it uses, getting stuff to compile for it, etc.

Sunday, January 14, 2007

A Fork In Progress

It looks like MySQL AB is going about the code fork in a very methodical, gradual, and thoughtful fashion. The latest Community release seems evidence of this. It was released as source-only, as promised, however it was announced that since no community contributions have been made to the community tree, the release was made from the Enterprise tree. In effect, the actual fork has not taken place yet. There is a community tree in evidence in BitKeeper, but it appears to be a placeholder only so far. The changes to date have been with regard to policy and procedure, not code.

I see this as a good thing. This gives MySQL time to evaluate reactions to these changes while implementing them in a gradual fashion. The changes appear well thought out and sound, and reflect changes in the community, the marketplace, and the customer base. It's important to balance all of these factors since they all play a part in the life of the product.

Knowing who the community user is, and who the enterprise user is, is important too. The focus should be on prioritizing catering to the needs of larger groups first, with the knowledge that some may not see their needs met directly. But this is an open-source product, so surely someone can rise to the occasion and fulfill a niche need.

Monday, January 08, 2007

New Bitkeeper client, old one broke

As has been pointed out, there is a new version (2.0) of the free BitKeeper client, and furthermore the old one (version 1.1) appears not to work anymore. At first I suspected my daughter's hogging of available bandwidth as the culprit when all of my daily pulls of MySQL source trees failed, but that soon proved not to be the case. I am once again pulling source code successfully.

Wednesday, December 20, 2006

Now that it's forked ...

Now that the MySQL code base has been forked into Enterprise and Community editions, and things have had time to sort themselves out somewhat, it looks to be pretty much business as usual. The community is as lively as ever in the forums, code fixes are still being pushed to the community tree, etc. There are a few complainers but it seems that you can never please everyone and someone will always find something to beef about. I have been watching the BitKeeper sources, pulling and building nearly every day. Version 5.0 jumps two or sometimes three revisions at a time, I have the strong impression that the skipped numbers have to do with the Enterprise edition. I have not seen any Enterprise source, and I am curious as to when and where this will be available. I also see a lot of activity in 5.1 and some work on 4.1.

Those who need frequent and timely bug fixes basically have two options: subscribe to the Enterprise edition or learn to build from source. Building from source is not rocket science, at least in the Linux world, and I feel it's worthwhile learning how to do this if one wants to be truly proficient and knowledgeable with MySQL.

From my perspective it's pretty much business as usual.

Friday, December 08, 2006

Selecting a Database

When people are comparing databases and trying to select the correct one for their application, it is a very complex and confusing process. There are many factors, price being not the least of these. Some would opt for a closed-source product because of the extra bells and whistles it offers. I have to say that some of these extra features may represent security risks, or simply a database trying to take on functionality better performed at the application layer. There is a certain argument to have all of your business logic embedded in the database as it certainly eases the burden on the application programmers. But it can allow them to become sloppy, or to allow the database to be exposed directly to the users without even an application layer to protect it, counting on the database to protect itself. In some cases this comes at a price, sacrificing speed for security, when some fairly simple application coding could have implemented the same security and retained the speed. Granted some things are better done in stored procedures than application logic, and it's worth running some tests to see which is better, or considering moving the logic to the database if it is performing poorly in the application.

Price, too is a consideration. With open source, you can test the functionality without an initial investment before opting for a support package. Then, when the decision is made to purchase support, MySQL sweetens the deal by offering the Enterprise package, with some extra functionality just for the paying customer. True, it is new, and has some issues to be worked out, but it is a marvellous concept, and I am curious to see some indication of how well it is selling. As I have stated before, perceived value is an important aspect to some people, the 'bang for the buck' principle, and this new offering caters to that.

Sometimes it is a mindset issue, and I have to say I have been guilty of this at times. It is very easy to move into a new situation and recommend the familiar tools that one is familiar with, even if this means a capital outlay for the new employer. I have done this, and also had this done to me by others, so I can't be too hard on them. Open source requires an open mind in a lot of ways. I see many ingenious solutions to problems. I also see these rejected at times by those of narrow perspective continuing to try to develop solutions in this new environment using guidelines and experience drawn from elsewhere.

Not that experience isn't valuable, but the spirit of innovation must prevail, and a willingness to accept change. Also sometimes one must consider that perhaps the familiar closed-source product has rather bent the standard and changed the rules, so that suddenly finding an environment where these rules are enforced, and with increasing strictness, can be a shock to some. Some complain of this behavior, calling it wrong if familiar code won't execute because it took advantage of an extension previously available.

Sometimes this failure leads to a decision to return to the closed-source world, despite all the good advice on how to adapt.