A method for consistently storing cached objects in the presence of
failures is provided. This method ensures atomic object consistency--in
the event of failure and restart, an object will either be completely
present or completely absent from the cache, never truncated or corrupted.
Furthermore, this consistency comes without any time-consuming data
structure reconstruction on restart. In this scheme, objects are indexed
by a directory table that is stored in main memory and mapped to
non-volatile storage, and changes to the directory table are buffered into
an open directory that is stored in main memory. Cache objects are either
stored in volatile aggregation buffers or in segments of non-volatile disk
storage called arenas. Objects are first coalesced into memory-based
aggregation buffers, and later committed to disk. Locking is used to
control parallel storage to aggregation buffers. Directory entries
pointing to objects are only permitted to be written to persistent disk
storage after the target objects are themselves committed to disk,
preventing dangling pointers. Periodically, when the contents of open
directory entries point to objects that are stably stored on disk, the
open directory entries are copied into the directory table and committed
to non-volatile storage. The disclosure also encompasses a computer
program product, computer apparatus, and computer data signal configured
similarly.
Een methode om caching voorwerpen in aanwezigheid van mislukkingen wordt constant op te slaan verstrekt. Deze methode verzekert atoomobjecten consistentie -- in het geval van mislukking en nieuw begin, zal een voorwerp of van het beknot of bedorven geheime voorgeheugen volledig aanwezig of volledig afwezig zijn, nooit. Voorts komt deze consistentie zonder enige tijdrovende wederopbouw van de gegevensstructuur op nieuw begin. In deze regeling, worden de voorwerpen geïndexeerd door een folderlijst die in hoofdgeheugen wordt opgeslagen en aan niet-vluchtige opslag, en verandert in de folderlijst is als buffer opgetreden voor in een open folder in kaart gebracht die in hoofdgeheugen wordt opgeslagen. De voorwerpen van het geheime voorgeheugen worden of opgeslagen in vluchtige samenvoegingsbuffers of in segmenten van niet-vluchtige schijfopslag genoemd arena's. De voorwerpen worden eerst samengevoegd in op geheugen-gebaseerde samenvoegingsbuffers, en later geëngageerd aan schijf. Het sluiten wordt gebruikt om parallelle opslag aan samenvoegingsbuffers te controleren. De ingangen die van de folder aan voorwerpen richten worden slechts toegelaten om aan blijvende schijfopslag worden geschreven nadat de doelvoorwerpen zelf aan schijf geëngageerd zijn, verhinderend bengelende wijzers. Periodiek, wanneer de inhoud van het open punt van folderingangen aan voorwerpen die stabiel op schijf worden opgeslagen, de open foldertoegangen in de folderlijst en geëngageerd aan niet-vluchtige opslag wordt gekopieerd. De onthulling omvat ook een computerprogrammaproduct, computerapparaten, en zo ook gevormd een signaal van computergegevens.