Re: PostgreSQL

der Mouse <[email protected]> Thu, 2 Feb 2006 09:42:38 -0500 (EST)
Newsgroups gmane.os.netbsd.current,gmane.os.netbsd.devel.performance,gmane.os.netbsd.devel.general,gmane.os.netbsd.devel.network
Message-ID <[email protected]>
[top-posting damage repaired manually -dM]

>>> You don't need locked bus cycles for atomic operations which
>>> actually are atomic on the bus.
>>> A write is a write is a write.  It can never be split.  It's
>>> atomic.  Can't be anything else.
>> What if it's doing a write across a page boundary, and the second
>> page isn't there?
> How could it do that?  A write is a write is a write.

Not quite.  First, on an architecture that does unaligned accesses, a
write at the machine-language level can turn into something
significantly more complicated at the bus level.  Second....

> One write is one bus cycle.  It's always aligned, and the full width
> of the bus.

...you have a remarkably restricted view of how memory systems operate.

> Otherwise we're talking about the CPU doing a non-aligned write,
> which is a read-modify-write.

Which can be, depending on the CPU and in some cases the surrounding
electronics.  It could also be a bus write cycle with only certain byte
lanes enabled.  It could probably also be other things, if, for
examnple, the memory subsystem uses a narrower bus than the write width
(eg, a 68k or i386 doing a 32-bit write in a system with a 16-bit
memory bus).

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       [email protected]
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B