Is it possible that BBolt cannot delete a key when the storage has no space left? #685
-
Hi, I'm dealing with an issue in the OpenTelemetry Collector that uses BBolt for the exporter queues (using the File Storage extension). It seems that I've hit a scenario when the exporter wasn't able to remove an item from the queue after the underlying storage device had no space left. The actual operation was I admit I know next to nothing about BBolt. My thinking is that due to the transactional/versioning nature of BBolt, it might need to reserve a new page to create a new version of the node(s) that don't contain the deleted data. Does this make sense? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 8 replies
-
I do not get what's the exact issue you are running into. Do you mean that |
Beta Was this translation helpful? Give feedback.
Oh, sorry for the confusion. The answer is indeed "YES". The same reason as I mentioned in #685 (reply in thread). Each time when updating (no matter it's writing or deleting), bbolt will always write the updated data into new pages, the previous pages will keep unchanged to ensure that the db file isn't corrupted if the transaction runs into any issue.
Please refer to https://github.com/ahrtr/etcd-issues/blob/master/docs/cncf_storage_tag_etcd.md#storage-boltdb-feature