Abstract:
Technology is disclosed for performing a priority synchronization of a computing device to download a selected set of data files to the computing device from a distributed backup system. Data files are downloaded to a computing device by synchronizing the computing device with a server of the distributed backup system. A priority sync downloads a subset of the data files (“priority files”) rather than all of the data files of the user, thereby minimizing the computing resources consumed to download the data files. The priority sync can select the priority files based on various criteria, including an access pattern of the data files, attributes of the data files, or attributes of the computing device. The priority sync can also download the data files not identified as priority files (“non-priority files”). While the priority files are downloaded in their original format, the non-priority files are downloaded in a downgraded format.
Abstract:
Technology disclosed herein includes a method for loading a carrier specific operating system (OS) onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an OS specific for the network. After retrieving the OS distribution, the device loads the distribution of the OS on the computing device. Specific OS distribution is chosen based on predefined policies when the device connects to multiple networks.
Abstract:
Technology is disclosed for selectively backing up audio files and video files of a user in a distributed backup system. In the distributed backup system, the user can define various policies for storing different data files of the user at different devices of the user and/or at a server. For example, the user may define a policy for storing video files on a device having a bigger display and audio files on a device which the user uses more often than the other devices. When a backup is initiated on a particular device, the technology identifies target devices based on the defined policies, and transmits the audio and video files from the particular device to the corresponding target devices. The audio and video files are transmitted via the server or directly if the target devices are in proximity to the particular device.
Abstract:
Technology is disclosed for pushing notifications to computing devices based on location proximity (“the technology”). Various embodiments of the technology includes a proxy server that facilitates transmission of notifications to the computing devices based on a location proximity and/or access pattern of the computing devices. The proxy server transmits the notifications to the devices based on their location proximity with a primary device of the user, e.g., a device which the user uses more often than others. For example, if a particular device is not within a predefined location proximity of the primary device, the proxy server delays the transmission of notifications to the particular device until the particular device is in the predefined location proximity. In another example, a transmission frequency of the notifications is continuously adjusted based on the location proximity, e.g., the transmission frequency is increased as the proximity increases, and is decreased as the proximity decreases.
Abstract:
Technology is disclosed herein for a cloud based file system that facilitates storing data beyond a physical storage limit of a computing device. In some embodiments, the file system stores the metadata of the data in a local storage of the device and the data itself in a cloud storage. Upon accessing a data object on the device, the device obtains the data from the cloud storage and presents it to the user as if the content data is stored locally. The device identifies the data objects that are likely to be accessed by the user, pre-fetches the content of these data objects and stores them in a cache locally. Prefetching profiles are used to identify the data objects that are likely to be used based on a usage pattern of the data objects. Different prefetching profiles may be generated for multiple devices associated with the user.
Abstract:
Technology is disclosed herein for a cloud based file system that can surpass physical storage limit. According to at least one embodiment, a computing device includes a file system having multiple storage objects. The metadata of the storage objects are stored in local storage of the computing device. A remote storage server is responsible for storing the content data of the storage objects. The computing device presents the storage objects via an output device as if the content data are stored locally in the computing device. The computing device identifies some of the storage objects that have a high possibility to be read by computer applications of the computing device, and caches the content data of these storage objects locally.
Abstract:
Technology is disclosed herein for data synchronization based on file system activities. According to at least one embodiment, a computing device monitors one or more file system operations for a file stored in the computing device. The computing device records the file system operations for the file sequentially into a log data structure. The computing device synchronizes the file with a server by sending the log data structure to the server. The server can apply the file system operations recorded in the log data to an instance of the file stored in the server such that data of the file stored in the computing device are consistent with data in the instance of the file stored in the server after the file system operations are applied.
Abstract:
Technology is disclosed herein for sharing encrypted data within a client-server distributed data storage system. According to at least one embodiment, a first computing device encrypts multiple data sets of the first computing device using symmetric encryption keys. Each of the data sets is encrypted using a different symmetric encryption key among the symmetric encryption keys. The first computing device shares the encrypted data sets with a second computing device. The first computing device further sends the symmetric encryption keys to the second computing device via a secured channel. The symmetric encryption keys are suitable for decrypting the encrypted data sets at the second computing device. The secured channel is through a server connected with the first and second computing devices. The server cannot access the contents of the secured channel and cannot access contents of the encrypted data sets.
Abstract:
Technology is disclosed herein for migrating at least portions of computer applications to a server. According to at least one embodiment, a computing device identifies a service component of a computer application executed at the computing device. The service component does not directly interact with a user of the computing device. The computing device transfers an instance of the service component to a server so that the service component can be executed at the server. The computing device then receives from the server a result message generated by the instance of the service component executed at the server. The computing device feeds the result message to a user interface component of the computer application via a procedure call such that the user interface component retrieves the result message as if it were generated by an instance of the service component executed at the computing device.
Abstract:
Technology disclosed herein includes a method for loading a carrier specific OS onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the computing device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an operating system (OS) specific for the network. After retrieving the OS distribution, the device loads the distribution of the operating system on the computing device.