Take pleasure in small things
We’re in the midst of our 2009 company meeting, and are having our first-ever “hackathon”. The engineering team is divided into several working groups focusing on a variety of free software projects.
As a distributed organization, we don’t always get a lot of opportunity to write code and do our “real work” side-by-side like this. And it’s a pleasure to witness and to participate.
Just thought I’d share.
conference
Why not OpenAFS?
OpenAFS is not always the right answer for a filesystem. While it is a good network filesystem, there are usage patterns that don’t fit well with OpenAFS, and there are some issues with OpenAFS that should be considered before adopting or using it.
First, if you don’t really need a network filesystem, the overhead of OpenAFS may not be worthwhile. If you mostly write data, but seldom read it across a network, then the cache of OpenAFS may hinder performance rather than help. OpenAFS might not a good place to put web server logs, for example, that get written to very frequently, but seldom read.
OpenAFS is neither a parallel filesystem nor a high-performance filesystem. In high-performance computing (HPC) situations, a single system (or small set of systems) may write a large amount of data, and then a large number of systems may read from that. In general, OpenAFS does not scale well for multiple parallel reads of read-write data, but it scales very well for parallel reads of replicated read-only data. Because read-only replication is not instantaneous, depending on the latencies that can be tolerated, OpenAFS may or may not be a good choice. If you need to write and immediately …
openafs
Slow Xen virtualization of RHEL 3 i386 guest on RHEL 5 x86_64
It seems somehow appropriate that this post so closely follows Ethan’s recent note about patches vs. complaints in free software. Here’s the situation and the complaint (no patch, I’m sorry to say):
We’re migrating an old server into a virtual machine on a new server, because our client needs to get rid of the old server very soon. Then afterwards we will migrate the services piecemeal to run natively on RHEL 5 x86_64 with current versions of each piece of the software stack, so we have time to test compatibility and make adjustments without being in a big hurry.
The old server is running RHEL 3 i386 on 2 Xeon @ 2.8 GHz CPUs (hyperthreaded), 4 GB RAM, 2 SCSI hard disks in RAID 1 on MegaRAID, running Red Hat’s old 2.4.21-4.0.1.ELsmp kernel.
The new server is running RHEL 5 x86_64 on 2 Xeon quad-core L5410 @ 2.33GHz CPUs, 16 GB RAM, 6 SAS hard disks in RAID 10 on LSI MegaRAID, running Red Hat’s recent 2.6.18-92.1.22.el5xen kernel.
The virtual machine is using Xen full virtualization, with 4 virtual CPUs and 4 GB RAM allocated, with a nearly identical copy of the operating system and applications from the old server. And it is bog-slow. Agonizingly slow.
Under the load of even a …
environment redhat
College District launches 4 additional sites
We built a system for one of our clients, College District, that allows them to launch e-commerce sites fairly easily using a shared framework, database and adminstration panel. The first of the sites, Tiger District, launched over a year ago and has been succesful in selling LSU branded merchandise. A few weeks ago the following sites were launched on the system: Sooner District, Longhorn District, Gator District and Roll Tide District.
The interesting parts of the system include a single Interchange installation, serving two catalogs, one for the administration area and one for all of the stores. Each site gets its own htdocs area for its images and CSS files (which are generated by the site generator using the selected colors). A cool part about this setup is that a new feature added appears on all sites instantly. The site code uses the request domain name to determine which user to connect to the database as. The heavy lifting of the multi-site capbilities is handled by a single Postgres database which utilizes roles, schemas and search paths to show or hide data based on the user that connected to the database. This works really well when it comes time to makes changes to an …
clients case-study
Note to self
In free software, patches are considerably more useful than complaints.
It’s easy to forget.
open-source tips
The Orange Code
I’ve been reading the new book The Orange Code, the story of ING Direct by Arkadi Kuhlmann and Bruce Philp. Here are a few passages I liked from what I read today:
The commitment to constantly learn is the only fair way to bring everyone in the company under the same umbrella. It is a leveler. (p. 213)
… [W]e’ve got to earn it each day, and we need to feel that we have new challenges that can make us or break us every day. … Each day’s work will last only as long as it’s relevant. … [W]e did okay in each of the last seven years, but we are only ever as good as our last year, our last day, our last transaction. We still have a lot to do, since our competition is not resting. (pp. 208–209)
Trust and faith not only are built over time, but they actually need the passage of time to validate them. (p. 197)
Contributing is a privilege earned, not a right. And there are, indeed, bad ideas, most of which are answers to questions the contributors didn’t really understand in the first place. There is a reason why some of the world’s finest jazz musicians were classically trained: You have to understand the rules before you can intelligently improvise on them. (p. 195)
books
Greg Sabino Mullane @ US PostgreSQL Association
Belated congratulations to End Point’s Greg Sabino Mullane for his election to the United States PostgreSQL Association’s board for 2009-2011. It didn’t really happen this way, but I think of Greg taking over Selena’s board position there. (Actually Bruce Momjian filled that role till the elections.)
Anyway, nice work, all of you, on improving and promoting a great database and its equally important community.
postgres
What is OpenAFS?
A common question about OpenAFS adoption is “What is OpenAFS?” Usually, the person asking the question is somewhat familiar with filesystems, but doesn’t follow the technical details of various filesystems. This article is designed to help that reader understand why OpenAFS could be a useful solution (and understand where it is not a useful solution).
First, the basics. OpenAFS is an open source implementation of AFS: from the OpenAFS website, OpenAFS is a heterogeneous system that “offers client-server architecture for federated file sharing and replicated read-only content distribution, providing location independence, scalability, security, and transparent migration capabilities”.
Let’s break that down:
First, OpenAFS is extremely cross-platform. OpenAFS clients exist for small devices (e.g., the Nokia tablet) up to mainframes. Do you want Windows with that? Not a problem. On the other hand, OpenAFS servers are primarily available on Unix-based platforms. Implementations of OpenAFS servers for Windows do exist, but they are not recommended or supported (If you’d like to change that, you are welcome to submit patches or to hire developers to make that change. That’s a major …
openafs