Home
Welcome to MSDN Blogs Sign in | Join | Help

While you're waiting for the beta update to complete, The beta update is complete, but still: why not entertain yourself with the latest and greatest Live Mesh video content?  Posted fresh today:

Ori Amiga's amazing Live MeshMobile (pronounced, Ori asks us to tell you, like 'BatMobile' :) demonstration:

 
Ori Amiga: MeshMobile

Noah Edelstein gives a tour of the new Mac client:


First Look: Live Mesh Client for Mac

 

If you're interested in more details on the Live Services and Live Framework that you can use to make your own applications interact with data and devices in the Mesh, Ori's PDC session is a must-watch: http://channel9.msdn.com/pdc2008/BB04/

 

Since rolling out the latest Live Mesh release this afternoon, a number of customers have reported trouble installing the Live Mesh for Mobile software. We have identified the problem and are currently working on a new build. We don’t yet have an estimated time of availability, but we will post updates here, on the blog, as we know more.

 

In the meantime, please do not try to install the Live Mesh for Mobile software on your mobile phone because installation will fail in most cases.

 

Thank you for your patience as we work to get this issue resolved quickly.

 

The Live Mesh Team

2 Comments
Filed under:

Thank you for using the Live Mesh for Mobile client! For users who saw a failure to add their mobile phone to their mesh, we have deployed an updated build of Live Mesh for Mobile. You will need to download the Mobile Installer from http://m.mesh.com/install/wm6/LiveMesh.cab again.  Once you have the new installer on your phone, run it and the installed client will be upgraded to the new version. The new Mobile Live Mesh Client is version number 0.9.3424.6 (check this through Menu -> About). Now you can start Live Mesh, sign in, and you should be good to go.

 

Currently Live Mesh for mobile devices is provided only on a limited basis in the US and UK. (UPDATE 2: Live Mesh for Mobile in the UK is currently full, in both the US and the UK. We know many of you are excited about trying Live Mesh with your mobile devices, so we'll be adding more spots very soon - stay tuned!) If you have a Windows Mobile 6.x client, click on one of the following links (US residents, UK residents).  Sign in with your LiveID, and you’ll be redirected to the device ring where you’ll see a link to “Use Live Mesh for mobile devices.”  Alternately, once you’ve signed in this way, the mobile client should be available for download by pointing your phone’s browser to http://m.mesh.com.

 

Thank you for your patience.

 

The Live Mesh Team

 

Whooooo boy, today is a big day for Live Mesh.  We are about to begin rolling have finished rolling out an update which brings our service and PC software to beta with significant new features, and includes the first technology previews of the Mac and Windows Mobile clients.  Details below.  We blogged on Tuesday about how the combination of this platform experience beta, the additional devices, and the CTP of Live Services and the Live Framework are significant milestones on the path to bringing our software + services vision to life.

As we noted previously, users of the Technology Preview version will find that their clients must update to this latest version in order to continue participating in Live Mesh . We will update the blog here when the rollout of services is complete and the new client software is available. The new client software is now available! 

New features:

·         New devices supported.  We are delighted to release our client software for Mac OS X (10.5 or higher, Intel processesor) and Windows Mobile (6.0 and 6.1).  Because these are both significant new software investments for us, we’re going to only provide them on a limited basis for now (and mobile is restricted to only US or UK to start.)  If you get a message saying that we’re at full capacity for these clients, keep an eye on the blog here.  We’ll post updates as we increase availability over the coming months.

·         To get access to the Mac client, sign in to www.mesh.com, click Add Device, and then click the “Limited Mac Tech Preview now available” link underneath the Install button.  If we haven’t exceeded the limit for Mac clients, you’ll get a confirmation dialog, and then Mac will show up under the available list of devices when you choose Add Device from the ring.

·         To get access to the Windows Mobile 6.x client, click on one of the following links (US residents, UK residents).  Sign in with your LiveID, and you’ll be redirected to the device ring where you’ll see a link to “Use Live Mesh for mobile devices.”  Alternately, once you’ve signed in this way, the mobile client should be available for download by pointing your phone’s browser to http://m.mesh.com

·         Worldwide availability. We’ve removed the limits on what countries are able to sign up to use Live Mesh.  We previously had limitations in place so that we could complete our testing with various language and locale settings, and now that work is indeed complete (with the caveat of course that for now the mobile client, as mentioned above, is not actually available worldwide).

·         WAP access.  Some of you already discovered that browsing http://m.mesh.com from your WAP-enabled phone gives you a lightweight way to view Mesh content (and, on phones that support it, upload new files.)  We’re now making WAP an officially supported feature.

·         Folder roles/permissions. Members of a folder can now be assigned one of the following roles to control their access rights: creator, owner, contributor, and reader. Previously, the only permission level (aka “role”) you could set for a member was “owner,” which meant that all members had the same control over the contents of a folder (adding, changing, deleting) as you did. Now, you can assign specific permissions for each member in a Live Mesh folder. Want members to be able to read what’s in a folder, but not change any content? Make them readers. Want them to be able to add to the folder, but not invite other users? Make them contributors.

·         Automatic update is now available for the Live Mesh software.  This has been a common user request, and we’re taking a first step towards making it possible for your Mesh client software to update itself automatically, without you having to click on any links.  In this Beta release, automatic update works like magic if you chose not to install the extra enhancements that required administrator rights.  If you did install them, we still have to prompt you to update so that you can click through the UAC elevation prompt and give us permission to update administrative components.  We will continue to work on streamlining this process for you in future releases.

·         P2P sync can be managed from your computer. When we first enabled P2P sync, you had to go to the Live Desktop to change the sync settings for a folder so that it would no longer synchronize with your Live Desktop and eat up your 5 GB storage limit. We heard from many customers that this was not very intuitive (and we agree: it wasn’t). Now you can change this sync setting from the Live Mesh software on your computer, without having to visit the Live Desktop at all.

·         You can drag and drop files to folders on your Live Desktop. One of the most frequently requested features since we opened Live Mesh as a technology preview in April has been the ability to drag and drop files and folders to and from your Live Desktop. We’re extremely happy to be able to say: You can do this now! This makes the Live Desktop experience much more intuitive and even more aligned with Windows. Note that the drag-and-drop feature currently only works with a Windows PC and Internet Explorer 6 or later.

·         You can select multiple files for upload or download. In addition to drag-and-drop, you can now use SHIFT and CTRL to select multiple files/folders when uploading them to your Live Desktop.

·         Added new synchronization status indicators. If you’ve been using Live Mesh to sync a lot of data, you’ve probably found yourself wondering at some point how far along the synchronization process was. We’ve added an icon to the notification area of the taskbar and a progress bar so that you can tell at a glance how your folder sync is coming.

·         “Get started” feature added for new users. Quick tips on how to start using Live Mesh appear on the Live Desktop and when new users install the Live Mesh software. Great for friends and family you invite!

Additional improvements:

·         Improved peer-to-peer (P2P) reliability and performance. P2P synchronization is an integral part of how Live Mesh keeps your data current across all your devices. Most of the time, P2P sync happens in the background without you having to worry about it. When Live Mesh tries to update a file on one of your devices, it will leverage whatever connections it can, sometimes pulling from your Live Desktop (the “cloud”), other times pulling from your other devices. You can also choose to have some folders only sync P2P by choosing to never synchronize those folders with your Live Desktop. We have made numerous improvements to P2P sync with this release of Live Mesh. We’re now regularly testing synchronization of folders as large as 60GB, and we’ve also had success synching a single file as large as 20GB.   

·         Hidden remote screen is now the default for Live Mesh Remote Desktop. We heard feedback from many customers that they’d like to see this feature turned on by default to help ensure the privacy of their remote desktop feature.

·         Improved conflict resolution. The user interface (UI) for resolving conflicts has been updated to be easier to use. You’ll also now see the same conflict resolution UI between the Live Mesh software on your device and the Live Desktop on the web. And, when resolving a conflict, you’ll be able to choose keep either version of a file or all versions.

·         The Live Mesh bar appears minimized by default, and remembers its previous state. When you create a new Live Mesh folder, the mesh bar (appears when you open a Live Mesh folder) will now appear minimized by default. The mesh bar will also remember the last state it was in (minimized or maximized) for each Live Mesh folder, and show that state the next time you open the folder.

·         Better support for large display configurations using Live Mesh Remote Desktop. We’ve added a new “superpan” feature to improve support for large desktop display configurations (e.g., high-resolution displays or multiple monitors).

·         Added support for two-factor authentication for Live Mesh Remote Desktop. Enterprise customers can now require two-factor authentication (both domain password and smartcard) for Live Mesh Remote Desktop on networks, or choose to disable the Live Mesh Remote Desktop functionality altogether. (Update: the ability to disable the Live Mesh Remote Desktop functionality was going to be part of this update, but wasn't quite ready.  We apologize for the confusion.)

·         Install Live Mesh with roaming profiles.  The Live Mesh client now supports installing to a user account with roaming profiles.  Previously users may have noticed an inability to sync or remotely access devices that use roaming profiles.

Windows Vista User Account Control (UAC) reminder

While we no longer require that UAC be turned on when running Live Mesh on Vista SP1, if you initially installed Live Mesh with UAC turned on, and then turned it off, you might have some issues upgrading. Please see “NOTICE: Updating Live Mesh and User Account Control (UAC)” in the Known Issues sticky on the Live Mesh forums for further information.

Thank you for helping us test Live Mesh!

Technorati Tags: LiveMesh

79 Comments
Filed under:

We just posted a great video on Channel 9 with Dharma Shukla, the architect of the Live Framework.  If you're wondering what the design goals were for Live Framework and how it's structured under the covers, check this out:


Dharma Shukla: Inside Live Framework

 

Hello,

 

Abhay Parasnis here, General Manager for Live Mesh.  Today is a big day for Live Mesh, but before going into details, I want to thank all the existing users of our Live Mesh technology preview.  We REALLY appreciate the great suggestions and enthusiasm so many of you have provided.  Hopefully you have seen how your input has influenced the evolution of the offering.  Our announcement today should provide another example…

 

We are delighted to announce that Live Mesh is going into open Beta over the course of this week and includes several new features (see below) that enhance the experience by giving users more control, increased reliability, and improved performance. With all the PDC news it’s also worth restating what exactly Live Mesh is.  Live Mesh is an experience that is natively integrated with the Live Services component of the Azure Services Platform – it makes the core functionality of Live Services available to end users.

 

Our efforts with Live Mesh arise from the two dominant trends in the industry today where the web is more and more central to our digital lives, and where we are adopting a wider diversity of increasingly powerful devices.  As we take advantage of this new digital world, our experiences often become fractured and complex.  We create and accumulate massive amounts of data, and the information and applications we care about reside on different devices and are spread across the web.  We also interact with a broader array of people, struggling to stay connected with them and informed of the latest happenings.  Users want, and increasingly, demand a seamless “just works” computing experience that brings together their devices, their data, their applications, and the people they interact with.

 

Live Mesh provides downloadable software for PC’s and a service on the Web that extends the Windows experience for seamless synchronization of files (photos, documents, etc) and apps, across devices, and enables easy sharing with people – concepts we focus on in our mantra of ‘data, devices, people, and applications’.

 

Back in April when we did the initial tech preview release of Live Mesh we emphasized a vision for how the offering would bring together your world of devices – a starting point to deliver on the data, devices, and people aspects of our vision.  With this beta release we are making another significant step toward this goal.  In particular… with this Beta we are providing limited availability of our new Mac and Windows Mobile 6 clients – providing users with a wider range of devices that can participate in their mesh.  Later this week as the beta rolls out, access to the Mac client will be provided from the device ring experience at www.mesh.com.  Instructions for accessing the Windows Mobile client will be made available at this blog later in the week.

 

When we did the initial tech preview release we also emphasized how the underlying platform would be made available to developers later in the year.  We delivered on this promise with the announcement today that the Live Framework – a uniform way for utilizing all the Live Services including the mesh platform technologies – is now available as a Community Technology Preview.  This CTP includes several applications we have built that are enhanced and run in the mesh.  With this developer release, we are starting to realize the “applications” portion of the Mesh vision. This means that in the near future our full ecosystem of developer partners will be able to enhance their applications with mesh technologies providing even more value to our Live Mesh users.  Also with our Live Services announcements, we are delivering in a bigger way against the people element by enabling developers to build applications that integrate with the more than 460 million Windows Live users.   To learn more about our Live Framework CTP, please check out www.azure.com.

 

After this year, Live Mesh will be utilized in the next major release of Windows Live.  This is the first planned integration and ship vehicle for Live Mesh, and there will be others as we continue to deliver on our overall Software-plus-Services strategy.

 

We hope you are as excited as we are about this milestone – thank you again for helping us evolve Live Mesh!

 

Live Mesh New Features include…

·         Additional Live Mesh folder member roles have been enabled:  Creator, Owner, Contributor, and Reader

·         The option to drag and drop files to folders on Live Desktop

·         The option to sync Live Mesh folders P2P only, excluding your Live Desktop, can now be enabled from the local device

·         Improved Peer to Peer synchronization performance and reliability

And many more…

 

For more details on Live Services, check out David Treadwell's interview with Channel 9:


David Treadwell: Inside Live Services

 

 

Technorati Tags: LiveMesh

 

In his PDC keynote just now, Ray Ozzie announced the Azure Services Platform.  Here's the overview picture:

servicesPlatform

The Live Services box at left is home to the developer services and APIs that power the Live Mesh platform experience.  Think of it this way: Live Mesh is a platform experience that is natively integrated with the Live Services component of the Azure Services Platform – it makes the core functionality of Live Services available to users. 

Much more detail on Live Services for developers to come tomorrow!

Technorati Tags: ,,,
[Update: edited for clarity]
3 Comments
Filed under:

PDC opens tomorrow, and while we previously pointed out some of the key Mesh-related Live Services content, we've changed our titles and released information on a few more sessions.  So here's a refreshed list of ways to find us at PDC.  Keep in mind that a recording of each session should be at the URLs below within 24 hours after the session completes.  We'll also have some cool content coming on channel 9 and 10, we'll be posting links as that all comes online.

Monday: we don't have any Mesh-related sessions on Monday, because we're saving some fun announcements for David Treadwell's keynote Tuesday morning.  You'll be able to find us for a chat in the Big Room, though -- look for the Live Services demo station just to your right as you walk in the main doors to the lounge/labs area, aka The Big Room (in the printed mini-guide, we're the area shaded dark red on the LACC Floor Plans page).  10 points and an invite to drinks with the Live Services team to anyone who can make us break and spill the beans before the keynote (and -100 points and booth cleanup duty to any team member who becomes a bean spiller ;)

Tuesday: after the keynote ends, the Mesh fun begins!

Wednesday:

Thursday:

 

Technorati Tags: ,,
3 Comments
Filed under:

With PDC just around the corner, we will be releasing the next update to Live Mesh, and it’s a major one. In fact, this is the most significant update to Live Mesh since we opened as a technology preview back in April. We know that many of you are going to be excited to see all the new features and fixes this release will bring (and there are a lot of them, many in response to your requests.)  In the spirit of openness with you, our technology preview customers, we’d like to take a little time today to talk about what the update experience is going to be like—and why.

For all the previous updates to Live Mesh that we’ve released since the tech preview began in April, customers were notified (via a little pop up above the Live Mesh notifier) that updates were available. When you were ready to update the Live Mesh software on your device, you clicked on that notification and the process began. If you chose not to update right away, though, that was okay—Live Mesh continued to work uninterrupted. With this update, however, things are going to be a little different. Specifically, all Live Mesh users will have to update their Live Mesh software to continue using the product. This time, you won’t be able to wait to update Live Mesh—in order to keep using it, you’ll have to update the software, and until you do that synchronization and Live Remote Desktop will not be available.  There is a fairly straightforward reason for this: we are upgrading our software and services to support an open beta, and to handle that scale we need to get all of our existing users onto these new systems quickly.  For this particular release, we are forgoing backwards compatibility in favor of making the new set of features as broadly available as possible.  Once you see how much Live Mesh has grown, we think you’ll agree that this was the right tradeoff!

We hope the advance warning reduces the amount of interruption this upgrade might cause. We will, of course, let you know before we begin to actually deploy the new update—we just wanted to make sure all our valued early adopters were “in the know” right from the start.

Stay tuned for lots of Live Mesh and Live Services news from PDC over the next week, and thank you to all of you for the great feedback you’ve provided over the last six months. Live Mesh wouldn’t be where it is today without all of you!

Technorati Tags:

Hey there! I’m Viraj Mody, a developer on the Live Mesh services team. I bet some of you are curious about how the Live Mesh software running on your devices detects when others add files to your shared Live Folders, quickly changes icon colors when devices go from offline to online, or updates your Live Mesh News Feeds as changes occur. This post will give you some insight into the facilities we’ve built in the Live Mesh back-end that enable client applications to do all of the above and much more.

In order to be responsive and perform well, Live Mesh, like most other software + services systems, requires that the cloud (services) be able to send out-of-band messages to clients (software). Most actions initiated by the client (MOE and Live Desktop) are triggered as a result of these messages sent from the Live Mesh services cloud to that specific client. These could be messages informing the client that items in the cloud have changed, that another client wants to initiate a peer-to-peer connection to this client, and so on. Such out-of-band messages that the cloud sends to clients are called Notifications. In order to keep the overall system performing well and to safeguard the privacy of clients, it is important that a client only receives Notifications for items it is interested in and has permissions to access. Each client has the ability to tell the cloud what items it is interested in monitoring. This expression of a client’s interest in changes to specific information in the cloud is referred to as a Subscription. Together, these Subscriptions and Notifications form the building blocks of Live Mesh’s Pub-Sub System.

In this post, I’ll go over the different back-end services that comprise the Pub-Sub System and provide an overview of how the system works end-to-end. In many ways, the Pub-Sub System can be understood by comparing it with a ‘secure and smart postal service’, where the post office only sends you mail that you’re interested in receiving and that the sender says you have permission to receive. A spam-free postal system – wouldn’t that be awesome!

Establishing a Communication Channel

For the Pub-Sub system to be effective there must be some way for the cloud to identify and communicate with each client. Live Mesh exposes facilities that allow clients to create a Queue which is uniquely associated with that particular client and assigns a unique name that is used to identify this queue. When creating a Subscription to a specific item, the client passes along its unique Queue name which allows Notifications to be delivered to that Queue. Going back to the postal system analogy, this Queue is like the mail box outside your home, and the unique name of the Queue is like your mailing address. Similar to how the postal system ensures that mail addressed to you only ends up in your mail box, Live Mesh services ensure that Notifications for a given client end up only in that client’s Queue.

The client is responsible for retrieving Notifications from its Queue. By separating delivery of Notifications from the act of retrieving them, the architecture enables various transport types to be used to retrieve Notifications from a Queue. Currently, the Live Mesh service cloud exposes two transports for retrieving these Notifications – HTTP and TCP. Given the pervasiveness and ease of use of these two transports, these were the first types we decided to support. As our service offering and scope grows, we can enable more transport types without major changes to the back-end architecture. Using the HTTP resource model exposed by the Live Mesh services, clients can choose to periodically fetch Notifications from their Queue. Using TCP enables clients to establish a long-lived connection to the Live Mesh service cloud so that Notifications can be pushed to clients as soon as they arrive. Different clients have different behavior, requirements and constraints – by providing various transport types we can enable several classes of clients and applications to leverage Live Mesh’s Pub-Sub system. Of course, these communications are encrypted and only the owner of a Queue can retrieve Notifications from it. It’s important to note that as it currently stands, the Queue and related services only support unidirectional messaging. Messages from clients to the Live Mesh service cloud do not flow via the Queue. Also, as of writing this post, the Live Mesh client available for Tech Preview doesn’t yet leverage the TCP transport solution – it will in a future release.

Besides change Notifications, the client’s Queue is also populated with a special type of Notification when another client wishes to initiate a peer-to-peer connection. Only authorized clients are allowed to send such peer-to-peer invites. The purpose of the peer-to-peer connection might be for file exchange and sync, for Live Remote connections, etc. Details about our peer-to-peer design can be found in this Channel 9 video.

All Queues and Queue-related information are managed by the Queue Service. Like other services described later in this post, the Queue service is a transient-state service and is built to scale horizontally. I’ll touch on both these characteristics of the services later.

Creating Subscriptions

Once a client has created its Queue, it can create Subscriptions to items in the Live Mesh cloud that it wants to stay current on by providing its Queue name along with the Subscription. Typically, each Live Mesh device creates Subscriptions for user/device presence, for each Live Folder’s various feeds (Membership, Contents, etc), for the news feed, and so on. In order to create a Subscription for a specific item, the client must provide proof that it has privileges to access the item. Once these Subscriptions have been created, the system ensures that the client will be informed when any of the items it has subscribed to are changed – each Notification that is delivered into the client’s Queue contains information about which specific resources has changed, in addition to other potentially interesting information about the changed resource.

Subscriptions created by clients are held in the PubSub Service. It is responsible for maintaining information about which client is interested in what item and for fanning out Notifications to the right clients when an item changes. You can think of it as the central post office of the ‘secure and smart postal system’ which acts as the one location for collecting all mail and then routing it onwards to the right destination. Just like the Queue Service, the PubSub Service is a transient-state service and is built to scale horizontally.

End-to-end Flow

Once a client has created a Queue and all its Subscriptions, it doesn’t aggressively keep refreshing information from the cloud. If using the HTTP transport to talk to its Queue, the client periodically polls the Queue to check for any Notifications that may have arrived. In cases where it’s using the TCP transport, the client is waiting for a Notification to be pushed down to it over the TCP channel. When an item changes in the cloud (let’s say, a file was added in a folder that the client has expressed interest in knowing about), the service responsible for that item (in this case, the storage service) informs the PubSub Service that the item has changed. The PubSub Service, which has been keeping track of all clients who are interested in that particular item, drops an appropriate change Notification in each interested client’s Queue. As soon as clients retrieve these Notifications (or as soon as the Notification is pushed to them) they can react. In the case of a new file being added, they might choose to begin initiating a peer-to-peer connection in order to sync the new file.

In our ‘secure and smart postal system’ analogy, this is equivalent to a magazine publisher informing the post office that a new edition is available, and the post office dropping a letter in each subscriber’s mail box informing them that a new edition is available. Optimally, the magazine publisher could also deliver one copy of the latest edition to the post office and the post office could be smart enough to create the right number of replicas and deliver a copy to each subscriber’s mail box. Here’s where the ‘smart’ in ‘smart and secure’ could come in!

image

Pub-Sub System end-to-end flow

Transient State Services and Scale-out

As I mentioned previously, all services that comprise the Live Mesh Pub-Sub System are transient-state services. Queues created by clients, Notifications that are delivered to specific Queues and Subscriptions representing a client’s interest in a particular resource are only ever held in memory and never persisted to any kind of store. As you might probably guess, performance was one of the biggest motivators for this design. Pub-Sub is characterized by short-lived rapidly changing data and data that needs to be readily available. Short-lived and changing because Queues, Subscriptions and Notifications are, by nature, transient – once a Notification is delivered to its intended recipient, it’s of no use; once a client is offline or doesn’t care about receiving Notifications, its Queue is of no use; Subscriptions could come as and go as application state changes. Data must be readily available because subscriber lists can often be huge, so retrieving them from persistent stores can introduce latencies that only increase as the service grows in size. Holding these in memory allows reads and writes to be processed very fast. Since they live in memory, both Queues and Subscriptions have lifetimes associated with them – clients must perform certain actions (some explicit, some implicit) to keep Queues and Subscriptions ‘alive’ and prevent associated resources from being reclaimed by the server. Given the initial wave of Live Mesh experiences and applications, having these be transient-state services definitely helps ensure high throughput and low latency. Of course, the fact we chose to implement the system as a transient state system is an implementation detail – as the product evolves and use cases changes, there might be reasons to prefer some kind of hybrid approach.

The system is also designed to enable horizontal scale-out. As the system needs more space to hold Queues and Subscriptions, we can bring up new instances of these services to increase capacity. Using a scheme based on consistent hashing, the Live Mesh services cloud guarantees that there is ever only one specific server instance that can ‘manage’ a given Queue or Subscription. The system also enables routing of messages for specific Queues and Subscriptions to the correct current manager. As new service instances come online and others go offline, the system automatically re-balances the distribution of Queues and Subscriptions to the currently available servers such that every Queue or Subscription is managed by one and only one server instance.

One of the obvious concerns with the system being implemented in-memory only is data recovery – when servers go down because of hardware/software issues, are re-booted, or otherwise need to be reset, all data resident in memory on those servers is also gone. For Queue Service instances, this implies that Queues belonging to several clients and potentially interesting Notifications in those Queues might be gone. For the PubSub Service, several subscriber lists might be lost when a server loses state. This is a problem we spent a huge amount of time addressing and designing for, and probably deserves a post of its own at some future time. A short summary of the solution is that in cases where one or several Queue and/or PubSub Servers go down, the system is able to detect exactly what happened and take remedial action to restore state in the cloud in cooperation with clients (because clients were the original source for all the transient data that was resident on those servers before they lost state).

Parting Notes

As the future scope of the Live Mesh experience, services and platform evolves (for instance, potentially allowing third-party services to subscribe to items in Live Mesh, enabling aggregators to leverage Live Mesh Pub-Sub, etc), the current Pub-Sub System architecture will hopefully provide a good scalable foundation which we can leverage to rapidly increase capabilities of the service.

We’re working on exposing Pub-Sub capabilities via the Live Mesh SDK when it becomes available so that developers can leverage the system in innovative ways to build responsive applications. Be sure to visit the Live Mesh Developer page and join the developer waiting list for announcements around the Live Mesh SDK when it’s available.

I hope this post gives a little more insight about how things work behind Live Mesh. Be sure to install Live Mesh on all your devices, give us feedback and report any issues you see!

Technorati Tags:

We're doing some server maintenance over the next couple days to update some of our configuration information.  During this time you may experience Live Mesh service outages, including Live Mesh folders that are not synchronizing, or an inability to establish Live Mesh Remote Desktop connections to your devices. We'll update here once we've completed this work.  Thanks for your patience as we get everything patched up.

UPDATE: We've completed the work mentioned above.  Some users have reported issues with their devices appearing in the offline state and not available for Live Remote Desktop connections.  To bring your device back to a healthy state, you need to exit and restart the Live Mesh client software, and then also stop and restart the Remote Desktop services (either net stop/start wlcrasvc, or just reboot).  Step by step directions are at http://social.microsoft.com/Forums/en/LiveMesh/threads/ under the "Live Remote Desktop Issue" thread.

Quick background: our updates this week involved a regularly scheduled update of some of the certificates we use to identify devices in the Mesh and to encrypt traffic sent to or through our servers.  We've discovered some cases where the client software doesn't pick up all the right updates unless you follow the particular order above (restart the client software/notifier first, then restart the remote desktop service.  As always, we appreciate your help in tracking down these kinds of issues in our Tech Preview.

Technorati Tags:
8 Comments
Filed under:

We've had several posts here talking about Live Mesh as a platform, and we've said that we'll tell more of that story at our Professional Developer's Conference in October.  The session list for PDC is now mostly complete, so you can start to get a sense of what we'll have to say about our platform:

Live Platform: New Developer Services and APIs
Live Platform: Building Mesh Applications
Live Platform: Mesh Services Architecture Deep Dive
Live Platform: Architecture and Advanced Programming Techniques
Live Platform: Building Applications with Social Data
Live Platform: FeedSync and Mesh Synchronization Services
Live Platform: Notifications, Awareness, and Communications
Live Platform: The Future of the Device Mesh

We're working on a couple more sessions as well that we hope to unveil once the conference starts.  And our VP, David Treadwell, is confirmed as a keynote speaker.

They'll be a bunch of folks from the Live Platform team spending time in the community areas at PDC, and we're looking forward to your feedback and suggestions, and hearing what you plan to build on top of our platform.

Technorati Tags:
1 Comments
Filed under:

Last week, we posted about an issue that might cause your Live Mesh Folders to either appear to have missing files, or have unexpectedly large numbers of conflicts.  We mentioned that we were testing a fix and we’d update you as soon as possible…and then it got quiet here for a bit.  The good news is that we’ve made a lot of progress since then, so here’s an update.

The root cause of the issue (clients not synching properly after encountering too many tombstones in a row) is fixed.  We actually put this fix into production early last week, and then watched to make sure tombstones were no longer causing any issues.  It’s been a week now, and we’re feeling good that we have this particular tombstone issue fixed.  We grudgingly admit that we are not perfect, and there might be other bugs left in our Tech Preview that cause incorrect conflicts or synch behavior – keep reporting issues that you see, and we’ll keep fixing them.

Of course we also want to help users who previously hit this bug and have folders that are in a confused state.  If you were hitting the issue where folders were only partially synchronizing, you should have already seen this fixed – the first time your client software contacted the server with the fix in production, the server should have returned the complete file list.

If you hit the issue where a folder had a large number of conflicts, we have good news for you here as well.  This particular tombstoning issue affects folders in a very distinct way, since it ends up creating conflicting items whose names and file contents are identical.  Conveniently, this also means that it’s fairly easy to automate clean up of such a folder.  Since we can tell that there are no real conflicts (that is, the files are in fact identical as determined by hashing file contents), we can remove any conflicts and just keep one copy of each file.  The net result is that we’ve written a tool which can identify folders affected by this particular bug, and then automatically clean them up.  The tool runs entirely in our datacenter, it never actually accesses file contents (we create/store the hash on upload), and it never exposes any of the filename data outside the datacenter.  We can ask the tool to give us back a list of LiveIDs of users who have affected folders, and then we can tell the tool to go fix all the folders that a given LiveID owns (if you create a folder, Live Mesh treats you as the owner.)

This tool should fix many of the conflicts created by this tombstone issue, but not all of them.  If your folders have been out of synch, and you’ve been making changes to files on multiple PCs, well then you have actually generated a real conflict (two different copies of the file exist), and it will take your attention to decide which copy to keep. 

Here’s the announcement about the tool that we’re posting to the forums with details on how to get your affected folders cleaned up:

Last week we posted a sticky in our forums containing the details of a recently discovered issue which has resulted in some Live Mesh folders being only partially synchronized. To better serve our customers, we have analyzed our storage service to identify folders that might have been impacted. If our analysis shows that you have a folder that might have been affected by this issue, resulting in either a large number of conflicts associated with your folders or fewer than expected files, you will be receiving an e-mail from us within the next three days asking whether you would like us to perform an automated clean up tool on our servers that will resolve spurious conflicts and retrieve missing files. Further details about this process will be included in that e-mail. Note that while this tool can greatly assist those with large numbers of affected folders, we cannot guarantee that all files and folders will be restored to their original state.

We will also soon be posting steps for performing a manual recovery to help those of you who have a small number of affected folders.

Finally, please remember that Live Mesh is currently a Tech Preview and that you should always backup any data stored in Live Mesh.

UPDATE: We have posted instructions for how to manually clean up affected folders here.

Technorati Tags:
9 Comments
Filed under:

A few users have reported either files missing when they view Live Mesh folders on their computer (but appearing as expected on their Live Desktop) or their computer showing all files but reporting many more conflicts than expected (and their Live Desktop showing duplicate copies of any file with a conflict.) We’ve spent the weekend investigating this, and we have a few details below. But the key news is this:

  • Live Mesh is not deleting or losing files. Even if they don’t all appear in Live Mesh folders on your computer, they are all present in a hidden state, as well as on your Live Desktop if the folder is synchronized there.
  • Uninstalling the Live Mesh software from a PC will delete the files that are in a hidden state on that PC. If the folder is not synchronized on any other computer or your Live Desktop, then uninstalling will result in the hidden files no longer being available.
  • If you stopped synchronizing a folder on your PC, then re-synchronized it, that folder is likely to generate some number of false conflicts.

We're testing a fix for this now and will deploy it as soon as we're confident it’s ready. In the meantime, if you have a Live Mesh folder that appears to be missing files (that is, synchronization appears to be complete but expected files are still not present) or one that has an unexpectedly large number of conflicts, in order to prevent data loss, do not uninstall the Live Mesh software. In addition, do not re-synchronize any folders you had previously stopped synchronizing.

 

Why is this happening? A technical explanation

 

In the interest of being open with you, our beloved and valued technology preview testers, we’re happy to provide more detail on what’s causing this behavior. The key to a good synchronization algorithm is understanding the history of all the files in a folder. You want to make sure that any client, even one that hasn’t synchronized in a good long while, can get an accurate list of what changed and what needs to be brought up to date. Part of a complete folder history is keeping track of files or folders that have been deleted, so that if a client comes online and tries to sync a file that doesn’t exist in the up-to-date folder list, we can tell whether it’s a new file or a file someone deleted a while back but is still on this particular client because the file deletion was never synchronized to it. We use the industry jargon tombstone for these deleted files.

 

What we discovered recently is an interesting edge case around tombstones. Live Mesh performs its synchronization in batches of roughly 50 files at a time. The client asks for the first 50 changes, processes those, then asks for the next 50, and so on. If, through sheer chance, the next batch of 50 items is made up entirely of tombstones—that is, it’s a list of 50 files that have all been deleted since this particular client last synchronized—the storage server gets a little confused. It returns that list of tombstones and then concludes that synchronization has ended. If there are additional file changes, they never get sent to the client. So this can lead to two patterns:

  • If you’re synchronizing a folder for the first time, and that folder has this pattern of 50 tombstones in a row, then you get only a partial sync. Any files the server returned before this block of 50 tombstones show up just fine, but any files after that won’t be synchronized to the client.
  • If you have first stopped and then restarted synchronization for a particular folder, it gets a little more complicated. In this scenario, when synchronization resumes, the client ought to just quickly see which of the files have changed and get everything up to date. But if a client hits this 50-tombstone-in-a-row bug, the Live Mesh service ends up confused. The client might have tens or even hundreds of files that you and I know are up to date and part of the folder, but the server failed to tell the client about them. So the client has no choice but to conclude that you have a bunch of new files, and that’s what it tells the server. The server, of course, recognizes that files with those names already exist, and so it mistakenly thinks the client has just created a bunch of new files that unfortunately have the exact same names as files already in the folder. Result: sync conflicts, and potentially lots of them.

Now, conflicts are an inevitable part of any synchronization system, and so both the server and client are built to understand what a conflict is and to store any conflicting files in a separate holding area, where they remain until the user decides how to resolve the conflicts. While they are in the holding area, the client software might not display the files as being part of the folder, while the Live Desktop instead represents the conflict by showing both files (yes, this is something we are already working on improving and making consistent ;). So the files are all in your mesh; it’s just not obvious where they are or how to access them.

 

The one catch is that the client holding area is stored in the Live Mesh folder for temporary application files. This directory is something we remove when the Live Mesh software is uninstalled (also something we are already working on improving—either warning you that uninstalling will remove any files in a conflicted state or just copying all conflicts somewhere else where they won’t get removed on uninstall). So if you somehow end up in a state where the folder is present only on one client, uninstalling the Live Mesh software from that client may remove all files in a conflicted state. That’s bad, we know it’s bad, and that’s why we suggest you don’t uninstall until we fix this issue.

 

Thanks as always for your continued participation and feedback. Ferreting out issues like this is exactly what our technical preview is designed to do, and so while it’s sometimes a bit painful, we appreciate your help and your patience as we work to get the issue fixed.

 

Technorati Tags: Live Mesh

We are pleased to announce that our next update is now available. The new build contains a crucial Live Mesh folder synchronization fix – details below. By default your Live Mesh software will automatically update itself within 24 hours of the new build being posted, but you can always right-click the Notifier icon in the system tray and choose to force an immediate update.

Fix:

·         Fixed issue where deleting a Live Mesh folder on one device, or stopping the folder from synchronizing on that device, would cause the folder to stop synchronizing on all devices.

If any of your Live Mesh folders have been affected by this issue, please use the following steps to re-establish stable sync relationships for those folders:

1.       Update the Live Mesh software on all of your device to the newest version.

2.       If any affected folders are currently set to synchronize with your mesh, please stop those folders from synchronizing on each of your devices.

a.       Right-click on the folder and select Live Mesh Options, then click Change Sync Settings

b.       For each device, under Synchronize files, select Never with this device.

3.       Once you have removed the affected folders from your mesh, you can then add them back in again by right-clicking the folder and selecting Add folder to your Live Mesh.

Windows Vista User Account Control (UAC) reminder

While we no longer require that UAC be enabled when running Live Mesh on Vista SP1, if you initially installed Live Mesh with UAC enabled, and then disabled it, you might have some issues upgrading. Please see the “NOTICE: Updating Live Mesh and User Account Control (UAC)” Announcement on the Live Mesh forums for further information.

Thank you for helping us test Live Mesh!

Technorati Tags: LiveMesh

12 Comments
Filed under:
More Posts Next page »
 
Page view tracker