Sorry, what problem are we trying to solve? I thought the concern was that an app may start using node resources which affects other apps. For that problem dynamic load balancing could be the solution.
-leo On Tue, May 29, 2012 at 12:56 PM, Flavio Junqueira <f...@yahoo-inc.com> wrote: > Ok, I'm confused by your message, Leo. Let me summarize the understanding I > have of this thread, and you guys please correct me where I didn't get it > right: > > - Nan mentions that isolation is a problem, in particular multiple > applications running on the same jvm; > - Leo responds saying that one way to guarantee isolation is to use logical > clusters; > - Nan says that a problem with using logical clusters is the fact that it > does not enable resource sharing (e.g., streams); > - I say it is possible to share streams with a "producer" application; > - Leo says that the feature request of dynamic load balancing makes sense > (not sure if the discussion during the meeting was misleading, I'm sorry if > it was). > > Balancing the load dynamically is a desirable feature, but I find it > difficult to get it right for a production setting. I'm more than willing to > be convinced otherwise, though, and even work on it. But, for the sake of > this thread, dynamic load balancing does not seem to be the feature that was > originally put under discussion. The point to me is that there seem to be > multiple aspects being discussed at once. It might make sense to focus on one > at a time. > > -Flavio > > On May 29, 2012, at 7:47 PM, Leo Neumeyer wrote: > >> I agree with Naan's functionality request. It's definitely in the >> roadmap. We call it dynamic load balancing. The idea is to adapt the >> partition function as a function of the load in each node. This will >> require that PEs be migrated before the new partition is applied. >> Event streams will have to be put on hold while migration occurs. >> >> However, in a production system, you may still want to have smaller >> dedicated subclusters for some apps because dynamic load balancing >> will always have some cost. For example, the adaptation of the >> partition function will not be instantaneous and if apps are not >> sharing data, using smaller subclusters will reduce network traffic. >> >> In any case, for now if you need isolation, the only option will be to >> use subclusters. There is nobody working on dynamic load balancing but >> if someone ones to give it a try, it's a great problem to work on. >> >> -leo >> >> On Tue, May 29, 2012 at 10:33 AM, Flavio Junqueira <f...@yahoo-inc.com> >> wrote: >>> Hi Nan, In my understanding, the design of piper supports exactly the case >>> you're saying. You can have a producer app that produces a stream and >>> consumer apps subscribe to it. My point was simply that you need a third >>> app to be the producer of the stream. The consumers of the stream do not >>> need to be aware of how the stream is being produced. >>> >>> -Flavio >>> >>> On May 28, 2012, at 12:50 PM, Nan N. Jiang wrote: >>> >>>> Hi Flavio, >>>> >>>> I think in the ideal case, S4 should act as a real cluster. >>>> We can deploy our APP in the S4 cluster and we don't need to think about >>>> how >>>> and where the app is deployed. >>>> The APP just need to specify which stream(event type) it's interested, then >>>> if there is event generated for this stream, the event will flow to this >>>> APP. S4 as a platform should help to handle this instead of using feeds >>>> copies. >>>> >>>> With this feature, APP will be free from finding the way how to get the >>>> incoming events and focus what kind of events it want. >>>> >>>> -Nan >>>> >>>> >>>> >>>> On 5/25/12 1:50 PM, "Flavio Junqueira" <f...@yahoo-inc.com> wrote: >>>> >>>>> Nan, I'm not sure I understand what sharing means. Does it mean that each >>>>> app >>>>> gets a copy of the stream or you want each app to get a fraction of the >>>>> stream? In any case, you seem to need a third app perhaps that feeds >>>>> copies of >>>>> the stream. >>>>> >>>>> -Flavio >>>>> >>>>> On May 11, 2012, at 11:58 AM, Nan N. Jiang wrote: >>>>> >>>>>> Yes. If there is no sharing or dependencies between apps, there is no >>>>>> need >>>>>> to share the cluster. >>>>>> >>>>>> But if there is sharing or dependencies between apps, for example: >>>>>> sharing >>>>>> event stream(thinking about more then one apps are interested in the same >>>>>> event stream case), how could s4 solve this issue with logical cluster? >>>>>> >>>>>> -- Nan >>>>>> >>>>>> On 5/8/12 9:30 PM, "Leo Neumeyer" <leoneume...@gmail.com> wrote: >>>>>> >>>>>>> Seems to me that the simplest solution is to create a logical cluster >>>>>>> for >>>>>>> each app or group of apps that need to be isolated. Using various >>>>>>> smaller >>>>>>> clusters may be more efficient that using a single large one because >>>>>>> there >>>>>>> fewer nodes use less network traffic and makes it easier to plan >>>>>>> resource >>>>>>> allocation. If there is no sharing or dependencies between apps, there >>>>>>> is >>>>>>> no need to share the cluster. The tools will make it easy to create >>>>>>> clusters. Does this make sense for your use case? >>>>>>> >>>>>>> -leo >>>>>>> >>>>>>> On Tue, May 1, 2012 at 12:08 PM, Matthieu Morel <mmo...@apache.org> >>>>>>> wrote: >>>>>>> >>>>>>>> On 4/29/12 2:49 AM, Nan N. Jiang wrote: >>>>>>>> >>>>>>>>> Hi Team, >>>>>>>>> >>>>>>>>> I want to start a discuss about ŒRuntime isolation¹ for s4. >>>>>>>>> >>>>>>>>> Currently, in S4 and S4-piper, following S4¹s symmetric principal, all >>>>>>>>> applications will deployed in all nodes. >>>>>>>>> And when starting s4 service, all applications deployed will run in >>>>>>>>> the >>>>>>>>> same JVM. >>>>>>>>> This can be a disaster. >>>>>>>>> Different application will fight for the JVM/hardware resource. >>>>>>>>> Bad application even could kill other applications. >>>>>>>>> >>>>>>>>> Yes. Application Isolation could release the pain. >>>>>>>>> But all applications are still fight for the resource in the same >>>>>>>>> node. >>>>>>>>> And all the PE in the same Application still fight for JVM resource. >>>>>>>>> >>>>>>>>> Thinking about a big application which contains hundreds of PE >>>>>>>>> prototypes, >>>>>>>>> If we want start this application in one JVM, >>>>>>>>> Our s4 cluster must have a set of very high performance machines due >>>>>>>>> to >>>>>>>>> the CPU/Memory and other requirement of this application. >>>>>>>>> This will limit the usage of S4 in big solution. >>>>>>>>> I think the future of s4 cluster will be a big set of normal boxes >>>>>>>>> instead of a small set of high performance boxes. >>>>>>>>> >>>>>>>>> So, compare application isolation, could we go further? >>>>>>>>> Could we provide Runtime Isolation function for S4? >>>>>>>>> Could we change the local deploy unit from application to a group of >>>>>>>>> PE? >>>>>>>>> even one PE? >>>>>>>>> If this function can be provided by s4, >>>>>>>>> Every PE could run in it¹s own JVM if needed. >>>>>>>>> Then the resource fighting between PE will be minimum. >>>>>>>>> >>>>>>>> >>>>>>>> Deploying different PEs to different nodes would break the symmetry >>>>>>>> which >>>>>>>> is a key property of the design of S4. However, you are pointing out a >>>>>>>> real >>>>>>>> issue, and one way to provide PE isolation might be at the level of >>>>>>>> partitioning. We could provide a way to provide exclusive partitioning >>>>>>>> for >>>>>>>> some PEs using a partition exclusiveness scheme, which would be >>>>>>>> propagated >>>>>>>> to every node. Concretely, messages for PE with key K (or a set of >>>>>>>> keys) >>>>>>>> would be sent to node N, and only messages with such keys would be >>>>>>>> sent to >>>>>>>> node N. This way, we provide PE isolation, without modifying the >>>>>>>> design of >>>>>>>> the platform. >>>>>>>> >>>>>>>> Do you think this could properly address the isolation issue? >>>>>>>> To all: would that harm the overall design of the platform? >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> Matthieu >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Let¹s discuss about this. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Jiang Nan >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> flavio >>>>> junqueira >>>>> senior research scientist >>>>> >>>>> f...@yahoo-inc.com >>>>> direct +34 93-183-8828 >>>>> >>>>> avinguda diagonal 177, 8th floor, barcelona, 08018, es >>>>> phone (408) 349 3300 fax (408) 349 3301 >>>>> >>>> >>> >>> flavio >>> junqueira >>> senior research scientist >>> >>> f...@yahoo-inc.com >>> direct +34 93-183-8828 >>> >>> avinguda diagonal 177, 8th floor, barcelona, 08018, es >>> phone (408) 349 3300 fax (408) 349 3301 >>> >> >> >> >> -- >> >> Leo Neumeyer (@leoneu) > > -- Leo Neumeyer (@leoneu)