"Serge Rielau" <sr*****@ca.e ye-be-em.com> wrote in message
news:bu******** **@hanover.toro lab.ibm.com...
A question of definition I suppose. I suppose for the reasons you stated
commonly "shared nothing" refers (or at least I refer) to logical
ownership. I.e a node will neither share memory, nor data with any other
node.
You are correct that today this does neither mean that the nodes may not
share the same box right down to real RAM a single CPU and the hard
drive. I.e. I can run DB2 with several nodes (shared nothing) on my Laptop and
I do that on occasion.
Interestingly thsi means that the lines beween "shared disk" and "shared
nothing" contiously blur. E.g. while in Oracle RAC ("shared disk") each
node can get any data, there is AFAIK still one node that "controls" a
given pice of data at least from a locking perspective. (resulting in a
redistribution of the control when a node goes down).
(I'm sure if I'm wrong Daniel M. and Mark T. will not hesitate to
correct me :-)
Similarly in DB2 a failing node can be replaced by another node.
The truth (or let's call it winning architecture), in the end, will be
somewhere in the middle I'd guess and it will be neither shared disk,
nor shared nothing.
Cheers
Serge
Share nothing parallel architecture has no real meaning in for a single
partition database on a single node. That makes no sense because there are
not multiple partitions that share hardware resources. "Share nothing" or
"share whatever" only makes sense in the context of a multi-partition
database.
I didn't mean to suggest that in a share nothing environment, that
nodes/partitions don't sometimes share data, such as when a failover happens
or when join takes place that causes data to be transferred from one
node/partition to another. That really has nothing to do with whether an
architecture is share nothing, since the partitioning scheme of the data is
determined by DBA and not by the hardware or database software.
Early implementations of share nothing parallel database where limited by
the hardware. The last "forced" share nothing architecture from Teradata was
implemented on nodes that consisted of Intel 486 PC's running a propriety
16-bit OS that was incapable of sharing hardware resources. The first
implementations of DB2 PE (Parallel Edition) were implemented on single
processor RS/6000 nodes (AIX SMP was not available at that time IIRC), so
one DB2 partition per physical node was the norm.
The point is that share nothing is the relationship between the hardware
node and the logical partition. Most large scale IW parallel databases have
moved away from shared nothing because for price/performance reasons, as the
improvements in hardware and SMP operating systems makes at least some
sharing much more efficient and scalable. Although it is certainly true in
terms of absolute performance, that shared nothing does scale in a more
linear way when extremely large databases are needed. But shared nothing is
usually not the best in terms of price/performance.
Interestingly, recent hardware solutions provided with the IBM eServer 325
(and perhaps other vendors) has rekindled interest in share nothing (or
share less) implementations because of the affordability of AMD 64 bit nodes
on IBM blades. The IBM benchmarks for TPC-H used 2 partitions per physical
node (with a dual processor), but it would have been interesting to see the
difference in absolute performance and price/performance if they had only
used on partition per physical node.
Note that if one only creates a single partition on a dual-processor (or
more) physical node (blade), that is not sharing. The CPU's are not shared
with any other partition.