![]() ![]() ![]() ![]() ![]() Next: Reading Up: A Mobility-Transparent Model for Previous: Summary   Contents   Index |
I have already decided to do LRU-caching, see Section 3.6, but I have not yet decided whether the system should cache multiple copies of a file--i.e., if multiple processes on the client are using the file--or just one copy.
I have decided to cache just one copy.5.1 If the user of the mobile client is using programs that access files concurrently (e.g., multiple instances of the same program), then he or she might end up with local conflicts--but it is probably the users own fault, since mobile computers are normally in use by a single person at a time, see Sections 1.2.1 and 2.3. Thus it is really no step back compared to what the users in a multi-user environment are faced with, because there the fault might as well be some other users.
This decision does, however, conflict with the traditional definition of session semantics [3]. My system guarantees session semantics pr. client and not pr. application.
Much of the presentation that follows is based on an article [51] presented at the OOPSLA'96 Workshop on Object Replication and Mobile Computing (ORMC'96).
Recall, that I am using a primary copy scheme with a single server and multiple clients using session semantics. The model is based on the use of time as a consistency measure. With each cached file is associated:
If , then the last check for consistency was positive, otherwise negative.
According to the definition of consistency, see Definition 3.4 in
Section 3.3.5, a consistency check can be performed simply by comparing
the modification time (
) of the cached file with the modification time
(
) of the primary copy on the server.
With every open for reading must be associated a Consistency Time Bound (),
and with every open for writing must be associated a Modification Time Bound (
).
Furthermore, an Expiration Time Bound (
) must be associated with each close.
These time bounds must be given explicitly by the application.
Their exact meanings are explained in Sections 5.1, 5.2
and 5.5, respectively.
Throughout the rest of this chapter the notations listed in Tables 5.1, 5.2, 5.3 will be used extensively; they will be explained later.
![]() |
Consistency Time | |
![]() |
Consistency Check Time | |
![]() |
Consistency Flag |
![]() ![]() |
![]() |
(Server) Modification Time |
![]() |
Consistency Time Bound |
![]() |
Modification Time Bound |
![]() |
Expiration Time Bound (*) |
![]() |
Readlock Expiration Time Bound |
![]() |
Writelock Expiration Time Bound |
![]() ![]() ![]() ![]() ![]() Next: Reading Up: A Mobility-Transparent Model for Previous: Summary   Contents   Index |