Hello.
I use ignite as persistent queues. I create queues dynamically, so every day i
can create up to 50 quques and stream about 5 million records in each. When i
don't need this queue anymore, I want to clear my disk space, but it is not
happenning. Here is some example code.
final IgniteConfiguration cfg = new IgniteConfiguration();
final DataStorageConfiguration dataStorageConfiguration = new
DataStorageConfiguration();
final String igniteStorageDir = "c:\\work\\garbage\\igniteTest\\5";
System.out.println(igniteStorageDir);
dataStorageConfiguration.setStoragePath(igniteStorageDir);
final DataRegionConfiguration defaultDataRegionConfiguration =
dataStorageConfiguration
.getDefaultDataRegionConfiguration();
// defaultDataRegionConfiguration.setMaxSize(igniteDataRegionMaxSize);
defaultDataRegionConfiguration.setEvictionThreshold(0.9);
defaultDataRegionConfiguration.setMetricsEnabled(true);
defaultDataRegionConfiguration.setPersistenceEnabled(true);
dataStorageConfiguration.setWalMode(WALMode.NONE);
// dataStorageConfiguration.setWalPath(igniteStorageDir + "/wal");
cfg.setDataStorageConfiguration(dataStorageConfiguration);
final Ignite ignite = Ignition.start(cfg);
ignite.cluster().active(true);
for (int j = 0; j < 10; j++) {
final CollectionConfiguration queueConfig = new
CollectionConfiguration();
queueConfig.setCacheMode(CacheMode.LOCAL);
// queueConfig.setBackups(1);
final String queueName = "queue-" + j;
queueConfig.setGroupName(queueName);
final IgniteQueue<Object> queue = ignite
.queue(queueName, 0, queueConfig);
final int i1 = 1000;
for (int i = 0; i < i1; i++) {
final String elem1 = UUID.randomUUID().toString();
queue.put(elem1);
}
System.out.println(j + "queue write");
for (int i = 0; i < i1; i++) {
final Object poll = queue.poll();
}
System.out.println(j + "queue read");
// System.out.println("read complete");
queue.clear();
queue.close();
ignite.destroyCache(queueName);
}
System.out.println("write complete");
ignite.cluster().active(false);
Ignition.stopAll(false);
After this test is complete, I see all this queues on disk, they are not
cleared. Is there a way to force ignite to clear disk space after queue becomes
empty?