A computer-readable medium comprising instructions that, when executed on a processor of a device comprising a data store and a client operated by a user, present availability statuses of objects in an object set within a computing environment stored in the data store and comprising at least one host, the object set managed by an object server configured to, upon storing an object in the object set, send an object descriptor to the client, by:
- upon receiving from the object server an object descriptor of an object represented in the object set, the object descriptor identifying at least one host represented in the computing environment that is storing the object:
- storing the object descriptor in the data store associated with the object with an unverified object metadatum;
- upon verifying that the object is unavailable in the data store:
- replacing the unverified object metadatum in the object descriptor of the object with a searching metadatum;
- contacting at least one host storing the object to request the object using a peer-to-peer exchange protocol;
- upon contacting at least one host:
- requesting the object from the host;
- and
- replacing the searching metadatum in the object descriptor with a requesting metadatum;
- upon receiving from a host an object portion of an object having at least one missing object portion, replacing the requesting metadatum in the object descriptor of the object with a receiving metadatum;
- and
- upon receiving from a host an object portion of an object having no missing object portions:
- replacing the receiving metadatum in the object descriptor of the object with a relocating metadatum;
- upon identifying a versioning conflict of the object between a first object version available in the object set and a second object version available in the data store and not in the object set, respective versions of an object having at least one object version identifier selected from an object version identifier set comprising:
- an object hashcode;
- an object modification date;
- and
- an object version indicator, by identifying an object version identifier of the first object version that differs from a corresponding object version identifier of the second object version, replacing the receiving metadatum in the object descriptor with a versioning conflict metadatum;
- and
- upon inserting the object into the object set, replacing the relocating metadatum in the object descriptor of the object with an available metadatum;
- and
- upon determining the object is available in the data store, replacing the unverified object metadatum in the object descriptor of the object with an available metadatum;
- upon receiving from the object server a host removal notification indicating a removal of a host from the object set, for respective object descriptors of objects that are unavailable in the data store and that are not stored by a host represented in the object set, storing in the object descriptor of the object a lost metadatum;
- and
- upon receiving from the user a request to present an availability status of at least one object of the object set:
- upon determining that the object is available in the data store:
- upon determining that the object is unavailable in the object set by identifying in the object descriptor of the object a relocating metadatum, presenting to the user a relocating status;
- upon identifying a locking conflict of the object between a first object version that is available in the object set and that is locked against overwriting and a superseding object version that is available in the data store and not in the object set, present to the user a locking conflict status;
- upon determining that a versioning conflict of the object exists by identifying in the object descriptor of the object a versioning conflict metadatum:
- presenting to the user a versioning conflict status with the object version identifier of the first object version and the corresponding object version identifier of the second object version;
- and
- upon receiving from the user selection of a selected object version over an unselected object version:
- if the selected object version comprises the object version available in the data store and unavailable in the object set, copying the selected object version over the unselected object version;
- if the selected object version comprises the object version available in the object set, deleting the unselected object version available in the data store and unavailable in the object set;
- and
- replacing the versioning conflict metadatum in the object descriptor of the object with an available metadatum;
- and
- upon determining that the object is available in the object set by identifying in the object descriptor of the object an available metadatum, presenting to the user an available status;
- and
- upon determining that the object is unavailable in the data store by identifying in the object descriptor of the object an unavailable metadatum:
- upon determining that the object is being received from a host by identifying in the object descriptor of the object a receiving metadatum, presenting to the user a receiving status;
- upon determining that the object is not being received from a host and is stored on a host represented within the computing environment:
- upon determining that hosts storing the object are unreachable, presenting to the user a host unavailable status;
- and
- upon determining that at least one host storing the object is reachable, presenting to the user a host connecting status;
- upon determining that the object is not being received from a host and is not stored on a host represented within the computing environment by identifying in the object descriptor of the object a lost metadatum, presenting to the user a lost status;
- and
- upon determining that the object is not being received from a host:
- upon determining that the client is contacting at least one host storing the object by identifying in the object descriptor of the object a searching metadatum, presenting to the user a searching status of the object;
- and
- upon determining that the client has contacted at least one host storing the object by identifying in the object descriptor of the object a requesting metadatum, presenting to the user a requesting status.