Mike Ault's thoughts on various topics, Oracle related and not. Note: I reserve the right to delete comments that are not contributing to the overall theme of the BLOG or are insulting or demeaning to anyone. The posts on this blog are provided “as is” with no warranties and confer no rights. The opinions expressed on this site are mine and mine alone, and do not necessarily represent those of my employer.

Sunday, March 20, 2005

Be Careful In What You Prove

I have recently been researching scuba diving sites within the USA for a possible series of articles for a scuba magazine. Believe it or not, I do have interests outside of Oracle! One of the sites, Rock Lake, Wisconsin is of particular interest for what lies beneath its turgid waters. But if I reveal too much now it might dilute the future article. What it has brought to light is the fact that you must be careful not only in what you believe to be true but in what you prove to be true. The tales of what lay beneath Rock Lake vary from lost Atlantis to only legends. I am sure if the two camps were brought together, bloodshed would ensue as each defended their point of view. To each of the camps, what they believe is the truth.

Many people believe that truth is immutable, that what is true now is always true. However, times change, technology changes, even (especially) theology. It was not so long ago that respected scientists believed that a Doctor washing his hands was not professional, that travelling at speeds in excess of 30 miles per hour would do irreperable damage to the human frame, that travelling faster than the speed of sound would result in a crash much like hitting a brick wall, or that setting off an atomic bomb would ignite the atmosphere and annilalate mankind.

Of course all of the above has been proven incorrect. Now there are those that propose that the charished notion that the speed of light is absolute is also a myth that will be dispelled with time (believe it or not, the "warp" drive of Star Trek fame has a basis in theoretical physics, of course it requires more energy than we can currently produce, but in medevil times wouldn't all of our current technology give us a one way ticket to the witches bonfire? ) however, as much energy as we can currently produce is perhaps a far cry from as much energy as we can produce. Some go as far as to claim that some super-novas are proof that some technologies lost control of zero-point energy.

So also must we view "proofs" given of things that are acceptable incurrent technology, in Oracle and in other technologies, as only transient in nature. Watch out that the "proofs" of today don't become tomorrows old wives tales.

For example, it wasn't too long ago that separation of indexes and tables in databases was a good and accepted method for improving performance. Of course this was because otherwise they would be on the same disk platter if they weren't seperate and would conflict. Now of course with the almost universal implementation of RAID techology (rendundent arrays of independent/inexpensive disks) this becomes unneeded (sometimes, depending on the amount of data stored on each disk in the array). It could be demonstrated, when they shared a single disk, that moving indexes away from tables improved performance. Based on that proof, no longer valid, some will say that moving indexes away from tables always improves performance.

Likewise the old saw that moving to RAW devices in UNIX (raw meaning the application was responsible for IO) would result in large improvements in performance. This of course was based on the premise that all of the buffering in the OS for non-raw filesystems caused delays. Now modern file systems can be set to eliminate this buffering and journalling delays and the performance gains from raw have deminished to nearly null. Of course rebuilding the objects within the databases involved, (tables and indexes) restoring them to proper parameters that they may have exceeded through years of neglect also helped.

So now we have a new crop of experts providing proofs (sometimes limited to a single-user, small database on a laptop) that their methods are the best and no doubt their proofs will be sited long after they are useful or meaningful and their expert advice will fade into old DBA tales as new technologies and methods become the rage. This is as it should be.

I guess I am trying to say, in a rambling way, that todays sage advice becomes tomorrows old tale. We must all be aware of what the current methods are, realize when the old methods no longer apply, and gracefully accept new ways if we are to grow and prosper. However, we must also recognize when the "proper" method evolves and mutates into a "new" method, leaving the old ways to die away.

So be careful in what you prove and how you prove it. What seems clever today may come back to haunt you. You may be aplogizing several years down the road for what is right now, but not in the future. The net is an amazing place. No doubt you can find numerous places where I may have exponded on the virtues of separation of indexes and tables, on rebuilding indexes frequently or other items that have since been proved, for current versions, old DBA tales. I like others before, am not immune to time and neither is my advice.

If any paper you read is older than a year or two, I suggest you take its advice with a big grain of salt as it may be applicable only to history and not current events.

Critics love to dig up old papers, presentations and advice given and use it to bludgeon people into believing they are the only authority. Take this type of advice with a grain of salt as well. In time, their advice will be referenced, out of date and out of style.

9 comments:

Robert G. Freeman said...

I kind of like Pattons take:

"Don't tell people how to do things. Tell them what to do and let them surprise you with their results."

Don Burleson said...
This comment has been removed by a blog administrator.
Bill S. said...

Mike,

Very interesting take. I agree that old articles, advice, etc. should not be dredged up and wielded to bash the ... well, author for lack of a better word. Unless said author dredges these things up him/herself and continue to promote them as true and correct in today's world.

I disagree with Mr. Burleson's comment about generating a proof using a laptop and an SQL script. That proof is as valid as any other - the only thing it WON'T show is whether that particular script will scale, and that naturally would involve a test on a larger machine.

If we don't test, if we don't question, we are merely pandering to the snake-oil salesmen.

Regards,

Bill S.

Howard J. Rogers said...

You say that separating indexes and tables was useful in the past, but no longer because of the ubiquitous nature of RAID. But that's just technical whooeee, I'm afraid. Separation of the two, merely because they were tables and indexes, was NEVER of benefit for performance reasons, because a read/write to a table is never simultaneous with the read/write to its index.

So that's just myth-rehashing, I'm afraid. And to return to your article's main thrust, I'd worry far more about an article, however fresh, written by someone that doesn't understand why index/table intrinsic contention never actually happened than an article, however old, written by someone that does.

Mike said...

Howard,

In tests at a client I was able to achieve 30% better performance by moving the indexes from being co-located with the tables on a non-raid system with version 7. The problem comes with the required repositioning of the drive heads after each read. So yes, at one time it was an issue. It helped at too many sites to improve performance, so no amount of your "No it doesn't" malarky makes any difference to me, I know because I did it and it worked.

Mike said...

Howard,

In tests at a client I was able to achieve 30% better performance by moving the indexes from being co-located with the tables on a non-raid system with version 7. The problem comes with the required repositioning of the drive heads after each read. So yes, at one time it was an issue. It helped at too many sites to improve performance, so no amount of your "No it doesn't" malarky makes any difference to me, I know because I did it and it worked.

Bill S. said...

Mike,

But no matter WHAT device you are using, each read/write is going to reposition the heads, isn't it? I mean, this wasn't a single user system was it? Multi-user environments typically mean different users going after different pieces of data at the same time. Or am I mistaken (or possibly myth-taken)?

Regards,

Bill S.

Howard J. Rogers said...

It's all just anecdote with you, isn't it Mike?!

Look: I have no doubt that on one occasion, you moved an index so that it wasn't sharing the same device as a table, and performance improved by 30%. I believe *your* anecdotes, whereas there are others that would not be true of.

Trouble is, I can quote you a true case from New Zealand where I moved a *table* onto a different hard disk from another table, and saw a (measured) 24% improvement in response time to a particular query. And that was 9i.

Of course separating things out is a good thing to do, if it means I/O is thereby distributed and bottlenecks thus eliminated. But contention can arise between two tables, two indexes, a table and its indexes... It's the claim that co-located indexes and tables are *inherently* or especially likely to experience that sort of thing that is ye olde myth. Physically, it just can't happen: never could, and never did.

Deal with I/O contention where it arises, in other words, and deal with it properly by analysing what is contending with what. That was and remains the only legitimate way to do it. Separating your tables from their indexes *thinking* that you were thereby eliminating an especially-bad contributor to I/O contention issues was never sensible, and remains so... and not because of the invention of RAID!

paulmarkj said...

This business about "respected scientists believed that ... travelling at speeds in excess of 30 miles per hour would do irreperable damage to the human frame"

Is there any evidence to back this up? I always thought this was a myth.