Dateline March 23 - Austin
I read an article a couple of weeks ago about how software bloat is generating a lot of pc waste. Meaning operating systems and applications have gotten so large and hardware vendors include so much pre-installed stuff on their boxes that a) you have to upgrade to run new OS’s and b) even when you do you’re hamstrung by all the hardware vendor add-ons. Long term decreases in the cost of processors (per mip), memory and disc has given software vendors a platform that they can continue to fill up with stuff.
While I do occasionally appreciate some of the new features (improved security, for example) most of what arrives as the next best thing is a) something I almost never use, and b) a waste of space. It’s been a long time in the general computing world since anyone spent a lot of time worrying about how much space an application was going to require. This is great for software and hardware vendors because they can get us to upgrade every few years whether we need it or not, but designed obsolescence is not a long term plan for success.
Can anybody think of another industry where this became a problem? Here’s a hint: think of bailouts and bankruptcies, the (ex) big three, travelling in private jets to DC to ask for money. That’s right - the car industry. For decades Detroit auto manufacturers planned on consumers upgrading their vehicles on a regular basis, on those consumers seemingly limitless capacity for size and horsepower, and on relatively cheap gas. Oops.
Don’t Be a Car Company
This is not to say that I think PC makers are going the way of GM, Chrysler, et al. But it is interesting to note that the biggest selling computing devices are not the ones with the most disk, memory or fastest chips. Netbooks are selling like crazy. A fully functioning (for my purposes and for most people except gamers and designers), small, light weight commodity computer for under three hundred bucks. Just enough for what you need and very little else. Minimalist.
Be a Minimalist
There is another part of the computing industry that’s always been very conscious of size and cost of applications. That’s the folks who build embedded software. Naturally I’m thinking about embedded databases (although the same logic applies in spades to the people who design software for military/industrial/device level stuff). Focusing on the embedded market and the smb customer is a cultural thing with Pervasive. In a world with no dba’s and applications where PSQL is never seen or touched by the end user, speed, small size and reliability are the features. Just what’s needed and very little else. Minimalist commodity database. We never, even once, considered a talking paperclip as part of our help function. Interesting to note that from 1995 to now the amount of disk space required for a Pervasive database has gone from 16 MB (Btrieve 6.15) to 80 MB (PSQL v10) while the space required for Windows OS has gone from 120 MB (Windows 95) to 7 GB (Windows 7). That’s an increase of 5x for PSQL compared to a whopping increase of 58x for Windows.
That said, we are followers of Microsoft and Intel - developments in Pervasive PSQL are often to keep us in synch with their technology changes. We don’t drive the changes but we do our best to make sure our customers a) can take advantage of improvements from Microsoft, Intel, AMD as soon as possible, and b) can deal with change at their own pace. While we’d love everyone to upgrade as soon as we release a new version of PSQL, the fact is that most of our customers only upgrade the database when they change OS or hardware. Usually when something in the new OS or hardware breaks their application.
Multi-Core Slowdown
Which brings me to multi-core. Zippy pointed out the other day that you can’t hardly swing a dead cat (his words not mine - I love cats) without hitting some computer with multi-core processors. Used to be servers only, now they’re pretty much everywhere (with the interesting exception of Netbooks). On paper multi-core is a great idea. Multiple processing cores, way more processing power, everything is going to run faster. The uncannily accurate Moore’s Law (doubling transistors on a chip every two years) continues to be accurate (in the last few years) partially because of multi-core processors. Check out this graphic from Wikipedia.
Well, not everything is going to run faster with multi-core. Turns out there’s a class of applications that are probably going to run slower on multi-core. Typically it’s a business application where multiple users access shared resources and data. Ringing any bells? Yep - multiuser database applications. If your application hasn’t been written to take advantage of multiple cores, the overhead of operating in a multi-core environment will probably have your customers noticing a decrease in application performance. A quote from the Wikipedia article sums up the story nicely: “…the higher transistor density in multi-core CPUs doesn't greatly increase speed on many consumer applications that are not parallelized. There are cases where a roughly 45% increase in processor transistors have translated to roughly 10–20% increase in processing power.”
For more about why this happens read about Multi-core Slowdown on our website.
PSQL v11 Beta
The good news is that Pervasive noticed this issue a while ago and has developed a new version of Pervasive PSQL specifically for multi-core. Beta will be available in a few days - check the website for downloads. From what we’ve seen, this is the best performing version of PSQL ever. It will help make sure your application looks fabulous on a multi-core system (we typically see application performance increase with additional cores - so it scales wonderfully too). PSQL v11 is a great example of unobtrusively solving a nontrivial problem (parallelizing software is not for the timid) while requiring the least amount of change to take advantage of a major improvement (your v10 application will run unchanged on v11). Pervasive PSQL still has all of those features that make PSQL a great database: small, fast, reliable, and affordable. Still a minimalist commodity database - just happens to make your application run crazy fast on a multi-core box.
Stay minimalist, focus on commodity features, avoid bloat - we’re coming out of a recession after all and fiscal restraint is still cool. Meanwhile, be ready to deal with big change (like multi-core) when it happens. We’ll help make sure you look like you knew what you were doing the whole time.