Preserving user profiles across remote desktop sessions
First Claim
1. A method of preserving user profiles for desktops across desktop sessions, comprising:
- loading metadata of a user profile from persistent storage when a user logs into a desktop, wherein loading the metadata of the user profile comprises;
transmitting an acknowledgement that the entire user profile has been successfully loaded prior to the user profile being fully loaded,spawning a first thread configured to load portions of the user profile as the portions are accessed by the user, andspawning a second thread parallel to the first thread and configured to load portions of the user profile asynchronously according to a schedule;
generating a snapshot of an image of the desktop stored in persistent storage;
recording changes to the user profile in a change log using the snapshot; and
committing the changes to the user profile recorded in the change log to the user profile stored in the persistent storage asynchronously with respect to when the changes to the user profile are recorded in the change log, wherein the changes are committed prior to the user logging out of the desktop.
4 Assignments
0 Petitions
Accused Products
Abstract
User profiles of remote desktops are managed in a crash-consistent manner. When a user logs into a remote desktop, metadata of the user profile is loaded from persistent storage while registry settings and files of the user profile are loaded asynchronously with respect to the login. During the remote desktop session, snapshots of the remote desktop image in persistent storage are generated periodically, and a change log that indicates changes to the user profile is created therefrom. The user profile stored in persistent storage is updated lazily using the change log at opportunistic times after snapshot generation. When the user logs out of the remote desktop, the user profile stored in the persistent storage is updated with any additional changes to the user profile by extracting the changes from the copy-on-write cache associated with the most recent snapshot.
-
Citations
19 Claims
-
1. A method of preserving user profiles for desktops across desktop sessions, comprising:
-
loading metadata of a user profile from persistent storage when a user logs into a desktop, wherein loading the metadata of the user profile comprises; transmitting an acknowledgement that the entire user profile has been successfully loaded prior to the user profile being fully loaded, spawning a first thread configured to load portions of the user profile as the portions are accessed by the user, and spawning a second thread parallel to the first thread and configured to load portions of the user profile asynchronously according to a schedule; generating a snapshot of an image of the desktop stored in persistent storage; recording changes to the user profile in a change log using the snapshot; and committing the changes to the user profile recorded in the change log to the user profile stored in the persistent storage asynchronously with respect to when the changes to the user profile are recorded in the change log, wherein the changes are committed prior to the user logging out of the desktop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause a computing device to preserve user profiles for desktops across desktop sessions, by performing the steps of:
-
loading metadata of a user profile from persistent storage when a user logs into a desktop, wherein loading the metadata of the user profile comprises; transmitting an acknowledgement that the entire user profile has been successfully loaded prior to the user profile being fully loaded, spawning a first thread configured to load portions of the user profile as the portions are accessed by the user, and spawning a second thread parallel to the first thread and configured to load portions of the user profile asynchronously according to a schedule; generating a snapshot of an image of the desktop stored in persistent storage; recording changes to the user profile in a change log using the snapshot; and committing the changes to the user profile recorded in the change log to the user profile stored in the persistent storage asynchronously with respect to when the changes to the user profile are recorded in the change log, wherein the changes are committed prior to the user logging out of the desktop. - View Dependent Claims (13, 14, 15)
-
-
16. A computer system comprising:
-
a plurality of servers configured to host desktops that can be remotely accessed by users; a persistent storage device shared by the plurality of servers and storing an image of the first desktop and a user profile associated with a first desktop, wherein the first desktop is hosted on a virtual machine that is running in one of the servers and the virtual machine is programmed to carry out the steps of; loading metadata of the user profile from the persistent storage device when a user logs into the first desktop, wherein loading the metadata of the user profile comprises; transmitting an acknowledgement that the entire user profile has been successfully loaded prior to the user profile being fully loaded; spawning a first thread configured to load portions of the user profile as the portions are accessed by the user; and spawning a second thread parallel to the first thread and configured to load portions of the user profile asynchronously according to a schedule, generating a snapshot of an image of the first desktop stored in the persistent storage device, recording changes to the user profile in a change log using the snapshot, and committing the changes to the user profile recorded in the change log to the user profile stored in the persistent storage device asynchronously with respect to when the changes to the user profile are recorded in the change log, wherein the changes are committed prior to the user logging out of the desktop. - View Dependent Claims (17, 18, 19)
-
Specification