D
Don Y
Guest
I use an RDBMS as my *sole* persistent store.
As with any \"component\", I expect it to provide the capabilities
that it was designed to deliver (e.g., ACID).
[This is a key assumption, thus should be examined carefully]
As such, it frees clients from having to check input data
(if from the DBMS) as the constraints and triggers on the
DBMS ensure that the data is well-behaved without need for
additional (and superfluous) checks.
But, what if the DBMS fails (like any component can)?
Should \"default\" values replace the lost ones? (What if
there are no realistic defaults?)
Should operations consistently return FAIL?
Should asynchronous signals be delivered so the client
can be *prepared* for the eventual failed access?
Other?
[Add to the problem the fact that the application is 24/7/365
and UNATTENDED!]
Or, should the system just panic()?
As with any \"component\", I expect it to provide the capabilities
that it was designed to deliver (e.g., ACID).
[This is a key assumption, thus should be examined carefully]
As such, it frees clients from having to check input data
(if from the DBMS) as the constraints and triggers on the
DBMS ensure that the data is well-behaved without need for
additional (and superfluous) checks.
But, what if the DBMS fails (like any component can)?
Should \"default\" values replace the lost ones? (What if
there are no realistic defaults?)
Should operations consistently return FAIL?
Should asynchronous signals be delivered so the client
can be *prepared* for the eventual failed access?
Other?
[Add to the problem the fact that the application is 24/7/365
and UNATTENDED!]
Or, should the system just panic()?