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.


Reply via email to