I am running Blob Storage on IoT Edge using the supplied module and following the recommendations made here: https://learn.microsoft.com/en-us/azure/iot-edge/how-to-store-data-blob
My use case is to stage recurring uploads (~3MB files) from the device to the cloud in case of an intermittent network connection. I am using the functionality built in to the azureblobstorageoniotedge module to do the uploads, so I put blobs into a local storage directory and expect them to be gradually uploaded to the cloud some time later, at which point they are deleted from local storage.
However, it is apparent that azureblobstorageoniotedge maintains a database to do this, and I have seen the database get into a bad state (blob storage module crashes with inability to find a specific database file). The module never recovers from this state unless the Database folder it creates is manually deleted so that it can start over. I suspect that database corruption is related to unexpected power loss. We don't have a controlled shutdown for our device and at least in development this is likely to occur.
Can you confirm that database corruption is a risk with unexpected termination of the azureblobstorageoniotedge module? Note that in this case, the local storage is implemented on an SD card and the OS is Linux, aborted writes to the SD card may be the true root cause.
Assume that we have to accept the possibility of database corruption, but data loss is ok. Is there any way for azureblobstorageoniotedge to recover from a clean slate rather than crashing?