JuxMem: Juxtaposed Memory
Projects that use JuxMem
JuxMem is used in the following projects:
- The GDS (Grid Data Service) project ;
- The ASSIST project.
Middlewares that use JuxMem for storing data
JuxMem is used in the following middlewares:
The DIET platform, a
GridRPC-based middleware. An example of how JuxMem is used in DIET is
shown below. To be more precise, DIET is dynamically linked to the
JuxMem-C library, as all the entities of DIET are using the client
side of JuxMem. Please Note that JuxMem-J2SE is used for all other
entities required in a JuxMem network of peers.
In this example, a client C successively uses two servers (S1 and S2)
for two different computations. We assume that the second computation
depends on the first one: the output data D2 produced on server S1 is
used as input data for the computation scheduled on S2. We also assume
that D2 is intermediate data that is not needed by the client. On the
left side, we illustrate a typical scenario using the current GridRPC
API, with no support for data management. The client C needs to
explicitly transfer the output data D2 from server S1 to server S2
(steps 2 and 3). Then, the second computation on server S2 can take
place and returns data D3 to client C (step 4). On the right side we
show how these computations would be handled if the GridRPC
infrastructure provided support for localization transparency and
persistence. The server S1 stores the output data D2 in a data
management infrastructure (step 2). Then, the client C only needs to
transmit the ID of data D2 to S2 (step 3a). Consequently, the data
transfer between S1 and S2 occurs in a transparent manner for the
client (step 3b). We assume that the servers are connected to the
storage service using high-performance links, whereas this may not be
true for the links between clients and servers. Using a data
management infrastructure clearly avoids unnecessary and costly data
transfers between the client and servers. Arrows 2 and 3 (left side)
represent these unnecessary data transfers that can be optimized out
when using a data management infrastructure.
As a preliminary step, a data management service called Data Tree
Manager (DTM) has been specifically developed for the DIET
platform. This solution uses DIET's computing servers for persistent
data storage and needs no external storage resources. However, a
simpler and more flexible approach is to fully let data management at
the charge of an external data-sharing service. As
explained in the previous section, the benefits of such a service
consist in its mechanisms for transparent access, persistence, fault
tolerance and consistency. This approach is at the core of the design
of the JuxMem software platform.
application uses DIET for solving matrices-based problems. This
application has been successfully and transparently using JuxMem for
storing persistent matrices.
A prototype of CCM components that use JuxMem is working. This work is
based on JuxMem-J2SE and OpenCCM as well as on
JuxMem-C and MicoCCM. A more
mature solution will be available soon.
A work is currently in progress so that P3 (Personal Power Plant)
can use JuxMem. This work is based on JuxMem-J2SE.