Hi Hasitha,

Each row has the storageQueue as the key, each message as a column with the
message_id as the column name and metadata as the value. Same as the
suggested new column family.

Thank you

On Wed, Jun 17, 2015 at 3:12 PM, Hasitha Hiranya <hasit...@wso2.com> wrote:

> Hi Sasikala,
>
> +1 for the idea.
>
> "The respective cassandra column family (DLCMetaData) structure will be
> the same as the current cassandra MetaData column family. Each row will
> have storageQueue as the key, each message as a column with the message_id
> as the column name and metadata as the value as follows:"
>
> How does it store messages in Cassandra in current impl?
>
> Thanks
>
>
>
>
> On Wed, Jun 17, 2015 at 4:22 AM, Sasikala Kottegoda <sasik...@wso2.com>
> wrote:
>
>> Hi all,
>>
>> Currently WSO2MB stores message metadata in a single table with the
>> following attributes:
>>
>>    1. MESSAGE_ID
>>    2. QUEUE_ID
>>    3. MESSAGE_METADATA
>>
>> Also, WSO2MB supports movement of messages to a DLC (dead letter channel)
>> when a problem is identified in the receiver's end. When moving a message
>> from a queue to a DLC, the DLCQueueName (which is tenant specific) is
>> retrieved, the metadata row under the relevant storageQueue is removed and
>> a new metadata row is added with the QUEUE_ID set to the DLC queue.
>>
>> Therefore, when we need to,
>>
>>    - reroute messages for a specific queue
>>    - purge a particular queue
>>
>> we need to retrieve MESSAGE_METADATA of each row with the QUEUE_ID set to
>> any DLCQueue and extract the actual storageQueue (The storageQueue is one
>> of the information stored under the MESSAGE_METADATA attribute). This
>> operation is highly computationally expensive since we need to read all
>> rows for all DLC queues even though we might actually have a few relevant
>> rows.
>>
>> What I'm suggesting is to have a seperate MB_DLC_METADATA table with the
>> following attributes (same as the MB_METADATA table):
>>
>>    1. MESSAGE_ID
>>    2. SOTRAGE_QUEUE_ID
>>    3. MESSAGE_METADATA
>>
>> The respective cassandra column family (DLCMetaData) structure will be
>> the same as the current cassandra MetaData column family. Each row will
>> have storageQueue as the key, each message as a column with the message_id
>> as the column name and metadata as the value as follows:
>>
>> Queue_ID
>>
>> m_id1
>>
>> m_id2
>>
>> m_id3
>>
>> meta1
>>
>> meta2
>>
>> meta3
>>
>>
>> By having this we will be able to easily filter out messages by the
>> storageQueue from which the messages were moved. Therefore, it will save a
>> lot of time and memory in the previously mentioned scenarios and in any
>> other DLC specific operations.
>>
>> Comments and suggestions are highly valued.
>>
>> Thank you
>>
>> --
>> Sasikala Kottegoda
>> *Software Engineer*
>> WSO2 Inc., http://wso2.com/
>> lean. enterprise. middleware
>> Mobile: +94 774835928/712792401
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> *Hasitha Abeykoon*
> Senior Software Engineer; WSO2, Inc.; http://wso2.com
> *cell:* *+94 719363063*
> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
>
>


-- 
Sasikala Kottegoda
*Software Engineer*
WSO2 Inc., http://wso2.com/
lean. enterprise. middleware
Mobile: +94 774835928/712792401
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to