I’ve tried to find out what happens to objects in the DAOS data store unique to a single database when that entire database is deleted, especially from outside of Domino (such as directly from the filesystem).
What little I can find about the mechanics of DAOS only address what happens when a document is deleted from within Domino. I expect that to be handled properly. However, I would like to find out if DAOS will handle a deleted database correctly.
Is there something I should do to ensure that the DAOS object store gets cleaned up in this situation? Or will it happen automatically?
From how I understand DAOS to work, if you delete the db within Notes, the store will be cleaned up as you would expect. If you delete from the OS side for example, Domino won’t be aware of the deletion and you’ll be left with stray objects in the store. Given the way Domino labels those files in the store, you would never be able to manually reconcile them and they’ll just sit there until you trash the store.
If the NSF is deleted through the Domino server (client File/Database/Delete, Admin client, other API method etc) Domino will grab a list of the NLO references prior to deleting the NSF. That list is then sent for background processing, and all of the reference counts are decremented. It does the right thing.
If the NSF is deleted via OS commands, Domino does not have a chance to assemble the list of references, so it has no way to decrement the reference counts. In the short term, the result is that the (formerly) referenced NLO files will have too many references, and will never reach a reference count of zero, so they will not be pruned.
ALSO (and this is where the ‘mostly correct’ part comes in):
A resync operation starts from scratch and counts all of the references to all of the NLO files. This will correct the reference counts in daoscat, so it will once again be possible for the NLO files to get to zero references and be pruned.
In the original case described, if there is an NSF with one reference to an NLO, and it’s the only reference that NLO has, the refcount would be 1. If the NSF was deleted at the OS level, the refcount would stay 1, and the NLO would never be pruned. A resync operation would discover that there were actually 0 references to the NLO, and it would be pruned after the deferred deletion interval had expired.
Perfect! That is exactly what I was looking for. It seems that it works exactly like you would expect it to. The part I was looking for was the resync operation to clean up from such an event.
But I’ll just avoid the whole thing and make sure I delete from within Domino!