I'm wondering why I really need of commitment after a c-store command;
I can understand the commit is a sort of assurance about the fact the message was actually taken in charge by the storage and the storage takes the responsibility of it, but I wonder why is not safe enough to rely on the response status?
I read some explanations about that but none convinced me all the way. As far as I understood a commit can be required or better desirable basically because you can not totally trust the system you are sending the message to.
Well it sound like: when you insert a record in a database table you need to verify if the record has really been inserted as you can't trust the database engine... doesn't look like a little odd? if I can't trust the database engine I'm going to replace it with one trustable
Anyone can give a more exhaustive interpretation of the real meaning of Storage Commitment Service?
I will try to answer your question with examples of 2 systems I have been working on in my professional life. So these are no dummy examples but practical relevant cases.
When this viewer receives images, they are not copied to disk at all. Instead, they are kept in memory and directly displayed to the user. When the viewer is closed, the images are gone from the system that has received them.
C-Store success means: I have received the images, and I am able to display them.
Storage commitment is not supported by such kind of a system.
This system has a small local "PACS server" on site with a little disk capacity used as a scratch buffer. The local "PACS server" encrypts the images and forwards them to an off-site storage center where they are written to tape. For providing bullet proof data security, the data-center is mirrored (i.e. copied to another storage center in another location which also writes them to tape). The local "PACS server" is the system to which acquisition modalities are sending their images to for the purpose of archiving.
C-Store success means: I have received the images and inserted them in a queue to the storage center
Storage commitment success means: I have received confirmation from both storage centers that the images are saved on tape. From now on, I will be responsible for safekeeping the images - you are allowed to delete your local copies.
Obviously this procedure takes hours or days (when big amounts of data are migrated: even months). Thus it is not suitable to be expressed through C-Store success, for in most cases the C-Store success of image (n-1) triggers the transfer of image n on the client's end.
This is why Storage success and Storage Commitment confirmation are quite different levels of "how safe your images are on the receiver's end".
When you talk to the vendor of the off-site archiving service, he will claim: "We take responsibility for image loss by confirming storage commitment. As the local PACS server may be damaged before the images have been transferred to the storage center, we will not take responsibility for the loss of images for which we have not confirmed the safekeeping. In other words: C-Store success does not allow you to delete your local copies."