+1 to Wolfwang solution
The other alternative is to share information between the two nodes
using an extra master node that keeps a global status (high-level
information) to know when to update each of the low-level nodes that
handle more specific information.
On Fri, Dec 30, 2011 at 5:09 AM, Wolfgang Laun <wolfgang.laun(a)gmail.com> wrote:
The standard proposal for this kind of problem is to route messages
to processing nodes according to some account key function, e.g. mod 2.
Thus, all state handling for one account is done in one node.
-W
On 29/12/2011, gboro54 <gboro54(a)gmail.com> wrote:
> Messages may or may not update the same context depending on the message. In
> this case we are generating charges for accounts. When the total sum of
> charges hit a certain threshold for a given account a new rate needs to be
> given. So in the example message 1 and message 2 are for account 123.
> Message 1 is picked up by node 1 and message 2 by node 2 from the queue.
> During evaluation of message 1 it is determined that the threshold is
> reached and all messages going forward are charged differently(i.e a rule
> checks the context plus the new charge to determine this). Therefor message
> 2 should be charged less. If both message 1 and 2 where in the same rules
> session and update is called on the context object the rule tree would be
> reevaluated and a new charge could be generated for message 2. In this case
> they are running on separate nodes and I am not sure who drools stateful
> sessions replicate if at all...
>
>
>
> salaboy wrote
>>
>> So, you are interchanging messages between the nodes to notify the
>> updates that needs to be executed?
>> Message 1 and Message 2 are related? Can they be evaluated in
>> parallel? or they require to have the same context?
>> Cheers
>>
>> On Thu, Dec 29, 2011 at 4:25 PM, gboro54 <gboro54@> wrote:
>>> Hi everyone. We are currently evaluating drools as a potential solution
>>> of a
>>> high throughput billing system. As is such we are planning to have
>>> messages
>>> read from a queue from 2 or more nodes. One thing we are trying to figure
>>> out is best way to share state in drools. The situation we are facing is
>>> as
>>> follow:
>>>
>>> -Node 1 reads message 1
>>> -Node 2 reads message 2
>>> -Node1 begins execution of rules on message 1 with context information
>>> -Node2 begins execution of rules on message 2 with context information
>>> -Node 1 updates the context information such that rules being executed by
>>> node2 should be reevaluated(i.e node 1 in the rules session executed an
>>> update on the context object)
>>>
>>>
>>> What is the best way to handle this situation?
>>>
>>> Thanks
>>>
>>> --
>>> View this message in context:
>>>
http://drools.46999.n3.nabble.com/Drools-HA-tp3619496p3619496.html
>>> Sent from the Drools: User forum mailing list archive at
Nabble.com.
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users@.jboss
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> --
>> - CTO @
http://www.plugtree.com
>> - MyJourney @
http://salaboy.wordpress.com
>> - Co-Founder @
http://www.jugargentina.org
>> - Co-Founder @
http://www.jbug.com.ar
>>
>> - Salatino "Salaboy" Mauricio -
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users@.jboss
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> --
> View this message in context:
>
http://drools.46999.n3.nabble.com/Drools-HA-tp3619496p3619628.html
> Sent from the Drools: User forum mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users