The client is not the application that changes data in the backing store. If the data changed in the backing store, the copy in the cache will be out of date, or "stale". Alternatively, when the client updates the data in the cache, copies of that data in other caches will become stale. There are special communication protocols that allow cache managers to talk to each other to keep the data meaningful. These are known as coherency protocols.
A cache is small, and it will be full, or almost full, most of the time. So when a new value is added, an old one needs to be removed. There are different ways in which this selection can be done:
The word "cache" was first used in computing in 1967, when a scientific article was prepared to be published in IBM Systems Journal. The article was about a new improvement of the memory in Model 85. Model 85 was a computer of the IBM System/360 product line. The editor of the Journal wanted a better word for "high-speed buffer", used in the article. He got no input, and suggested "cache", from the French "cacher", meaning "to hide". The article was published in early 1968, and the authors were honored by IBM. Their work was widely welcomed and improved."Cache" soon became standard usage in computer literature.
Small memories on or close to the CPU chip can be made faster than the much larger main memory. Most CPUs since the 1980s have used one or more caches. Modern general-purpose CPUs inside personal computers may have as many as half a dozen. Each cache may be specialised to a different part of the task of executing programs.
CPU caches are generally managed entirely by hardware, other caches are managed by a different kinds of software. The operating system usually manages a "page cache" in main memory. Users outside computer science usually call this cache virtual memory. It is managed by the kernel of the operating system.
Modern hard drives have disk buffers. These are sometimes called "disk cache", but this is wrong. The main function of these buffers is to order disk writes, and to manage reads. Repeated cache hits are rare, because the buffer is very small compared to the size of the hard drive.
Local hard disks are fast compared to other storage devices, such as remote servers, local tape drives, or optical jukeboxes. Using local hard disks as caches is the main concept of hierarchical storage management.
Web browsers and web proxy servers use caches to store previous responses from web servers, such as web pages. Web caches reduce the amount of information that needs to be transmitted over the network. 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.
Modern web browsers use a built-in web cache, but some internet service providers or organizations also use a caching proxy server. This is a web cache that is shared between all users of that network.
Search engines also often make web pages they have indexed available from their cache. For example, Google provides a "Cached" link next to each search result. This is useful when web pages are temporarily inaccessible from a web server.
Write-through operation is common in unreliable networks (like an Ethernet LAN). The protocol used to make sure the data in the write cache makes sense when several write caches are used is very complex, in such a case.
For instance, web page caches and client-side network file system caches (like those in NFS or SMB) are typically read-only or write-through to keep the network protocol simple and reliable.
Buffer and cache are not mutually exclusive; they are also often used together. The reason why they are used is different, though. A buffer is a location in memory that is traditionally used because CPU instructions cannot directly address data stored in peripheral devices. Computer memory is used as an intermediate store.
Additionally such a buffer may be feasible when a large block of data is assembled or disassembled (as required by a storage device), or when data may be delivered in a different order than that in which it is produced. Also a whole buffer of data is usually transferred sequentially (for example to hard disk), so buffering itself sometimes increases transfer performance. These benefits are present even if the buffered data are written to the buffer once and read from the buffer once.
A cache also increases transfer performance. A part of the increase similarly comes from the possibility that multiple small transfers will combine into one large block. But the main performance gain occurs because there is a good chance that the same datum will be read from cache several times, or that written data will soon be read. The only purpose of Caches is to reduce accesses to the underlying slower storage. Cache is also usually an abstraction layer that is designed to be invisible from the perspective of neighboring layers. That way, the applications or clients may not be aware that there is a cache.
DMOZ
The Open Directory Project (ODP), also known as dmoz, is an online directory that lists good web sites based on their subject. Web sites are listed in categories on this project. Each category is linked to relevant categories; the categories have a tree-like structure too.
Web directory
A Web directory is a website. It is like a directory, or a phone book. It lists other websites, that are put into different categories.
File sharing
File sharing is the practice of making files available for other users to download over the Internet and smaller networks. Usually file sharing follows the "peer-to-peer" (P2P) model, where the files are stored on personal computers of the users. In this model, most people who are sharing files are also downloading files that other users share.
Ammonium sulfide
Ammonium sulfide, also known as the "stink bomb" is made up of a solution of ammonium sulfide in water, sealed inside a glass ampoule (a small bottle-like container used to store a liquid securely). When the ampoule is broken, ammonia and hydrogen sulfide gases are released from the solution. These chemicals have a very strong and unpleasant smell.
Ammonium sulfide is a very toxic chemical. It is also explosive and highly flammable. It is added to cigarettes.
Metre per second
Metre per second is an SI unit of measurement of both speed and velocity. It is defined by the distance in metres divided by the time in seconds. Its abbreviation is m/s or m·s. In astronomy, the unit is sometimes used in "kilometres per second" (equivalent to 1000 metres per second).
1 metre per second is equivalent to:
1 foot per second = 0.3048 m·s (exactly)
1 mile per hour ≈ 0.4470 m·s (approximately)
1 km·h ≈ 0.2778 m·s (approximately)
1 kilometre per second is equivalent to:
Hydroxide
Hydroxide in chemistry is a name given to the diatomic anion OH, made up of oxygen and hydrogen atoms. Most chemical compounds that contain hydroxides are bases.
An Arrhenius base is a substance that when dissolved in an aqueous solution, it produces hydroxide ions. Therefore, hydroxide ions are heavily involved in acid-base reactions.
Many useful chemical reactions or processes involve hydroxide or hydroxide ions. Sodium hydroxide is used in industry as a strong base, potassium hydroxide is used in agriculture, and iron hydroxide minerals such as goethite and limonite have been used as iron ore. The aluminium ore bauxite is made mainly out of aluminium hydroxides.
Most inorganic hydroxide salts do not dissolve in water.
Many useful chemicals and chemical processes involve hydroxides or hydroxide ions. Sodium hydroxide is used in factories as an alkali, potassium hydroxide is used in farming, and iron hydroxide have been used as low grade brown iron ore.
Cyclone