When a conflicting lock request comes in for a file/directory, the lock service asks the current lock holder to release its lock. Dealing with conflicts # A read lock holder must invalidate its cache entries # Otherwise, the lock server will mark it as failed and reallocate the locks. A Frangipani server gets a lease from the lock service when a lock request is granted, and it must continually renew this lease before a specified expiration time. Multiple servers can hold read locks for an object, but those locks must be released before a write lock request can be granted. Similarly, a server updates a file or directory by requesting for a write lock, after which it can read or write associated data from the disk and cache it. When a Frangipani server wants to read a file or directory, it requests for a read lock on the object which enables the server to load relevant data from disk into its cache. Synchronization and Cache Coherence # Frangipani uses multiple-reader/single-writer locks # Next up, we’ll discuss Frangipani’s approach to solving this problem. Herein lies the challenge of cache coherence: how can we keep the data across multiple caches consistent? That is, we want every read for a file from one workstation to see the latest write to that file, despite the file being in another workstation’s cache. The goal in these cases is that the operations are correct. However, a user may occasionally want to access files written by another user, or even access their files on another workstation. Frangipani makes these operations fast by maintaining a write-back cache on each workstation. In this scenario, most of the operations will involve a user accessing their files. In such an environment, each user’s workstation will have a Frangipani file server module sitting below the user programs. ![]() Much of Frangipani’s abilities to be fault-tolerant, scalable and provide easy administration are inherited from Petal.Ī typical setup consists of multiple Frangipani servers running on top of a shared Petal virtual disk as shown in Figure 1 below.įrangipani maintains a write-back cache #įrangipani was built for a use case where all the servers are under a common administration e.g. It also provides the option to replicate data for high availability. Petal’s virtual disks are similar to physical disks in the way that data is written and read in blocks. The locking protocol ensures cache coherenceįrangipani is built on top of a distributed storage service named Petal, which provides virtual disks to its clients.A write lock holder must flush its cache entries.A read lock holder must invalidate its cache entries.Frangipani uses multiple-reader/single-writer locks. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |