Skip to content
Snippets Groups Projects
Commit 180b75ed authored by jakubs's avatar jakubs
Browse files

SSDM-1174 fix a bug, when very big data sets would not get selected by auto archiver

SVN: 32827
parent ba5aedd7
No related branches found
No related tags found
No related merge requests found
......@@ -112,14 +112,22 @@ public class ByExpermientPolicy extends BaseGroupingPolicy implements IAutoArchi
{
DatasetListWithTotal result = new DatasetListWithTotal();
// if there is one huge data set. archive it first
for (AbstractExternalData ds : datasets)
{
if (result.getCumulatedSize() + ds.getSize() > maxArchiveSize)
if (ds.getSize() >= maxArchiveSize)
{
continue; // optimistically try to fit as much as possible
result.add(ds);
return result;
}
}
result.add(ds);
for (AbstractExternalData ds : datasets)
{
if (result.getCumulatedSize() + ds.getSize() <= maxArchiveSize)
{
result.add(ds);
}
}
return result;
......
......@@ -232,6 +232,28 @@ public class ByExperimentPolicyTest extends AssertJUnit
context.assertIsSatisfied();
}
@Test
public void testTooBigDataSetsAreArchivedOnTheirOwn()
{
ExtendedProperties props = new ExtendedProperties();
props.setProperty(BaseGroupingPolicy.MINIMAL_ARCHIVE_SIZE, "500");
props.setProperty(BaseGroupingPolicy.MAXIMAL_ARCHIVE_SIZE, "1000");
ByExpermientPolicy policy = new ByExpermientPolicy(props);
ArrayList<AbstractExternalData> dataSets = new ArrayList<AbstractExternalData>();
dataSets.add(ctx.createDataset("p1", "e1", "dt1", "ds1", 7000L));
dataSets.add(ctx.createDataset("p1", "e1", "dt1", "ds2", 8000L));
dataSets.add(ctx.createDataset("p1", "e1", "dt1", "ds3", 9000L));
dataSets.add(ctx.createDataset("p1", "e2", "dt1", "ds4", 9000L));
List<AbstractExternalData> filtered = policy.filter(dataSets);
assertEquals("[ds1]", extractCodes(filtered).toString());
context.assertIsSatisfied();
}
@Test
public void testSameDatatypeIsGroupedSmalls()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment