/*
* @(#) RemoveTombstonesRowProcessor.java
* Created May 25, 2012 by oleg
* (C) ONE, SIA
*/
package org.apache.cassandra.db.proc;
import java.util.Properties;
import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.DecoratedKey;
/**
* This processor removes tombstones after GCGracePeriod expiration
*
* @author Oleg Anastasyev<oa@hq.one.lv>
*
*/
public class RemoveDeletedRowProcessor implements IRowProcessor
{
/**
* removes tombstones created earlier than this millis
*/
private int gcBefore;
public RemoveDeletedRowProcessor(int gcBefore)
{
this.gcBefore = gcBefore;
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor#setConfiguration(org.w3c.dom.Node)
*/
@Override
public void setConfiguration(Properties config)
{
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor#setColumnFamilyStore(org.apache.cassandra.db.ColumnFamilyStore)
*/
@Override
public void setColumnFamilyStore(ColumnFamilyStore cfs)
{
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor#shouldProcessIncomplete()
*/
@Override
public boolean shouldProcessIncomplete()
{
return false;
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor#shouldProcessUnchanged()
*/
@Override
public boolean shouldProcessUnchanged()
{
return false;
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor.shouldProcessEmpty()
*/
@Override
public boolean shouldProcessEmpty()
{
return false;
}
/* (non-Javadoc)
* @see org.apache.cassandra.db.proc.IRowProcessor#process(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.ColumnFamily, boolean)
*/
@Override
public ColumnFamily process(DecoratedKey key, ColumnFamily columns,
boolean incomplete)
{
assert !incomplete;
return ColumnFamilyStore.removeDeleted(columns, gcBefore);
}
}