Hi Sathwik, Now I got the idea. Thanks for the information. I'll consider the point.
Thank you. On 27 March 2015 at 14:34, Sathwik B P <sathwik...@gmail.com> wrote: > Hi Sudharma, > > This is not about storing in the database. > > When a deployment is initiated to ODE, the process artifacts are first > stored in the file system (under WEB-INF/processes folder is the default > configuration). Then a deployment poller scans for new files on the file > store and invokes the bpel compiler to create the java object model from > the bpel file (we refer it as OModel) with a file name ending with *.cbp* > on the file system. Based on this object model, data is populated in the > database. Remember that the whole model is not stored in the database. So > on a restart of the machine hosting ODE, the deployment poller will check > for this *.CBP* file and load into memory. As a process instance is created > the activities is taken from this model and fed into the JaCOB which is > ODE's VPU. > > So I am basically talking about this file system where the process > artifacts will be stored. > > Today this resides locally on the machine where ODE war is deployed. Think > about in a cluster. Where would you suggest to have this file system. > > regards, > sathwik > > On Fri, Mar 27, 2015 at 2:08 PM, sudharma subasinghe < > suba...@cse.mrt.ac.lk> > wrote: > > > Hi Sathwik, > > > > Thank you for your feedback. I agree with you about the single point of > > failure. I think in the Hazelcast cluster when the database goes down, > > writes in the cache are queued in a log file so the writes can be > persisted > > in the database once it is backed up. Am I right? > > > > Thank you. > > > > On 27 March 2015 at 13:27, Sathwik B P <sathwik...@gmail.com> wrote: > > > > > Hi Sudharma, > > > > > > It's a good proposal :) > > > > > > I have one piece information to provide you. As you must be aware that > > ODE > > > stores it's deployment artifacts on a file system. > > > In a cluster environment this file system should either be accessible > to > > > all the nodes or we need a distributed/replicated file system. > > > > > > Though i would recommend using a replicated file system more than a > > shared > > > file system. A shared file system would either be on a separate box on > > the > > > cluster and its single point of failure. > > > By using a replicated file system store we can provide maximum cluster > > > availability. > > > > > > What do you think Tammo. > > > > > > regards, > > > sathwik > > > > > > On Fri, Mar 27, 2015 at 10:16 AM, sudharma subasinghe < > > > suba...@cse.mrt.ac.lk > > > > wrote: > > > > > > > Hi Tammo, > > > > > > > > Thank you for the feedback. I'll complete the proposal as your > comment. > > > > > > > > Thank you. > > > > > > > > On 27 March 2015 at 04:45, Tammo van Lessen <tvanles...@gmail.com> > > > wrote: > > > > > > > > > Hi Sudharma, > > > > > > > > > > very good proposal. A minor comment on the paragraph about the > > > conflicts > > > > > during deployment: There is already a marker file for deployed > > > processes, > > > > > so it wont happen that a node tries to deploy a process that is > > already > > > > > known to the database, even it has changed. The race condition that > > > needs > > > > > to be avoided by the clustering implementation is that two node > take > > up > > > > > newly added processes at the very same time. > > > > > > > > > > Could you please add a short paragraph about your availabilty and > how > > > > much > > > > > time you can commit for GSOC this summer? I'd love to also see a > > > > > deliverable that allows us to easily test ODE in a clustered setup, > > > e.g. > > > > > using docker-compose. Would that fit into the "Testing and develop" > > > time > > > > > slot? > > > > > > > > > > Thanks, > > > > > Tammo > > > > > > > > > > On Thu, Mar 26, 2015 at 5:26 PM, sudharma subasinghe < > > > > > suba...@cse.mrt.ac.lk> > > > > > wrote: > > > > > > > > > > > Hi Tammo, > > > > > > > > > > > > I drafted the proposal.This is the link for Google doc. It would > be > > > > great > > > > > > if you can give a feedback on this. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://docs.google.com/document/d/1H7cLekwUr2juNX2DFzgqq5FEkHZPDtFkHKz0aLWiB2k/edit?usp=sharing > > > > > > > > > > > > Thank you. > > > > > > > > > > > > On 26 March 2015 at 21:35, Tammo van Lessen < > tvanles...@gmail.com> > > > > > wrote: > > > > > > > > > > > > > Hi Sudharma, > > > > > > > > > > > > > > yes. Regarding 3) it is in particular the isolation of process > > > > > instances. > > > > > > > There must be a load balancer in front of ODE, and the lock is > to > > > > avoid > > > > > > the > > > > > > > case where node one is processing a process instance and node > two > > > > > > receives > > > > > > > a message for the same process instance and starts processing > as > > > > well. > > > > > > > > > > > > > > Looking forward to your proposal. > > > > > > > > > > > > > > Thanks, > > > > > > > Tammo > > > > > > > > > > > > > > On Thu, Mar 26, 2015 at 4:52 PM, sudharma subasinghe < > > > > > > > suba...@cse.mrt.ac.lk> > > > > > > > wrote: > > > > > > > > > > > > > > > Hi Tammo, > > > > > > > > > > > > > > > > Thank you for reply. I went through the thread in jira which > is > > > > > > referring > > > > > > > > this issue. I extracted few ideas from there. As I think > > > > > implementation > > > > > > > > should contain following points. > > > > > > > > > > > > > > > > 1) Support cluster awareness in deploying phase > > > > > > > > 2) Improve the ODE's scheduler > > > > > > > > 3) Implement a distributed lock to avoid concurrent > > modification > > > in > > > > > > > cluster > > > > > > > > > > > > > > > > I am drafting a proposal including those points. I'll send it > > for > > > > > your > > > > > > > > review soon. > > > > > > > > > > > > > > > > Thank you. > > > > > > > > > > > > > > > > On 26 March 2015 at 18:49, Tammo van Lessen < > > > tvanles...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > ODE is originally designed to be run in a clustered > fashion, > > > > > however > > > > > > it > > > > > > > > has > > > > > > > > > never been implemented in ODE. The goal would be to > > integrate a > > > > > > > > clustering > > > > > > > > > framework like Hazelcast in order to add this > functionality. > > > > > > > > > > > > > > > > > > The main integration points are the ODE scheduler and the > > > process > > > > > > > store. > > > > > > > > > The scheduler is already capable to handle several nodes > but > > > > needs > > > > > > the > > > > > > > > > integration to know if cluster nodes are still present. The > > API > > > > > > > currently > > > > > > > > > anticipates a heart beat model, with Hazelcast this might > > need > > > to > > > > > be > > > > > > > > > changed or adapted. The other part is the process store, > > which > > > > > > > implements > > > > > > > > > the (hot-)deployment that is filesystem based. Under the > > > > assumption > > > > > > > that > > > > > > > > a > > > > > > > > > distributed filesystem is used, the cluster implementation > > > needs > > > > to > > > > > > > take > > > > > > > > > care that only one single node (the master) is taking care > of > > > new > > > > > > > > > deployments, just in order to avoid multiple nodes doing > the > > > same > > > > > > thing > > > > > > > > in > > > > > > > > > parallel. Then there is also one lock that needs to be > > > > distributed, > > > > > > > > either > > > > > > > > > using database locks or a distributed lock (e.g. from > > > hazelcast). > > > > > > > > > > > > > > > > > > Addtional requirements would be the integration with our > > config > > > > > file > > > > > > so > > > > > > > > > that a cluster (and its nodes) can be configured as well as > > > some > > > > > > basic > > > > > > > > > monitoring. Also a basic test environment, e.g. based on > > Docker > > > > > would > > > > > > > be > > > > > > > > > very good to verify the approach. > > > > > > > > > > > > > > > > > > So I guess the steps would be: 1. Research to find a > suitable > > > > > cluster > > > > > > > > > framework (I think Hazelcast would be a good fit) and > getting > > > > > > familiar > > > > > > > > with > > > > > > > > > ODE and this framework. 2. Identify the integration points > in > > > > ODE. > > > > > 3. > > > > > > > > Based > > > > > > > > > on the chosen framework, develop approaches to serve these > > > > > > integration > > > > > > > > > points (We need leader election for the store, a > distributed > > > lock > > > > > for > > > > > > > the > > > > > > > > > runtime and the information whether nodes are joining or > > > leaving > > > > > the > > > > > > > > > cluster to be able to reschedule tasks from lost nodes) > along > > > > with > > > > > a > > > > > > > > > distributed setup to test. 4. Develop and test, 5. Test. > > > > > > > > > > > > > > > > > > For questions regarding the integration points please feel > > free > > > > to > > > > > > ask > > > > > > > > > here, I can give you some pointers. > > > > > > > > > > > > > > > > > > HTH, > > > > > > > > > Tammo > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Mar 24, 2015 at 5:03 AM, sudharma subasinghe < > > > > > > > > > suba...@cse.mrt.ac.lk> > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > I am interested in this project as I have enough basic > > > > knowledge > > > > > > > about > > > > > > > > > > apache axis2, apache ODE, WS-BPEL and I am currently > > studying > > > > > > those. > > > > > > > > So I > > > > > > > > > > appreciate if you can provide more details on project. > > > > > > > > > > Thank you > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > Tammo van Lessen - http://www.taval.de > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Tammo van Lessen - http://www.taval.de > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Tammo van Lessen - http://www.taval.de > > > > > > > > > > > > > > >