Data repository and method for promoting network storage of data
A method by which more than one client program connected to a network stores the same data item at the same location or locations in a data repository connected to the network, the method comprising having a first client program deposit a first data item in a data repository, the depositing including determining a digital fingerprint from the data item using a reproducible pseudorandom process that produces digital fingerprints having a pseudorandom distribution, storing the data item in the data repository at a location or locations associated with the digital fingerprint, and associating a deletion permission token with the data item, and storing this association in the data repository, having a second client program initiate a process for depositing a second data item in the data repository, wherein the second data item is identical to the data item stored by the first client program, the process including determining a digital fingerprint from the second data item using the reproducible pseudorandom process, determining from the digital fingerprint that a data item identical to the second data item is already stored in the data repository, relying on the data item already stored in the data repository for storage of the second data item rather than storing a separate copy of the second data item, and associating a second deletion permission token with the data item already stored, and storing this association in the data repository, having a client program initiate a process for deleting the data item already stored in the repository, wherein a deletion permission token associated with the data item is deleted from the repository, but the data item itself is not deleted.
1 . A method by which more than one client program connected to a network stores the same data item at the same location or locations in a data repository connected to the network, the method comprising:
having a first client program deposit a first data item in a data repository, the depositing including
determining a digital fingerprint from the data item using a reproducible pseudorandom process that produces digital fingerprints having a pseudorandom distribution;
storing the data item in the data repository at a location or locations associated with the digital fingerprint; and
associating a deletion permission token with the data item, and storing this association in the data repository;
having a second client program initiate a process for depositing a second data item in the data repository, wherein the second data item is identical to the data item stored by the first client program, the process including
determining a digital fingerprint from the second data item using the reproducible pseudorandom process;
determining from the digital fingerprint that a data item identical to the second data item is already stored in the data repository;
relying on the data item already stored in the data repository for storage of the second data item rather than storing a separate copy of the second data item; and
associating a second deletion permission token with the data item already stored, and storing this association in the data repository;
having a client program initiate a process for deleting the data item already stored in the repository, wherein a deletion permission token associated with the data item is deleted from the repository, but the data item itself is not deleted.
2 . The method of claim 1 wherein a client program initiates a process for deleting a data item in which the deletion permission token derived as part of the deletion process does not match any deletion permission token associated with the data item, and neither the data item nor any deletion permission token is deleted.
3 . The method of claim 1 wherein a client program initiates a process for deleting a data item in which the last remaining deletion permission token associated with the data item is deleted and the data item itself is deleted from the repository.
4 . The method of claim 1 wherein the deletion permission tokens associated with independent deposits are guaranteed to be unique.
5 . The method of claim 1 wherein deletion permission tokens are derived at least in part from information which cannot be guessed.
6 . The method of claim 1 wherein the reproducible pseudorandom process used to produce a digital fingerprint is adapted to probabilistically guarantee to provide a unique digital fingerprint for every distinct data item sent to the data repository.
7 . The method of claim 6 wherein the pseudorandom distribution of the digital fingerprints introduces pseudorandomness into the physical location at which data items are stored in the data repository.
8 . The method of claim 7 wherein different physical locations comprise different hard disk drives.
9 . The method of claim 1 wherein the number of deletion permission tokens associated with a data item exceeds some threshold and the data item is made permanent.
10 . The method of claim 1 wherein the deletion permission token comprises a per-depositor record.