Hi Pamod, +1 for the solution. as discussed, we can use a single service call to fetch all slots from the coordinator for the given queue, and trigger single message deletions (referring to OnflightMessageTracker and SlotDeliveryWorker) . This will ensure that tombstones are not read when purging in a subscription closed scenario.
However, we also need to think about triggering a queue purge from the UI, at which point we may not have active subscriptions or slot references. Thanks On Thu, Mar 12, 2015 at 11:56 AM, Pamod Sylvester <pa...@wso2.com> wrote: > 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 > -- Cheers, Hasitha Amal De Silva Software Engineer Mobile : 0772037426 Blog : http://devnutshell.tumblr.com/ WSO2 Inc.: http://wso2.com ( lean.enterprise.middleware. )
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev