Hi Mainak, Thanks for the background to your questions. It sounds like interesting research.
I would not go down the path of pool routers. It's pretty difficult to implement custom things with them and we are slowly moving away from remote deployment (used by pools). E.g. Akka Typed will not support that. I would implement the cluster aware and dynamic routung aspects with ordinary actors subscribing to Cluster membership events. /Patrik tors 13 juli 2017 kl. 17:29 skrev Mainak Ghosh <[email protected]>: > Hello, > > > Sorry for the long post, but I want to provide some context. I am a CS PhD > student at UIUC focusing on problems related to replication and distributed > systems. We are exploring using Akka for a research problem related to > automatically configuring Actor replication. > > > > Actor frameworks have been extensively adopted for implementing shared > nothing applications because they enable horizontal scaling. Scaling > stateful actors through replication has an overhead of reconciliation for > providing consistency guarantees. At one end, if the application requires > eventual consistency, the overhead is minimal as the reconciliation can > happen in the background, away from the fast path. On the other end, for > strong consistency guarantees, every additional actor replica instance can > slow the overall execution. The problem has similarities with storage > systems where replication is necessary to scale read/write operations. > > > > We believe that the actor framework should flexibly tradeoff scalability > for consistency based on the application's performance and/or consistency > requirement. There can be consistency guarantees enforced by the > application for correctness. An application may not tolerate consistency > below read-my-write. In this work, we want to explore the tradeoffs > involved in building such a system that take in these application > requirements and tries to decide the number of actors to create and what > consistency to support. This is an online problem and the decisions can > change based on incoming workload characteristic. Similar projects have > addressed choosing consistency or the replica configuration, but to the > best of our knowledge no prior work has addressed both or the issue in an > actor-based framework. Pileus(http://dl.acm.org/citation.cfm?id=2991109) > looks into the problem of infering consistency from latency SLA but they > did not handle replica creation. "Take me to your leader"( > http://dl.acm.org/citation.cfm?id=2824047) handles replica creation but > it does not guarantee latency SLAs. > > > To implement our prototype, we are utilizing three Akka modules -- Router > with resizer, Cluster, and Distributed Data. Routers in Akka support actor > scale out with load (using resizer). We want the routers to be > cluster-aware because web applications, which is a typical use-case runs > logic in a backend cluster. The distributed data library in Akka provides > simple apis for state reconciliation among routees with different > consistency guarantees (WriteLocal, WriteQuorum, etc). Pool based cluster > aware routers typically can only manage a fixed number of routees specified > programmatically or through config. They do not support on-demand resizing > unlike normal routers. Enabling this can help us with our basic setup. If > there are some fundamental limitations to doing this, it would be great if > you can suggest another way in which we can create the same setup. The > current code is hosted at > https://github.com/mghosh4/actor-scaling/tree/master/MWMRAkka/akka-sample-distributed-data-java > > Thanks and Regards, > Mainak > > -- > >>>>>>>>>> Read the docs: http://akka.io/docs/ > >>>>>>>>>> Check the FAQ: > http://doc.akka.io/docs/akka/current/additional/faq.html > >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user > --- > You received this message because you are subscribed to the Google Groups > "Akka User List" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/akka-user. > For more options, visit https://groups.google.com/d/optout. > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
