Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: tough choices
Daniel Morgan wrote:
> Serge Rielau wrote: >
> > > Partitioning of data in DB2 is an entirely different concept than is the > partitioning of data in Oracle so the word may be misunderstood. > Partioning in Oracle has nothing to do with RAC or clustering or nodes. > In Oracle, as you know, data is never federated.Actually both these interpretations can happily live next to each other: Oracle refers to a partitioned tabled while DB2 refers to a partitioned database. No judjement.. Just applications of the same technique at a different level.
>
> > > It can't use the same technology as shared everything is not shared > nothing and visa versa. Can you clarify what you intended to say?Yes I can, or at least I can try being fairly detached from cables and plugs myself.
>
>> 2. The time it takes to get the partition back into the game compared
>> to the failover work a RAC cluster has to do (such as remastering
>> locks).
> In my tests that is less than one second. Far to small with RAC to be of
> concern to anyone.
OK, I take your word for it.
>> A curious fact (no more no less) is that there are numerous kinds of
>> applications where a set of clients only ever accesses one or a few
>> partitions of the overall system. In these cases an unrelated
>> partition can fail over completely without notice by those clients. An
>> example may be the operation of a retail store chain with a
>> partitioning key on the store id. While headquartes may not be able to
>> get the big picture while
>> a partition fails over, most the individual stores can operate without
>> a hitch throughout the event.
> You are still using the word partitions as though there is some
> relationship between partitions and RAC: There is not.
I was talking about DB2. Above is a DB2 + DPF scenario using DB2 Lingo
which I set out to clarify.
>> It's my understanding that remastering locks by contrast has a global
>> impact. Does this happen twice, btw? First time when the node goes
>> down. Second time when it comes up?
> Lock what? I have no idea what you are refering to? Why would an Oracle > SELECT statement lock anything? Could it ... of course? But generally > that is not the case as the multiversioning architecture does not > require it.
>> While _adding_ a partition to increase capacity would usually be
>> followed by a redistribute which, today, has significant impact, the
>> fact that nodes are not physical has interesting implications.
> > > That redistribution we should note requires that the database be taken > off-line. This never happens with RAC.Significant impact, as I say.
>> E.g. one can oversize the number of partitions per physical node.
> Which equates to what in Oracle?
Does it have to equate to anything on Oracle?
I just describe a DB2 + DPF setup.
>> When more capacity is needed additional hardware can be made available
>> and the partitions themselves get redistributed amongst the new
>> infrastructure. Note that no data has to move since no partition was
>> added or removed.
> And if one adds or removes nodes with RAC no alteration of any database
> object is required nor does any line of code require modification.
OK please read teh following sentence ATOMIC. Do not take parts out of it:
BEGIN ATOMIC
Adding a node in DB2 + DPF does not require application changes.
If you go from n -> m where _n>1_ there is no need.
Going from DB2 without DPF to DB2 with DPF requires some thought,
because now the partitioning keys need to be decided on.
W.r.t. speeding up, e.g. batch-jobs Oracle and DB2 are actually in
a similar boat. To speed up a procedural thing one calls it n-times
and partitions the dataset to keep the threads out of each others
hair. There is no magic here.
The difference between a parallelized Oracle batchjob and a
parallelized DB2 batch job is that in Oracle you may want to partition
by ranges of data (maybe along table-partitions..).
In DB2 the parallization occurs first along teh partitioning key then
ranges can be used in addition ranges.
If a new database partition gets added, no change.
Simple more instances of the batch job.
>> Similarly one would never remove a partition during an HA event or to
>> lower resource consumption. One simply restarts the partition or
>> clears out a physical node.
> Ah but we can. With the 10g grid control I can dynamically reassign > resources from a database node to an application server node and back. > I can dynamically redistribute the CPU and RAM where it is needed.We? I thought you are not tied to Oracle? Yes and I will the last to say that that's not a good thing (albeit I don't know it. However do you see anything in the design described above that precludes DB2 for DPF from doing the same. There may not be a "grid-control" but that's no design flaw, just a choice of focus. Automatic failover, workload balancing and client reroute tehcnology are independent of "shared disk" vs "shared nothing".
>> In reality most DB2 + DPF customers run more than one partition per
>> physical node. So this is indeed a realistic option.
> But how does this change the fact that with DB2 the more nodes that
> exist the more likely a system failure?
The more RAC nodes you have the more likely it is that one of these Dell
boxes gets sick.
Oracle RAC can fail over and not turn the sick box into a failed system.
The same is true for DB2 + DPF. A database partition can fail over and
not turn a sick box into a failed system.
You have to say good by of the notion that a DB2 database partition
completely and _irrevocable_ fails, it's just a program.
If a program is that sick the system as a whole is sick, because it's
just a copy of the same program with the same bugs and that is as true
for DB2 + DPF as it is for Oracle RAC.
Cheers
Serge
-- Serge Rielau DB2 SQL Compiler Development IBM Toronto LabReceived on Fri Jun 18 2004 - 21:19:20 CDT