Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cache (computing)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Software caches== ===Disk cache=== While CPU caches are generally managed entirely by hardware, a variety of software manages other caches. The [[page cache]] in main memory is managed by the [[operating system kernel]]. While the [[disk buffer]], which is an integrated part of the hard disk drive or solid state drive, is sometimes misleadingly referred to as ''disk cache'', its main functions are write sequencing and read prefetching. High-end [[disk controller]]s often have their own on-board cache for the hard disk drive's data blocks. Finally, a fast local hard disk drive can also cache information held on even slower data storage devices, such as remote servers ([[web cache]]) or local [[tape drive]]s or [[optical jukebox]]es; such a scheme is the main concept of [[hierarchical storage management]]. Also, fast flash-based solid-state drives (SSDs) can be used as caches for slower rotational-media hard disk drives, working together as [[hybrid drive]]s. ===Web cache=== {{Main|Web cache}} Web browsers and [[web proxy server]]s, either locally or at the [[Internet service provider]] (ISP), employ web caches to store previous responses from web servers, such as [[web page]]s and [[image file format|image]]s. Web caches reduce the amount of information that needs to be transmitted across the network, as information previously stored in the cache can often be re-used. This reduces bandwidth and processing requirements of the web server, and helps to improve [[responsiveness]] for users of the web.<ref>{{cite web|url=http://docforge.com/wiki/Web_application/Caching|title=Web application caching|author=Multiple (wiki)|work=Docforge|access-date=2013-07-24|archive-date=12 December 2019|archive-url=https://web.archive.org/web/20191212152625/http://www.docforge.com/wiki/Web_application/Caching|url-status=dead}}</ref> Another form of cache is [[P2P caching]], where the files most sought for by [[peer-to-peer]] applications are stored in an ISP cache to accelerate P2P transfers. Similarly, decentralised equivalents exist, which allow communities to perform the same task for P2P traffic, for example, Corelli.<ref>{{cite conference|last1=Tyson|first1=Gareth|last2=Mauthe|first2=Andreas|last3=Kaune|first3=Sebastian|last4=Mu|first4=Mu|last5=Plagemann|first5=Thomas|title=Corelli: A Dynamic Replication Service for Supporting Latency-Dependent Content in Community Networks|url=http://comp.eprints.lancs.ac.uk/2044/1/MMCN09.pdf|conference=MMCN'09|archive-url=https://web.archive.org/web/20150618193018/http://comp.eprints.lancs.ac.uk/2044/1/MMCN09.pdf|archive-date=2015-06-18}}</ref> ===Memoization=== {{Main|Memoization}}<!-- NOTE: this is *NOT* a typo for "memorization"! --> A cache can store data that is computed on demand rather than retrieved from a backing store. [[Memoization]] is an [[Program optimization|optimization]] technique that stores the results of resource-consuming [[function call]]s within a lookup table, allowing subsequent calls to reuse the stored results and avoid repeated computation. It is related to the [[dynamic programming]] algorithm design methodology, which can also be thought of as a means of caching. ===Content delivery network=== A [[content delivery network]] (CDN) is a network of distributed servers that deliver pages and other [[web content]] to a user, based on the geographic locations of the user, the origin of the web page and the content delivery server. CDNs were introduced in the late 1990s as a way to speed up the delivery of static content, such as HTML pages, images and videos. By replicating content on multiple servers around the world and delivering it to users based on their location, CDNs can significantly improve the speed and availability of a website or application. When a user requests a piece of content, the CDN will check to see if it has a copy of the content in its cache. If it does, the CDN will deliver the content to the user from the cache.<ref name=":0">{{cite web|url=https://people.cs.umass.edu/~ramesh/Site/PUBLICATIONS_files/DMPPSW02.pdf|title=Globally Distributed Content Delivery, by J. Dilley, B. Maggs, J. Parikh, H. Prokop, R. Sitaraman and B. Weihl, IEEE Internet Computing, Volume 6, Issue 5, November 2002.|access-date=2019-10-25|archive-url=https://web.archive.org/web/20170809231307/http://people.cs.umass.edu/~ramesh/Site/PUBLICATIONS_files/DMPPSW02.pdf|archive-date=2017-08-09|url-status=live}}</ref> ===Cloud storage gateway=== {{Main|Cloud storage gateway}} A [[cloud storage gateway]] is a [[hybrid cloud storage]] device that connects a local network to one or more [[cloud storage service]]s, typically [[object storage]] services such as [[Amazon S3]]. It provides a cache for frequently accessed data, providing high speed local access to frequently accessed data in the cloud storage service. Cloud storage gateways also provide additional benefits such as accessing cloud object storage through traditional file serving protocols as well as continued access to cached data during connectivity outages.<ref name="searchstorage1">{{cite web|url=https://www.techtarget.com/searchstorage/definition/cloud-storage-gateway|title=Definition: cloud storage gateway|work=SearchStorage|date=July 2014}}</ref><!--[[User:Kvng/RTH]]--> ===Other caches=== The BIND [[Domain Name System|DNS]] daemon caches a mapping of domain names to [[IP address]]es, as does a resolver library. Write-through operation is common when operating over unreliable networks (like an Ethernet LAN), because of the enormous complexity of the coherency protocol required between multiple write-back caches when communication is unreliable. For instance, web page caches and [[client-side]] [[Network File System|network file system]] caches (like those in [[Network File System (protocol)|NFS]] or [[Server Message Block|SMB]]) are typically read-only or write-through specifically to keep the network protocol simple and reliable. [[Web search engine|Search engine]]s also frequently make web pages they have indexed available from their cache. For example, [[Google]] provides a "Cached" link next to each search result. This can prove useful when web pages from a web server are temporarily or permanently inaccessible. [[Database caching]] can substantially improve the throughput of [[database]] applications, for example in the processing of [[Database index|indexes]], [[Data dictionary|data dictionaries]], and frequently used subsets of data. A [[distributed cache]]<ref>{{cite journal|last1=Paul|first1=S.|last2=Fei|first2=Z.|date=1 February 2001|title=Distributed caching with centralized control|journal=Computer Communications|volume=24|issue=2|pages=256β268|citeseerx=10.1.1.38.1094|doi=10.1016/S0140-3664(00)00322-4}}<!--|access-date=18 November 2009--></ref> uses networked hosts to provide scalability, reliability and performance to the application.<ref>{{cite journal|last=Khan|first=Iqbal|title=Distributed Caching on the Path To Scalability|url=https://msdn.microsoft.com/magazine/dd942840.aspx|journal=MSDN|volume=24|issue=7|date=July 2009}}</ref> The hosts can be co-located or spread over different geographical regions.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)