Hi All,

During the subscription disconnection/deletion purge operation is being
called on the the relevant non durable topic the subscription/s was bound
to. During purge operation all existing data (if any) relevant to that
topic will be removed.

When using hector the removal is done through a range query following LOC,

                List<Long> currentPage =
HectorDataAccessHelper.getNumericColumnKeysOfRow
                        (keyspace,
CassandraConstants.META_DATA_COLUMN_FAMILY, storageQueueName, pageSize,
lastProcessedID);

Initially the relevant message ids are retrieved from MetaData CF and then
removed from the MessageContent CF. Once more than 200,000 messages are
sent since the range query queries the entire row of data belonging to a
relevant topic, it results in the following,



*Caused by: org.apache.cassandra.db.filter.TombstoneOverwhelmingException:
nullat
org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:214)
~[apache-cassandra-2.1.2.jar:2.1.2]at
org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:107)
~[apache-cassandra-2.1.2.jar:2.1.2]*

And causes *me.prettyprint.hector.api.exceptions.HTimedOutException:
TimedOutException() *in the broker end,

As solution,

Since the idea of purging during disconnection is to clear out remaining
data which have not being given out to its subscribers, we could query the
slots which are still remaining and directly delete them from the
MessageContentCF instead of querying them from meta data CF. Would there be
any implication to this ? WDYT ?

Thanks,
Pamod

-- 
*Pamod Sylvester *
 *Senior Software Engineer *
Integration Technologies Team, WSO2 Inc.; http://wso2.com
email: pa...@wso2.com cell: +94 77 7779495
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to