Hi, greetings from Spain
I have been working with oak for a month in a spring boot application
using the oak API to create the content repository service.
I can upload and download large files, but I have a problem with the
file delete services.
After invoking the node.remove and the session.save operations, If I
try to get the file, the node is being deleted properly, but in the
blobs collection the file space remains occupied there.
In order to empty the deleted blob node I have tried to use the
VersionGarbageCollector and the MarkSweepGarbageCollector, but none of
those worked.
The way I've been calling the MarkSweepGarbageCollector is:
MarkSweepGarbageCollector gc = new MarkSweepGarbageCollector(new
DocumentBlobReferenceRetriever(documentNodeStore),
(GarbageCollectableBlobStore) documentNodeStore.getBlobStore(),
(ThreadPoolExecutor) Executors.newFixedThreadPool(1), ADMIN, 5,
1,"mongodb://" + "localhost" + ":" + PORT);
gc.collectGarbage(false);
The collector can find the proper blobs but they're not being deleted:
Collected (115) blob references
Number of valid blob references marked under mark phase of Blob garbage
collection [138]
Number of blobs present in BlobStore : [23]
Blob garbage collection completed in 56.33 ms (56 ms). Number of blobs
deleted [0] with max modification time of [2019-07-11 10:22:18.875]
I'm sure I'm doing something wrong, maybe I need to create a new session
or mark the blob for deletion somehow.
Thanks for your help.