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
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture