POV-Ray : Newsgroups : povray.off-topic : Good paper on non-ACID databases : Re: Good paper on non-ACID databases Server Time
6 Sep 2024 03:15:33 EDT (-0400)
  Re: Good paper on non-ACID databases  
From: Darren New
Date: 11 Mar 2009 16:58:27
Message: <49b825f3@news.povray.org>
Orchid XP v8 wrote:
>>> It seems to me that "BASE" fundamentally requires an ACID-compliant 
>>> database.
>>
>> They describe it in terms of that, but no, it doesn't.
> 
> Sure. Because if you use flat files instead, it's *completely possible* 
> to allow multiple threads to alter the data without completely screwing 
> it up.

Who said anything about flat files or multiple threads? Heck, who said 
anything about files at all? :-)

>>> They're only talking about relaxing consistancy requirements in a few 
>>> key areas. A completely non-ACID database wouldn't function properly. 
>>> (E.g., if the database engine's own metadata became inconsistent, the 
>>> database engine wouldn't be able to read the database any more.)
>>
>> Certainly. But that's not what the "C" means in ACID.
> 
> Didn't say it was. It's more to do with A, really. (And D of course.)

OK. I have no idea what you're talking about here. Certainly if your 
database didn't have A, C, I, or D, then you'd just have a file system that 
can get corrupted. :-)  Like old DOS file systems, say.

>> "I don't corrupt the entire database when the server crashes" isn't 
>> something to brag about, any more than "I don't stall out driving down 
>> the freeway" is a selling point for an automobile.
> 
> I wouldn't mind, but this isn't exactly a trivial thing to guarantee.

It has been a well-solved problem for decades. Not trivial, but even your 
file system manages it nowadays, let alone something designed for crashes.

>> of the billing cycle."  Do you think when the merchant gives you a 
>> refund, you can then go and spend that money at the next store over 5 
>> minutes later?
> 
> I would presume so, yes. (Not that I actually own a credit card - or 
> ever spend money, for that matter...)

Well, you wouldn't think that, for example, the refund would actually have 
to be processed back at the bank before you get credit?

Put it another way: when you mail in the payment for your bill, do you 
expect it to be credited before you get back to your flat from the mailbox? 
Or would you expect it might take a day or two between the time you write 
the check in your checkbook until the time the payment shows up in your 
account at the electric company?

> OK, so if one of the servers is down, you can't do certain things. I'm 
> still not seeing why constraints can't be applied across several 
> databases under normal operating conditions.

Under normal conditions, certainly. But the idea is "this is how you make 
function beta keep working when function alpha is down." If Beta has 
constraints that depend on ALpha being functional, that doesn't work.

Sure, there's no problem if everything's *working*. This is how you make 
google search keep working even when the spiders have crashed. Or how you 
keep ads being served to people even when the system that lets you sign up 
new customers is rebooting.

> Mmm, interesting. (Especially given that Microsoft is industry-renouned 
> for their lack of innovation.)

They do some good stuff at the high end. And it's not really "innovative". 
It's just "100% right".  Whereas most folks are happy with 98% right or so.

> Well, the article in question is just explaining how to implement this 
> stuff "by hand". But I guess it wouldn't be so hard to build a small 
> framework to do it for you. (Read: to do it correctly.)

Right. If you want to do it small, you don't really need the advice. But 
yes, generally you encapsulate that sort of thing in "business logic" 
layers.  Or, if you want to do it generically, you can use something like 
Erlang, which is how they work all that sort of stuff.

-- 
   Darren New, San Diego CA, USA (PST)
   My fortune cookie said, "You will soon be
   unable to read this, even at arm's length."


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.