Author Archives: alesk

A decade that belongs to OSS

I just read an interesting Interview with Eric S. Raymond in January 2008 issue of Linux Journal. I liked his view on the reasons for Microsoft (obvious) fiasco with Vista (imho, we could say the same for MS Office 2007 as well), a quote from the interview:


‘Here’s an example of the sort of thing I mean: the Vista flop. Completely predictable, didn’t surprise me for a nanosecond, and not because I think Microsoft is staffed by incompetents either. It’s not; it hires some of the brightest programmers in the world. But, as I’ve been explaining for ten years, there’s a scale regime above which closed-source development is unsustainable as the ratio between productive work and complexity-management overhead rises. Microsoft was bound to reach it; the only question was when.


and later on, he continues:


The only thing I’m sure of is that Microsoft’s days of being able to ship competitive software from closed source are numbered, let alone its days of maintaining monopoly lock-in. The Vista stall-out, and the scaling phenomena beneath it, guarantee that.


How true! I remember a vivid debate, a couple of years ago, with my friend in the local pub (yes, usual geek talk after a couple of beers;-). He argued against my opinion that this decade will not be remembered by Bill Gates, Larry Ellison, Steve Jobs and the likes – I firmly believe that this decade will be remembered by free Open Source Software and the foundation that is based on OSS – just think about it; I’m sure Google could not succeed without OSS — can you imagine using something like MSN with Microsoft Passport, instead of Google? Or some locked-in service from Apple, hidden behind the pretty (userinter)face and accessible from (Apple only) approved gadget? I don’t think so.

On one side we have proprietary silos from major software players with Microsoft standing on the top of the hill, others are trying to climb over each other to the top of this hill as well, lurking us to abandon Microsoft silos and move to their proprietary realm. Don’t get me wrong, I’m not against a fairly priced software at all – as long as it doesn’t lock my data in any proprietary format and/or as long I have a choice to pick a (better) product from a competitor – I’m happy as long as I have a choice and a fair price!

In my opinion this decade will be remembered the most by alternatives that Open Source software movement brought to the table.

I’ll remember 80’s as the period of micro computers (Commodore, ZX Spectrum , Atari, Amiga…) that changed the way we work (and play:). Cheap micro computers allowed masses to get in touch with computing for the first time. The next rising celebrity of 80’s was a “dull” PC.

I’ll remember 90’s as the period, when we all helped to build Bill’s Kingdom. We were all busy building our local area networks and connecting the local area networks to the Net – a holy grail of computing, so far. Back then, the growth of the Net surprised most, if not all big IT players, including such “luminaries” as Bill & Steve. On the other hand, it was the growth of the Net, that allowed truly global, community based software development, something unthinkable a decade before. Still, in the 90’s most of the old-style, closed source companies were in a denial phase — in a line: “…no way OSS can compete with our pricey shinny products, … , and what about the “enteprise level” support, bla, bla, bla….“. What a mistake?

I’ll remember 00’s (did I write this correctly?;-) as the decade when we get back some control of the software that we’ll use. We got back a choice. I’m not using OSS (and free non-OSS software as well) because it’s free, I’m using it, when it’s better than proprietary one! Being free is only a minor bonus.

ORION – Oracle I/O Numbers Calibration Tool

Thanks to Franck Pachot post on dba-village.com, I re-discovered the Oracle tool for benchmarking I/O subsystem, called ORION (the link to this tool was posted by Tony van Esch on October 2005 on dba-village as well — I did bookmarked that link back then, but flushed from my memory cache soon after).

Orion can be downloaded from OTN:

http://www.oracle.com/technology/software/tech/orion/index.html

It’s available for AIX, Solaris, Linux and Windows. From the same URL you can also download ORION Users Guide – it’s short and to the point.

I tested ORION on Windows XP with 8GB raw partition; basically I followed Users guide.

1) Installed orion with msi package
2) I created raw partition and assigned letter X: to it
3) created mytest.lun file within directory where orion was installed to. File mytest.lun has single line, since I tested with single "disk":

\\.\X:

4) run simple I/O test

D:\ORACLE\ORION>orion -run simple -testname mytest -num_disks 1

ORION: ORacle IO Numbers -- Version 10.2.0.1.0
Test will take approximately 9 minutes
Larger caches may take longer

5) orion writes results in txt/csv files. Follow instructions in Users Guide if you wish to graphically represent the data in your spreadsheet of choice. 

The tool has numerous options, so make sure you read ORION Users Guide!

Original question that triggered Franck reply was: is there equivalent tool for Oracle as it’s for MS SQL Server, SQLIO.EXE (an I/O meter for SQL Server). So, if you’re responsible (doomed) for SQL Servers maintenance as well and want to adequately measure I/O throughput of underlying storage, then SQLIO.EXE is the tool for you.

Windows DEP – Data Execution Prevention

I think I’ll need to refer to Microsoft article “A detailed description of the Data Execution Prevention (DEP) feature in Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005, and Windows Server 2003” again in the future, that’s why I decided to write a short memo about DEP.

A week ago I received a Windows application compiled with Delphi. I tried to run application on our brand new server (Windows 2003 Standard Ed. R2, SP2, 32-bit, Intel Core Duo, 2.4GHz) with no success. I got “Address Violation at …[some hex address]” as soon as I tried to run the executable. The same application run successfully on Windows 2003 Standard Ed. R2, SP1, 32-bit (Pentium IV, 2GHz). The only difference is in CPU type and version of Service Pack.
Based on above article I assumed that software DEP is present in both versions of Windows 2003 – SP1 and/or SP2. So, I originally dismissed DEP as a potential cause for the error because it was turned on on both servers. This was a mistake.

The application provider suggested to turn off DEP feature completely on our new server and see if this helps. Instead, I decided to put Delphi application on the exception list for DEP and it helped. I believe it’s safer (but can also become more tedious) to list exceptions to the rule – especially if the same application is stored and run from different directories in which case you’ll have to browse to add the same application multiply times.

DEP

Conclusion: I believe SP2 for Windows 2003 server somehow changes the way, DEP actually works out of the box or it’s the (newer) CPU that changed the way OS is executing DEP.

Another thing to be careful about is to check DEP exception list after target executable is in any way changed (for example by replacing exe with the new one will trigger OS to remove application from the exception list!).

A quick search on Google revealed that this is a known problem with applications developed with Delphi and the one that Borland will have to deal with (perhaps they already fixed a compiler!?).

The worst kind of the (Oracle) bug…

is not ORA-600 or ORA-7445 or anything that starts with ORA-nnnn at all (not even data corruption!). In my book the worst bug you can hit on RDBMS server (of any kind, not just Oracle!) is the one, that will cause RDBMS server to return the wrong result set – without raising any error at all! These “little greens” are extremely hard to trace/detect in the first place; it usually takes someone who knows data intimately to notice the silly results (and DBA’s nowadays are usually not that familiar with actual semantics of data they manage).

One such bug we recently hit is Bug#4604970 – Wrong results with ‘hash group by’ aggregation enabled. The bug was introduced in 10.2.0.1 and it was fixed in 10.2.0.3.

Unfortunately, we’re stuck with 10.2.0.2 on production server, until we’re ready to patch our 10.2.0.2 production database to the release 10.2.0.3, we’re more or less forced to use the only acceptable workaround suggested in above Metalink note and that is, to turn hash-group-by feature off, by setting “_gby_hash_aggregation_enabled” to FALSE.

21’st Century PL/SQL

I’m fresh from the two day seminar titled 21’st Century PL/SQL, by Steven Feuerstein (pronounced FOYER-STEEN), that was held by Oracle University in Ljubljana. The presentation material is available from here and all the scripts that are mentioned in the material are stored in demo.zip.
All the participants got a copy of his PL/SQL bible, “Oracle PL/SQL Programming”, 4th edition – and of course, most of us (geeks) took the opportunity to get the book signed by Steven.
As I already said, Steven is an excellent technical speaker. Speaking about programming (no matter which computer language is the subject) is not trivial, I believe it’s much harder than speaking about other IT stuff, such as system administration, database performance tuning, or for example about database administration in general. Browsing through code, explaining it, changing it, actually running it, taking the questions from attendees, answering, keeping the audience focused (and awake!), and all this back and forth is not a picnic.
What I can say for the end of this blog, if you have a chance attend Steven Feuersteins seminar, you’ll certainly not regret, no matter how experienced you’re in PL/SQL, you’ll learn something new.