On Nov 2, 8:21 pm, Fred Faber <[email protected]> wrote:
> In general, I'm curious what it means for a scope to be valid across nodes.
>  This seems to imply that the state of a session-scoped object must be
> entirely serializable.  Are you requiring such a guarantee?

Yes. Basically all application classes must be serializable. The
application code must be event-driven and organized into short tasks/
transactions. In a task, when the code calls a method on entity [1],
the server will read and deserialize the entity from database. When
the task ends, all modified entities are serialized and written into
database. Database access is hidden from application code - all
objects look like they would already be in memory, except that some of
them are lazy-loading proxies instead of the real thing.

In a cluster environment, the goal of the application server is to
dynamically detect the database access patterns and move the entities
which are commonly modified together [2] into the same server. The
target audience of this system is developers of online multiplayer
games, especially MMO games, so low latency and scalability are more
important than throughput and durability. And in games the players are
typically moving around, so the system needs to take into account
which players are currently interacting with each other, and then
adjust the load balancing and data partitioning accordingly. The
ultimate goal is to achieve shardless game worlds. See
http://java.sun.com/developer/technicalArticles/Interviews/kesselman_qa.html
for more information (Dimdwarf was inspired by Darkstar).

[1] I'm using the DDD terminology of Entities and Value Objects:
http://devlicio.us/blogs/casey/archive/2009/02/13/ddd-entities-and-value-objects.aspx

[2] Figuring out this dynamic data partitioning is a research problem
still to be solved.

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to