> 
> Are you using the durability term strictly in the area of transactions 
> or in a sense that a successful write survives a system crash?

Durability has all sorts of interesting characteristics.  In general, it means 
that after something bad, committed transactions persist.  The questions are 
around how bad bad is.

At the minimum, durability requires that writes be written to persistent 
storage.  A more rigorous approach requires that a write be safe from any 
single point of failure.  Note that simply forcing writes to disk, even with a 
non-buffered log, provides no immunity from a disk crash.  That plus RAID, 
probably, depending on whether the RAID implementation can be persuaded to 
write a block on at least two devices before reporting success.

Another approach is to ensure that writes are transmitted two multiple systems. 
 This opens more options.  Does it require confirmation of receipt?  Is each 
recipient itself required to write the data to persistent storage?  Or if the 
distributed system has a mechanism to recover and flood all systems with 
messages sent from a crashed system, does that count?

When you introduce regions (or coteries), things get even more complication.  
To survive a network partition, a commit has to be broadcast to at least one 
node in every region/coterie.

NuoDB has basically all of the above (though I'm not sure which are completely 
documented and shipping).  You can configuration how many storage managers have 
to receive an update and whether those storage managers have to flush the 
updates to a log before transmitted the acknowledgement.

Interbase V1 reported commit after all updates had been written to disk.  As an 
option, a journal server could be configured, in which case all data would be 
written twice (on different devices) before a transaction could be considered 
committed.

Borland didn't understand the concept of "single point of failure" when they 
tried to turn the journal code into a write ahead log and ended up with 
neither.  This was part of the V5 (?) disaster.

> 
> If later, Cassandra has durable writes by first persisting a write 
> operation into a commit log on disk before acknowledging a write 
> operation as successful to the client.

If you want immunity from a single point of failure, this doesn't in general 
hack it.  For open source, probably good enough -- I don't know of anyone who 
does better.  For a commercial system, probably a non-starter.

> 
> 
>> It's completely legitimate to have settable durability
>> (NuoDB has more options than you can shake a stick at), but at the end
>> of the day, a transaction is either committed or it must appear that it
>> never existed.
>> 
>> For me, consistency is dirt simple: A transaction sees a stable view of
>> the database but can't update a version of a record it could not see as
>> well as enforcement of any declared consistency constraints.  A
>> corollary is that any and all reduced consistency modes are for the
>> birds and exist solely because record locking database systems cannot
>> perform without them.
>> 
>> I invented MVCC to bring transactions to the masses; to make
>> transactions easier to use than not.  All of the other crap are bandaids
>> on systems that essentially don't work.
>> 
>> I learned at DEC that most options are the product of bad design where
>> the designer didn't have a right answer so gave the users a choice
>> between two bad answers.  Bah!
> 
> Why has NuoDB more durability options than you can shake a stick at it 
> then? ;-)

Two reasons.  One is a legitimate tradeoff between commit latency and paranoia. 
 The other is that many organizations with large bank accounts require that 
updates be written twice before a commit is reported.  This isn't theoretically 
or practically necessary, but that's their policy.  Easier to implement than 
argue against.


> 
> Na, seriously, thanks for your insights.
> 
> Regards,
> Thomas
> 
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> Firebird-Devel mailing list, web interface at 
> https://lists.sourceforge.net/lists/listinfo/firebird-devel

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to