At start up we can see a log [1] saying we are using both direct storing
and asynchronous storing. Even when asynchronous storing is enabled.

Reason for this log is we have used MessageStoreManager within Disruptor to
call the MessageStore functionality. It's much better if we use the
MessageStore itself within disruptor.

Currently within the AsyncStoringManager we have used Disruptor and
Disruptor uses DirectStoringManager to store messages [2]. I think it is
much cleaner if we use the MessageStore within Disruptor rather than
another MessageStoreManager for Disruptor as well. WDYT?

[1]
INFO {org.wso2.andes.kernel.storemanager.MessageStoreManagerFactory} -
 Message Storing strategy: direct message storing.
INFO {org.wso2.andes.kernel.storemanager.MessageStoreManagerFactory} -
 Message Storing strategy: Asynchronous message storing.

[2]
https://github.com/wso2-dev/andes/blob/b97c175294e6a5f293662be101ef7bb2b7dd8547/modules/andes-core/broker/src/main/java/org/wso2/andes/kernel/storemanager/AsyncStoringManager.java

On Sat, Oct 11, 2014 at 11:06 PM, Asitha Nanayakkara <asi...@wso2.com>
wrote:

>
>
> On Sat, Oct 11, 2014 at 8:52 PM, Hasitha Hiranya <hasit...@wso2.com>
> wrote:
>
>>
>>
>> On Sat, Oct 11, 2014 at 6:32 PM, Asitha Nanayakkara <asi...@wso2.com>
>> wrote:
>>
>>> Hi Hasitha,
>>>
>>> On Sat, Oct 11, 2014 at 2:50 PM, Hasitha Hiranya <hasit...@wso2.com>
>>> wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> Here are some more tasks we are planning to do along milestone releases
>>>> of MB.
>>>>
>>>> 1. Both come as coodinator when in localhost (should consider port as
>>>> well when slecting coodinator)
>>>> 2. Throw necessary SQL exceptions in JDBC (handled by Asitha now I
>>>> believe)
>>>>
>>>
>>> When in clustered mode if in memory mode is used an exception is thrown
>>> and the message stores won't get initialized. And each method in the RDBMS
>>> store classes throws AndesException when an SQLException occur.
>>>
>>
>>    AFIR you were missing stack Trace from JDBC driver. Maybe this is
>> fixed now.
>>
>
>  Yes. That is fixed.
>
>>
>>
>>>
>>>
>>>> 3. Need to catch exception (most generic ) and throw
>>>> CassandaDataAccessException in CQLDataAccessHelper
>>>> 4. Misleading log - in-memory message store initialized when configured
>>>> with Cassandra
>>>>
>>>
>>> This Log  is due to the in memory message store that was there in
>>> MessagingEngine. We have removed it. With that change integrated to the
>>> pack this log and the initialisation of in memory message store won't
>>> happen.
>>>
>>
>>      +1
>>
>>>
>>> 5. Adjust packaging and put these as debug in log4j.propeties separated
>>>> as kernel, amqp and mqtt
>>>>
>>>>
>>>>  log4j.logger.org.wso2.andes.server.cassandra.QueueDeliveryWorker=DEBUG
>>>>    log4j.logger.org.wso2.andes.server.cassandra.SlotDeliveryWorker=DEBUG
>>>>
>>>>  log4j.logger.org.wso2.andes.server.cassandra.OnflightMessageTracker=DEBUG
>>>>
>>>>  log4j.logger.org.wso2.andes.server.cluster.coordination.hazelcast=DEBUG
>>>>
>>>>   We need to separate per message logs as trace logs? We did this in MB
>>>> 2.2.0.
>>>>
>>>> 6. Make Onflight Message Tracker NOT AMQP specific.
>>>>
>>>> Thanks
>>>>
>>>> On Thu, Oct 2, 2014 at 11:13 AM, Sriskandarajah Suhothayan <
>>>> s...@wso2.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Oct 2, 2014 at 11:06 AM, Asitha Nanayakkara <asi...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Hasitha,
>>>>>>
>>>>>> Concerns regarding *deleteMessageMetadataFromQueue(final String
>>>>>> queueName,List<AndesRemovableMetadata> messagesToRemove)*
>>>>>>
>>>>>> This method is used to delete meta data from a specific queue *queueName
>>>>>> (Note: *queueName in actual meta data would be different*). *This
>>>>>> methods' use case is to delete messages from a DLC. Note that there are
>>>>>> methods to add meta data to DLC too. (parameter to give the specific 
>>>>>> queue
>>>>>> to be stored to)
>>>>>>
>>>>>> *public void addMetaDataToQueue(final String queueName,
>>>>>> AndesMessageMetadata metadata) throws AndesException;*
>>>>>> *public void addMetadataToQueue(final String queueName,
>>>>>> List<AndesMessageMetadata> metadata) throws AndesException;*
>>>>>>
>>>>>> For the normal use case, to delete metadata there is no separate
>>>>>> method. We use the deleteMessages() method (meta data and content is
>>>>>> removed through this method). But if we are going to avoid content
>>>>>> duplication for topics in future we will need to add a method to
>>>>>> deleteMetadata as well (without specific queue name parameter)
>>>>>>
>>>>>>
>>>>>> +1
>>>>>
>>>>> Suho
>>>>>
>>>>>
>>>>>> On Wed, Oct 1, 2014 at 8:53 PM, Pamod Sylvester <pa...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I've also got started on some re factoring of MQTT related logic
>>>>>>> we've implemented to fit in with the new changes.
>>>>>>>
>>>>>>> We also might want to further abstract out ack handling logic, since
>>>>>>> in MQTT the way acks are handled are quite different. So we need to 
>>>>>>> address
>>>>>>> such polymorphic behaviours as well.
>>>>>>>
>>>>>>> for ex : - in AMQP when an ack arrives we purge the message, but in
>>>>>>> MQTT in QOS level 2 we wait for a couple of ack exchanges to consider 
>>>>>>> the
>>>>>>> message being delivered.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Oct 1, 2014 at 7:13 PM, Hasitha Hiranya <hasit...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I am currently doing the changes suggested by Suho and the team
>>>>>>>>
>>>>>>>> 1. Introducing a Strategy Class for message store
>>>>>>>> (async/direct/hybrid).
>>>>>>>>                - So far, I could make async strategy class done.
>>>>>>>> 2. remove business logics and threads from message store and make
>>>>>>>> it plain - done
>>>>>>>> 3. remove ackReceived from store level - done
>>>>>>>> 4. removed topic delivery worker - let us rewrite or merge to queue
>>>>>>>> delivery worker
>>>>>>>> 5. moved message counting from message store and moved to context
>>>>>>>> store
>>>>>>>> 6. prevented message store access from outside
>>>>>>>>
>>>>>>>> On the way I had to make modifications and improvements to the
>>>>>>>> existing model.
>>>>>>>> Also cleaned up Global queues whenever I met going thro the code
>>>>>>>> when doing above change.
>>>>>>>>
>>>>>>>> There are still changes needs to be done.
>>>>>>>>
>>>>>>>> >> what to do when last subscriber goes
>>>>>>>> >> for topic in mbeans how to get message count
>>>>>>>> >> for topics in mbeans for subscriptions how to get pending
>>>>>>>> message counts
>>>>>>>> >> queue browserdelivery worker, need to rewrite getSortedMessages()
>>>>>>>>
>>>>>>>> >> ack received moved to messaging engine. Logic resides at
>>>>>>>> messaging engine (tracking aspect) and message store manager (store 
>>>>>>>> aspect)
>>>>>>>> >> reimplement topic delivery worker
>>>>>>>>
>>>>>>>> messageStore or message store manager is never given out of message
>>>>>>>> engine. Do not call them directly. Always use MessagingEngine for 
>>>>>>>> message
>>>>>>>> operations.
>>>>>>>>
>>>>>>>> public void deleteMessages method in message store has a logic.
>>>>>>>> Should be removed.
>>>>>>>>
>>>>>>>> public void deleteMessageMetadataFromQueue(final String
>>>>>>>> queueName,List<AndesRemovableMetadata> messagesToRemove) why there is a
>>>>>>>> queue name? AndesRemovableMetadata has queue name inside.
>>>>>>>>
>>>>>>>> QueueSubscriptionAcknowledgementHandler need to revisit this class.
>>>>>>>> What does this do?? It has threads etc that never stops
>>>>>>>>
>>>>>>>> Should remove all global queue related stuff from cluster manager
>>>>>>>>
>>>>>>>> should remove all zookeeper related things from whole project up to
>>>>>>>> MB product from dependancy level
>>>>>>>>
>>>>>>>> moved all message count related stuff to Context store. Now, need
>>>>>>>> to implement thsose for jdbc.
>>>>>>>>
>>>>>>>> deleteMessageMetadataFromQueue(queueName,removableMetadata)
>>>>>>>> @MessageStore. Why queue name? We should get rid of it and implement.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> On Wed, Oct 1, 2014 at 9:25 AM, Darshana Akalanka Pagoda Arachchi <
>>>>>>>> darsha...@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Also I think we need to take a look at the CQL Database schema
>>>>>>>>> since for most of the column families including Meta Data column 
>>>>>>>>> family and
>>>>>>>>> Message Content Column family we use the same schema. Because of this 
>>>>>>>>> the
>>>>>>>>> message Id which is the primary key in Message Content column family 
>>>>>>>>> has to
>>>>>>>>> be converted into String (which is Long) before saving.
>>>>>>>>>
>>>>>>>>> On Tue, Sep 30, 2014 at 10:56 PM, Asitha Nanayakkara <
>>>>>>>>> asi...@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Shammi,
>>>>>>>>>>
>>>>>>>>>> In the existing version of MB, for topics we duplicate the
>>>>>>>>>> content and metadata. We thought of having reference counting to 
>>>>>>>>>> avoid
>>>>>>>>>> duplication of message content. But implementing reference counting 
>>>>>>>>>> in
>>>>>>>>>> Cassandra is unreliable (JDBC is ok). Also having different logic for
>>>>>>>>>> different database types is inconsistent with what we wanted to 
>>>>>>>>>> achieve
>>>>>>>>>> through the new storage model (with abstracted out MessageStore 
>>>>>>>>>> interface
>>>>>>>>>> and storing strategies).
>>>>>>>>>>
>>>>>>>>>> One of the options would be to duplicate metadata with a
>>>>>>>>>> reference to the same content (need a new field in metadata). One of 
>>>>>>>>>> the
>>>>>>>>>> concerns is how to delete content safely without deleting content 
>>>>>>>>>> prior to
>>>>>>>>>> all the subscribers, for the topic, successfully receive the message.
>>>>>>>>>>
>>>>>>>>>> I think we will have to discuss and relook at what is the best
>>>>>>>>>> approach for this.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> On Tue, Sep 30, 2014 at 4:21 PM, Shammi Jayasinghe <
>>>>>>>>>> sha...@wso2.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Hasitha,
>>>>>>>>>>>
>>>>>>>>>>> Could you please clarify what you mention my duplicating message
>>>>>>>>>>> metadata and content.
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Shammi
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Sep 30, 2014 at 11:21 AM, Hasitha Hiranya <
>>>>>>>>>>> hasit...@wso2.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Devs,
>>>>>>>>>>>>
>>>>>>>>>>>> For MB 3.0.0 we have identified following TODOs for the moment
>>>>>>>>>>>> on the way to milestone 1.
>>>>>>>>>>>>
>>>>>>>>>>>> >>duplicate message metadata and content
>>>>>>>>>>>> >>message store manager (all methods in message store to be
>>>>>>>>>>>> moved to manager??)
>>>>>>>>>>>> >>"durable" for in-memory
>>>>>>>>>>>> >>depreciated methods in message store remove
>>>>>>>>>>>> >>Cassandra server feature remove with Cassandra profile
>>>>>>>>>>>> >>Ackreceived - should be removed from message store
>>>>>>>>>>>> >>remove all logics from message store and make it plain
>>>>>>>>>>>> >>why acks are sent to disruptor??
>>>>>>>>>>>>
>>>>>>>>>>>> >>topic integration
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
>>>>>>>>>>>> --
>>>>>>>>>>>> *Hasitha Abeykoon*
>>>>>>>>>>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com
>>>>>>>>>>>> *cell:* *+94 719363063*
>>>>>>>>>>>> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Best Regards,
>>>>>>>>>>>
>>>>>>>>>>> *  Shammi Jayasinghe*
>>>>>>>>>>> Associate Tech Lead
>>>>>>>>>>> WSO2, Inc.; http://wso2.com,
>>>>>>>>>>> mobile: +94 71 4493085
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Asitha Nanayakkara*
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc. http://wso2.com/
>>>>>>>>>> Mob: + 94 77 85 30 682
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Dev mailing list
>>>>>>>>>> Dev@wso2.org
>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Darshana Akalanka Pagoda Arachchi,*
>>>>>>>>> *Software Engineer*
>>>>>>>>> *078-4721791 <078-4721791>*
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> 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>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Dev mailing list
>>>>>>>> Dev@wso2.org
>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *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
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Asitha Nanayakkara*
>>>>>> Software Engineer
>>>>>> WSO2, Inc. http://wso2.com/
>>>>>> Mob: + 94 77 85 30 682
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> Dev@wso2.org
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *S. Suhothayan*
>>>>> Technical Lead & Team Lead of WSO2 Complex Event Processor
>>>>>  *WSO2 Inc. *http://wso2.com
>>>>> * <http://wso2.com/>*
>>>>> lean . enterprise . middleware
>>>>>
>>>>>
>>>>> *cell: (+94) 779 756 757 <%28%2B94%29%20779%20756%20757> | blog:
>>>>> http://suhothayan.blogspot.com/ <http://suhothayan.blogspot.com/>twitter:
>>>>> http://twitter.com/suhothayan <http://twitter.com/suhothayan> | linked-in:
>>>>> http://lk.linkedin.com/in/suhothayan 
>>>>> <http://lk.linkedin.com/in/suhothayan>*
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Hasitha Abeykoon*
>>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com
>>>> *cell:* *+94 719363063*
>>>> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
>>>>
>>>>
>>> Thanks
>>>
>>> --
>>> *Asitha Nanayakkara*
>>> Software Engineer
>>> WSO2, Inc. http://wso2.com/
>>> Mob: + 94 77 85 30 682
>>>
>>>
>>
>>
>> --
>> *Hasitha Abeykoon*
>> Senior Software Engineer; WSO2, Inc.; http://wso2.com
>> *cell:* *+94 719363063*
>> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
>>
>>
>
>
> --
> *Asitha Nanayakkara*
> Software Engineer
> WSO2, Inc. http://wso2.com/
> Mob: + 94 77 85 30 682
>
>


-- 
*Asitha Nanayakkara*
Software Engineer
WSO2, Inc. http://wso2.com/
Mob: + 94 77 85 30 682
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to