Tombstones became the killer :(

The plan is to consolidate the unassigned slot ranges together and schedule
the content to be removed within that range only so that the query will not
grab tombstones.

Thanks,
Pamod

On Thu, Mar 12, 2015 at 2:11 PM, Hasitha Hiranya <hasit...@wso2.com> wrote:

> Hi,
>
> Idea was when last subscriber goes purge the messages without getting
> slots involved because it need to happen lightweight and fast.
>
> Thanks
>
> On Thu, Mar 12, 2015 at 3:16 AM, Pamod Sylvester <pa...@wso2.com> wrote:
>
>> +1 Agreed, also as you and Ramith mentioned deleting the content directly
>> will not be possible with the current architecture, since matadata is
>> partitioned based on the queue/topic but the message content is not and
>> ranges could overlap between multiple topics/queues.
>>
>> Therefore, we could invoke the content deletion task for the moment.
>>
>>  Also another question i have is as to why we cannot partition the
>> message content the same way we partition the meta information ?
>>
>> Also, from the UI when purging we could still refer the unassigned slots
>> i believe. That's my observation. Do correct me if i am wrong.
>>
>> Thanks,
>> Pamod
>>
>> On Thu, Mar 12, 2015 at 1:29 PM, Hasitha Amal De Silva <hasit...@wso2.com
>> > wrote:
>>
>>> 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. )
>>>
>>
>>
>>
>> --
>> *Pamod Sylvester *
>>  *Senior Software Engineer *
>> Integration Technologies Team, WSO2 Inc.; http://wso2.com
>> email: pa...@wso2.com cell: +94 77 7779495
>>
>
>
>
> --
> *Hasitha Abeykoon*
> Senior Software Engineer; WSO2, Inc.; http://wso2.com
> *cell:* *+94 719363063*
> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
>
>


-- 
*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