A mechanism for replicating and maintaining files in a space-efficient
manner is disclosed. In one embodiment, a current file is replicated by
associating the data blocks of the current file with both the current file
and a new file. The new file and the current files are separate and
distinct from each other. Data blocks remain shared until the content of
one file is modified. Only the data blocks affected by the modification
are duplicated. The two files share the unchanged data blocks, but both
files are each associated with additional data blocks that reflect the
modification. Reference values are used to track how many files are
associated with each data block. In another embodiment, a file descriptor
is linked to a filename at the request of a user or application. The
present invention avoids needless duplication of the same data blocks
among copies of a file.
Een mechanisme om dossiers op een ruimte-efficiënte manier wordt te herhalen en te handhaven onthuld. In één belichaming, wordt een huidig dossier herhaald door de gegevensblokken van het huidige dossier met zowel het huidige dossier als een nieuw dossier te associëren. Het nieuwe dossier en de huidige dossiers zijn afzonderlijk en verschillend van elkaar. De blokken van gegevens blijven gedeeld tot de inhoud van één dossier wordt gewijzigd. Slechts worden de gegevensblokken die door de wijziging worden beïnvloed gedupliceerd. De twee dossiers delen de onveranderde gegevensblokken, maar beide dossiers elk worden geassocieerd met extra gegevensblokken die op de wijziging wijzen. De waarden van de verwijzing worden gebruikt om te volgen hoeveel dossiers met elk gegevensblok worden geassocieerd. In een andere belichaming, is een dossierbeschrijver verbonden met filename op verzoek van een gebruiker of een toepassing. De onderhavige uitvinding vermijdt onnodige verdubbeling van de zelfde gegevensblokken onder exemplaren van een dossier.