![]() After an hour has passed, all cached DNS records of the old address will have expired, and can be reconfigured again, this time to stop advertising the old address. First, the network manager may temporarily reconfigure the network layer of to advertise both the old and the new Internet addresses, and then modify the authoritative DNS record to show the new address. There are two different actions that the network manager at Pedantic University might take to make sure that the inconsistency is not an inconvenience. That new name record will contain the new, updated address, so this system provides eventual consistency. When the time-to-live of that record expires, the local name server will handle any further requests for the name by asking ns. for a new name record. The system will eventually reconcile this inconsistency. So, until the expiration time, the local cache will be inconsistent with the authoritative version at Pedantic University. A typical time-to-live is one hour it is measured from the moment that the local name server receives the record. Every name server record comes with an expiration time, known as the time-to-live (TTL), that can range from seconds to months. DNS deals with this inconsistency by limiting the lifetime of a cached name record. The problem is that local DNS caches anywhere in the Internet may still contain the old record of the address of. At some point the manager updates the authoritative record stored in the name server ns. Now, suppose that a network manager at Pedantic University changes the Internet address of to 128.32.201.15. If the client then asks for the local name server will be able to use the cached record for ns. to directly ask that name server, without having to go back up to the root to find and thence to to find ns. In the course of doing so, the local name server might accumulate the following name records in its cache: Suppose that a client asks some local name server to resolve the name. When a client calls on a DNS server to do a recursive name lookup, if the DNS server is successful in resolving the name it caches a copy of the answer as well as any intermediate answers that it received. ![]() The Internet Domain Name System provides an example of an eventual consistency cache that does not meet the read/write coherence specification. There are at least three ways to regain consistency, two of which provide strict consistency, when there are multiple caches.Įventual Consistency with Timer Expiration If the second thread has its own cache, even a write-through design may not maintain consistency because updating the secondary memory does not affect a potential replica hiding in the second thread’s cache. But if a concurrent thread reads the modified data object directly from secondary memory, the result will depend on whether or not the cache manager has done the secondary memory update. If a concurrent thread reads a modified data object via the same cache, the cache will deliver the modified version, and thus maintain strict consistency. On the other hand, if there is more than one cache, or other threads can read directly from the secondary storage device, the designer must take additional measures to ensure that other threads cannot discover the violated constraint. Thus, because the cache manager masks the inconsistency, a non-write-through cache can still provide strict consistency. Meanwhile, if that same thread reads the same data object by sending a READ request to the cache, it will receive the updated value from the cache, even if the cache manager has not yet restored the invariant. The thread that performed the write can go about its business expecting that the cache manager will eventually update the secondary memory replica and the invariant will once again hold. ![]() ![]() Unfortunately, the delay involved in waiting for the write-through to finish can be a performance bottleneck, so write-through caches are not popular.Ī non-write-through cache acknowledges that a write is complete as soon as the cache manager updates the primary replica, in the cache. Read/write coherence is thus a specification that the cache provide strict consistency.Ī write-through cache provides strict consistency for its clients in a straightforward way: it does not acknowledge that a write is complete until it finishes updating both the primary and secondary memory replicas. The result of a read of a named object is always the value of the most recent write to that object.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |