Abstract:
Clients may subscribe to resources for the purpose of receiving notifications of changes in the resource (e.g., a file is added to a shared folder). Storing subscriptions within persistent storage provides data security in the event of a service failure, at the cost of high latency in accessing subscription data. An efficient method for tracking a resource is provided herein. A subscription service creates subscriptions and monitors resources for a client. Upon a subscribed resource change, a notification service stores a notification of the change into a queue associated with the client. Efficient resource tracking is achieved because notification and subscription data is stored in low latency soft memory. The notification service is configured to detect a failure in the notification service and/or subscription service. In the event a service fails, the client provides a recovery mechanism by resubscribing to resources the client is interested in.
Abstract:
Potentially identical objects (e.g., files) are located across multiple computers based on stochastic partitioning of workload. For each of a plurality of objects stored on a plurality of computers in a network, a portion of object information corresponding to the object is selected. The object information can be generated in a variety of manners (e.g., based on hashing the object, based on characteristics of the object, and so forth). Any of a variety of portions of the object information can be used (e.g., the least significant bits of the object information). A stochastic partitioning process is then used to identify which of the plurality of computers to communicate the object information to for identification of potentially identical objects on the plurality of computers.
Abstract:
In a serverless distributed file system, the writer of a file can provide file authentication information to a verifying machine without having to compute a new digital signature every time a written file is closed. Periodically, the writer compiles a list of the hash values of all files that have been written over a recent interval, computes a hash of the list, and signs the hash. This signed list of hash values is known as a manifest, akin to a shipping manifest that enumerates the items in a shipment. The advantage of using a signed manifest is that the writer need only perform a single signature computation in order to authenticate the writes to multiple files, rather than having to compute a separate signature for each file, as it would if a signature were embedded in each file.
Abstract:
A database update pipeline may be incorporated into a data access architecture for providing data services to applications, thereby bridging the gap between application data and data as persisted in databases. The update pipeline has the ability to translate changes made to object instances into data store change constructs, and carry those changes over to a data store. Such a pipeline can also advantageously perform the reverse operation, allowing applications to query using the database update pipeline, and receive materialized object instances.
Abstract:
A file format for a serverless distributed file system is composed of two parts: a primary data stream and a metadata stream. The data stream contains a file that is divided into multiple blocks. Each block is encrypted using a hash of the block as the encryption key. The metadata stream contains a header, a structure for indexing the encrypted blocks in the primary data stream, and some user information. The indexing structure defines leaf nodes for each of the blocks. Each leaf node consists of an access value used for decryption of the associated block and a verification value used to verify the encrypted block independently of other blocks. In one implementation, the access value is formed by hashing the file block and encrypting the resultant hash value using a randomly generated key. The key is then encrypted using the user's key as the encryption key. The verification value is formed by hashing the associated encrypted block using a one-way hash function. The file format supports verification of individual file blocks without knowledge of the randomly generated key or any user keys. To verify a block of the file, the file system traverses the tree to the appropriate leaf node associated with a target block to be verified. The file system hashes the target block and if the hash matches the access value contained in the leaf node, the block is authentic.
Abstract:
A method for refinishing a countertop in order to achieve a granite, a marble, or other desired look uses an oil-based paint having a glaze therein applied as a base coat to a countertop that has been prepared smooth and taped as needed. Once the base coat dries, one or more additional coats each coat may be the same color as the other additional coats or different from the other coats, and each additional coat being a different color from the base coat. One of three applicators is used for the additional coats including a feather, a rag, and a sponge, the selection of the applicator or applicators, and the color or colors to apply with each, being dependant on the particular look desired. Once all paint is applied and a dried, a polyurethane coat is applied to give additional luster, in order for the finish to be either more granite-like or more marble-like in appearance and in order to protect the finish.
Abstract:
A file that has been encrypted using a symmetric key and that has a corresponding access control entry with the symmetric key encrypted using the public key of a public/private key pair can be accessed. An encrypted key cache is also accessed to determine whether an access control entry to symmetric key mapping exists in the cache for the access control entry corresponding to the file. If such a mapping exists in the cache, then the mapped-to symmetric key is obtained form the cache, otherwise the encrypted symmetric key is decrypted using the private key of the public/private key pair. The encrypted key cache itself can also be encrypted and stored as an encrypted file.
Abstract:
Potentially identical objects (e.g., files) are located across multiple computers based on stochastic partitioning of workload. For each of a plurality of objects stored on a plurality of computers in a network, a portion of object information corresponding to the object is selected. The object information can be generated in a variety of manners (e.g., based on hashing the object, based on characteristics of the object, and so forth). Any of a variety of portions of the object information can be used (e.g., the least significant bits of the object information). A stochastic partitioning process is then used to identify which of the plurality of computers to communicate the object information to for identification of potentially identical objects on the plurality of computers.
Abstract:
A method and system for optimizing channel access scheduling for multiple wireless computing devices over a wireless network improves channel access efficiency with respect to a primary channel. An access point, or host computer, includes a host transceiver for receiving control information from the wireless computing devices over a low power channel. Upon receiving the control information, the access point applies a scheduling algorithm to schedule channel access for the wireless computing devices to transmit data over the primary communication channel. The wireless computing devices include a low power radio for receiving scheduling information via the low power channel during idle periods. When the scheduling information is received, the wireless computing device activates its primary channel network interface components to communicate data through the primary channel. When the computing device is idle, the device is configured to power down all of its components with the exception of the circuitry required to power the low power channel. As such, the low power channel is maintained in an active state for receiving scheduling information, such as an access schedule, during both idle and non-idle periods.
Abstract:
A serverless distributed file system manages the storage of files and directories using one or more directory groups. The directories may be managed using Byzantine-fault-tolerant groups, whereas files are managed without using Byzantine-fault-tolerant groups. Additionally, the file system may employ a hierarchical namespace to store files. Furthermore, the directory group may employ a plurality of locks to control access to objects (e.g., files and directories) in each directory.