Re: Informix vs. Sybase vs. Oracle vs. (gasp) MS SQL Server

From: Anthony Mandic <no_sp.am_at_agd.nsw.gov.au>
Date: 1997/12/09
Message-ID: <348D01B3.34C4_at_agd.nsw.gov.au>


Johan Andersson wrote:
>
> no_sp.am_at_agd.nsw.gov.au says...
> >
> >Johan Andersson wrote:
> >>
> >> > And increasing concurrency gives you ... ?
> >> Faster response times to the users, for example.
> > And not increased contention for resources as well?
> >
> Of course, which is why I assume that having as fine a granularity as possible
> when locking resources would decrease response times.

	I think we'll never get real closure on this issue without devising
	some real mechanism to test it. I'll make a proposal below. Whether
	it gets picked up on is another matter. As for th above issue - I
	took the weekend break to do some research, both thru my library
	and at some of my regular bookstores. I went looking for some
	Informix books (and one in particular, which I couldn't find),
	there weren't that many. Neither were there many Sybase books.
	Oracle books seemed to dominate the shelf space - the majority
	being from Oracle Press itself (I won't comment on this but others
	can draw their own conclusions).

	About the best I could find for Informix was "Informix Performance
	Tuning by Elizabeth Suto, Informix Press/Prentice Hall, 2nd Ed.,
	ISBN 0-13-239237-2". To be honest I found the book to be rather
	lightweight for a performance and tuning guide. The only information
	relevant to this debate was in section 8.6 "Using Locks Efficiently"
	(pgs. 120-121), where she says the expected things, keep locks
	short, don't lock too much data, and use RLL to increase concurrency.
	Unfortunately she didn't explain or elaborate on her points. The
	first two points I've cited myself, as have many others.

	From my library I can refer interested parties to "Sybase
	Architecture and Administration by John Kirkwood, Ellis Horwood,
	ISBN 0-13-100330-5, 1993" and "Sybase Performance Tuning by
	Shaibal Roy and Marc B. Sugiyama, Prentice Hall, ISBN 0-13-442997-4,
	1996". Kirkwood's book is rather dated now (he has a new book out
	which appears to be a rewrite entitled "Official Sybase Internals"),
	but still useful. Section 5.3.5 (Ch. 5, pg. 174) of Kirkwood's
	book touches on RLL and PLL with regards to recovery and mentions
	problems with RLL and recovery (this may no longer be an issue).
	He goes into more detail about locking in chapter 6 where he
	covers multi-user considerations (concurrency etc.). There's far
	too much to quote, but he examines the ANSI locking model in detail,
	and gives enough detail on short transactions (section 6.5.2).
	There's probably enough detail in this chapter to flame both
	sides of the debate.

	Roy and Sugiyama's book, while more current, doesn't help any further.
	Section 5.2 onwards (pgs. 108-117) cover the basics. Section 10.4
	onwards (pgs. 355-366) going into further detail. I'm sure anyone
	who looks up these references can pick their own quotes to support
	their own views (I've seen quite a few, but avoided giving actual
	quotes to distill any claims of bias).

	But what I was actually trying to do was not so much look for comments
	on locking and granularity (which support your above comment to
	some extent), but look for comments on the functioning of lock
	managers. Someone posted a description and compared to UNIX
	filesystem locking. While I didn't find anything of use, about
	the only two things I can state is that lock management inevitably
	varies from database vendor to vendor (so generic descriptions
	aren't of much use) and database server lock management is far
	more sophisticated than anything used by a UNIX operating system.
	This being because locking data in a table locks not only a
	row/page/table but also the table's indexes and locking across
	table joins compounds this. Inplicit UNIX locking wouldn't do
	much more than file/directory/inode table.
	

> >> >> The only thing the TPC-C proves is that there exists at least one
> >> >> application for which RLL / PLL is not an issue.
> >> >
> >> My point was that Pablo has no proof of his statement. I have not tried to
> >> prove my assumptions. [...] He waved the
> >> TPC-C test as proof, IMHO this is not so, for the above reason.
> >
> You seem to be contradicting yourself here. Above you stated
> that "The only thing the TPC-C proves ..." and immediately above
> you now state "IMHO this is not so". Can you clarify your
> stance? I'm under the impression that only one proof or
> disproof is required.
>
> My point is the difference between proving something for a single member of a
> set and proving something for all members of a set. The set in this case being
> 'all OLTP applications'. Pablo stated that RLL is not an issue for _all_ OLTP
> applications because of the TPC-C test. I stated that the TPC-C test has only
> proven that RLL is not an issue for _one_ OLTP application.
>
> However, as has been pointed out by some other people in this thread, the
> TPC-C test probably doesn't even prove the non-issue of RLL for _one_
> application. There are to many variables and the TPC-C test is by no means
> designed to test RLL relevance.
	I'm not so sure. I had hoped to stay impartial on TPC (what a hope!)
	so I didn't cite any of the information I had. However, in Appendix
	F of Roy and Sugiyama's Book there is a discussion of the TPC
benchmarks.
	I'd suggest reading it. They even cite Walter Baker of Informix near
	the bottom of page 579. But TPC-C may seem somewhat dated. TPC-D may
	prove to be a better test (then again it may not). I was interested
	from the point of view of your remarks concerning TPC-C and how long
	it took to actually design TPC-C. There are quite a few issues here.
	TPC is the only benchmarking system available for databases currently.
	I was thinking of suggesting that an alternative be created. However,
	this would be problematic at best. It would take quite some time to
	design suitable and acceptable tests. From earlier comments it also
	takes time to actually set them up and run them. Then there is
	the issue of scrutiny and accountability. The one problem that
	probably annoys me the most is the variability of the hardware
	at the TPC site. As you pointed out in another post, it hardly
	makes for a fair comparison. However, this might make for an
	avenue to explore for interested parties.

> As soon as you introduce an iteration or a recursive algorithm which depends
> on user activity, the complexity becomes unknown at compile time. Even the
> maximum complexity becomes unknown. The most simple example that comes to mind
> is for the user to input an integer number and the application then inserting
> that number of rows in a table, very unrealistic example :-), but it shows
> that transaction complexity need not be decided at compile time.

	True. Its the old determinism issue. However, iterating a transaction
	isn't the same as increasing the complexity of the transactions
	themselves.


> OK, and my point has been that any application that mandates RLL
> can be modified so as not to require it. I didn't find any of the
> cited examples adequate. I believe I suggested alternatives for
> at least two of them.
>
> Correct, the issue is still open. I'll see if I can cook up an example of an
> 'RLL needing' application...
	I think we'll just end up with more of the same. This whole thread
	was so much flame bait anyway. I think the next time someone spams
	the newsgroups with a crosspost like this one I'll either tell them
	to go do their own legwork for a change or do what I did about a
	year ago and compare the words "Oracle, Sybase, Informix, etc.".
	Ask a stupid question and all that.

-am Received on Tue Dec 09 1997 - 00:00:00 CET

Original text of this message