{"id":400,"date":"2013-11-04T09:00:00","date_gmt":"2013-11-04T09:00:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/inside_microsoft_research\/2013\/11\/04\/conquering-distributed-challenges\/"},"modified":"2016-07-20T07:31:01","modified_gmt":"2016-07-20T14:31:01","slug":"conquering-distributed-challenges","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/blog\/conquering-distributed-challenges\/","title":{"rendered":"Conquering Distributed Challenges"},"content":{"rendered":"<div id=\"share-icons-top-of-post\">\n<ul class=\"post-social\"><!--          FACEBOOK LIKE   CODE           --><\/p>\n<li class=\"post-facebook\"><iframe style=\"border: none; overflow: hidden; width: 100px; height: 21px;\" src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=http%3A%2F%2Fblogs.technet.com%2Fb%2Finside_microsoft_research%2Farchive%2F2013%2F11%2F04%2Fconquering-distributed-challenges.aspx&width=100&height=21&colorscheme=light&layout=button_count&action=like&show_faces=true&send=false&appId=502558646482372\" frameborder=\"0\" scrolling=\"no\"><\/iframe><\/li>\n<p><!--          TWITTER SHARING CODE           --><\/p>\n<li class=\"post-twitter\"><a class=\"twitter-share-button\" href=\"https:\/\/x.com\/share\" data-via=\"msftresearch\" data-count=\"horizontal\">Tweet<\/a><br \/>\n<script type=\"text\/javascript\" language=\"JavaScript\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/90\/35\/js\/6811.tweet-this.js\" original-url=\"http:\/\/blogs.technet.com\/cfs-file.ashx\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-90-35-js\/6811.tweet_2D00_this.js\"><\/script>\n<\/li>\n<\/ul>\n<\/div>\n<p><!--    END SOCIAL SHARING CONTENT    --> <!-- ENTER AUTHOR AND BLOG CONTENT BELOW --><\/p>\n<p class=\"posted-by\">Posted by <span class=\"author\">Rob Knies<\/span><\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/90\/35\/3731.SOSP.jpg\" original-url=\"http:\/\/blogs.technet.com\/cfs-file.ashx\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-90-35\/3731.SOSP.jpg\"><img decoding=\"async\" style=\"margin: 10px; border: 0px currentColor; float: left;\" title=\"SOSP 2013 logo\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/90\/35\/3731.SOSP.jpg\" original-url=\"http:\/\/blogs.technet.com\/resized-image.ashx\/__size\/550x0\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-90-35\/3731.SOSP.jpg\" alt=\"SOSP 2013 logo\" width=\"250\" \/><span class=\"sr-only\"> (opens in new tab)<\/span><\/a>&nbsp;<\/p>\n<p>Distributed computing can be a fiendishly difficult endeavor. Its benefits are manifest: Such systems pass messages across a series of computing devices connected to a network, and those devices interact efficiently to achieve results beyond the capability of any of the individual components.<\/p>\n<p>Such work, though, is not for the faint-hearted. But then, the faint-hearted don&rsquo;t walk the halls of <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Microsoft Research Silicon Valley\" href=\"http:\/\/research.microsoft.com\/en-us\/labs\/siliconvalley\/default.aspx\" target=\"_blank\">Microsoft Research Silicon Valley<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, which has focused on distributed computing since its founding 12 years ago. Still, many vexing hurdles remain to be cleared, and scientists from the Silicon Valley lab will be suggesting solutions to some of them during <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"SOSP 2013\" href=\"http:\/\/sigops.org\/sosp\/sosp13\/\" target=\"_blank\">SOSP 2013<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, the Association for Computing Machinery&rsquo;s 24th annual Symposium on Operating System Principles, being held from Nov. 3 to 6 in the scenic Laurel Highlands region in Southwestern Pennsylvania.<\/p>\n<p>The Dandelion and Naiad projects, subjects of two of seven papers from Microsoft Research to be presented during SOSP 2013, demonstrate research that exhibits computational thinking, discussed by <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Jeannette Wing\" href=\"http:\/\/research.microsoft.com\/en-us\/press\/jeannette-wing.aspx\" target=\"_blank\">Jeannette Wing<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, corporate vice president of Microsoft Research, in a <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"video\" href=\"https:\/\/channel9.msdn.com\/Series\/Microsoft-Research-Luminaries\/Luminaries-Jeannette-Wing-of-Microsoft-Research\" target=\"_blank\">video<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> made public Oct. 29 as part of the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Microsoft Research Luminaries\" href=\"https:\/\/channel9.msdn.com\/Series\/Microsoft-Research-Luminaries\" target=\"_blank\">Microsoft Research Luminaries<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> video series.<\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Dandelion\" href=\"http:\/\/research.microsoft.com\/en-us\/projects\/dandelion\/\" target=\"_blank\">Dandelion<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> makes it much easier to program applications that run on CPU-plus-GPU clusters, by shifting responsibilities for coping with challenges inherent in programming for GPUs on distributed systems from the programmer to the compiler during runtime.<\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Naiad\" href=\"http:\/\/research.microsoft.com\/en-us\/projects\/naiad\/default.aspx\" target=\"_blank\">Naiad<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a prototype platform for performing incremental, iterative, and interactive data-parallel computation, has been able to achieve various types of computation on big data that were previously unable to be handled by a single system.<\/p>\n<p>In the days leading up to SOSP 2013, researchers from both projects took a few minutes to describe what their contributions to the conference entail.<\/p>\n<p><em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Dandelion: a Compiler and Runtime for Heterogeneous Systems\" href=\"http:\/\/research.microsoft.com\/pubs\/201110\/sosp13-dandelion-final.pdf\">Dandelion: a Compiler and Runtime for Heterogeneous Systems<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>, was a joint authorial effort by <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Christopher J. Rossbach\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/crossbac\/\">Christopher J. Rossbach<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Yuan Yu\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/yuanbyu\/\" target=\"_blank\">Yuan Yu<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Jon Currey\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/jcurrey\/\" target=\"_blank\">Jon Currey<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Jean-Philippe Martin\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/jpmartin\/\" target=\"_blank\">Jean-Philippe Martin<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, and <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Dennis Fetterly\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/fetterly\/\" target=\"_blank\">Dennis Fetterly<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, all of Microsoft Research Silicon Valley. Rossbach offered an explanation of the project&rsquo;s contribution.<\/p>\n<p>&ldquo;Dandelion addresses programmability problems that arise in settings that feature architectural heterogeneity and\/or distributed-computing resources,&rdquo; he explains. &ldquo;A good example of such a context&mdash;the one we focus on in the paper&mdash;is a small cluster of machines that both have multicore CPUs and GPUs. Unfortunately, developing applications for these systems is extremely difficult and generally requires experts.<\/p>\n<p>&ldquo;The presence of heterogeneity in the form of GPUs requires a developer to deal with diverse programming and execution models and specialized front-end language tools. GPUs are still very hard to program. A GPU-plus-CPU cluster combines these challenges with a long list of well-known problems inherent in writing code for a distributed system, and the result is that, in aggregate, these challenges can make using this kind of infrastructure untenable for most programmers.&rdquo;<\/p>\n<p>Dandelion, though, addresses this obstacle by providing a sequential, managed programming interface for such systems.<\/p>\n<p>&ldquo;The programmer writes code in a familiar productivity language like C#,&rdquo; Rossbach says, &ldquo;and the Dandelion compiler handles all the challenges, automatically generating parallel GPU implementations and managing data partitioning, distribution, and scheduling.<\/p>\n<p>&ldquo;Ideally, the programmer can develop code without specializing it for the execution context. The SOSP paper describes a prototype of Dandelion that takes important steps toward that goal by automatically executing <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"LINQ\" href=\"http:\/\/research.microsoft.com\/en-us\/um\/people\/gmb\/papers\/sigmod06.pdf\" target=\"_blank\">LINQ<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> queries on such clusters.&rdquo;<\/p>\n<p>The other paper mentioned above, <em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"<em>Naiad: A Timely Dataflow System<\/em>&#8221; href=&#8221;http:\/\/research.microsoft.com\/pubs\/201100\/naiad_sosp2013.pdf&#8221; target=&#8221;_blank&#8221;>Naiad: A Timely Dataflow System<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>, is also an all-Microsoft Research Silicon Valley offering, written by <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Derek G. Murray\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/derekmur\/\" target=\"_blank\">Derek G. Murray<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Frank McSherry\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/mcsherry\/\" target=\"_blank\">Frank McSherry<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Rebecca Isaacs\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/risaacs\/\" target=\"_blank\">Rebecca Isaacs<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Michael Isard\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/misard\/\" target=\"_blank\">Michael Isard<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Paul Barham\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/pbar\/\" target=\"_blank\">Paul Barham<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, and <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Mart&iacute;n Abadi\" href=\"http:\/\/research.microsoft.com\/en-us\/people\/abadi\/\" target=\"_blank\">Mart&iacute;n Abadi<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. McSherry, who last year wrote a post for this blog that served as a <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"useful primer on Naiad\" href=\"http:\/\/blogs.technet.com\/b\/inside_microsoft_research\/archive\/2012\/05\/10\/naiad-incremental-iterative-computation-for-big-data.aspx\" target=\"_blank\">useful primer on Naiad<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, discusses the latest refinement of the platform.<\/p>\n<p>&ldquo;Each big-data system does a limited set of things well,&rdquo; he says, &ldquo;for example, low-latency streaming computation or iterative graph computation or high-throughput batch computation. But if users want to do some combination, or all three, they are out of luck. The reason is that it is fundamentally hard to do all of these things at the same time.<\/p>\n<p>&ldquo;We&rsquo;ve done all three in Naiad, but we had to invent some fundamentally new ways to coordinate distributed computation to get low latency for streaming and loops without involving all of the machines in a clunky synchronous protocol.&rdquo;<\/p>\n<p>Those new techniques included a new computational model called &ldquo;timely dataflow,&rdquo; which enables parallelism across a wide set of algorithms.<\/p>\n<p>&ldquo;The timely dataflow model is meant to unify a lot of the patterns that existing big-data systems have used and to enable Naiad to execute all of these types of systems in a common framework,&rdquo; McSherry says. &ldquo;This means that you can do high-throughput data ingestion, fed into a complex iterative graph analysis and served up with low-latency, interactive access to a user&mdash;all within the same framework.&rdquo;<\/p>\n<p>Combining these separate computational needs into a single model offers an additional benefit.<\/p>\n<p>&ldquo;We&rsquo;re hoping,&rdquo; McSherry says, &ldquo;that the unification will simplify a lot of the research into these sorts of systems, because new platforms won&rsquo;t need to implement everything from scratch, as they do now, and can instead build on and contribute to the Naiad ecosystem.&rdquo;<\/p>\n<p>To enable that capability, Naiad has been released to the open-source community and is <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"available on GitHub\" href=\"https:\/\/github.com\/MicrosoftResearchSVC\/Naiad\/\" target=\"_blank\">available on GitHub<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. The download source contains the entire Naiad system for running on a single computer or a cluster of computers, and it is compatible with <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"Windows\" href=\"http:\/\/windows.microsoft.com\/en-US\/windows\/home\" target=\"_blank\">Windows<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, Linux, and Mac OS. It includes example applications, as well as frameworks and libraries for building new applications.<\/p>\n<p>Rossbach says that Dandelion also will conserve programming resources.<\/p>\n<p>&ldquo;We show,&rdquo; he says, &ldquo;that C#\/.NET programs can derive significant performance benefit from GPUs in the contexts we describe\u0336\u0336&mdash;with almost no additional effort from the programmer.&rdquo;<\/p>\n<p>Other papers with Microsoft Research co-authors that have been accepted for SOSP 2013:<\/p>\n<p><em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"<em>Consistency-Based Service Level Agreements for Cloud Storage<\/em>&#8221; href=&#8221;http:\/\/research.microsoft.com\/en-us\/um\/people\/maheshba\/papers\/pileus-sosp2013.pdf&#8221; target=&#8221;_blank&#8221;>Consistency-Based Service Level Agreements for Cloud Storage<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>&mdash;Douglas B. Terry, Microsoft Research; Vijayan Prabhakaran, Microsoft Research; Ramakrishna Kota, Microsoft Research; Mahesh Balakrishnan, Microsoft Research; Marcos K. Aguilera, Microsoft Research; and Hussam Abu-Libdeh, Cornell University.<\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"IOFlow: A Software-Defined Storage Architecture\" href=\"http:\/\/research.microsoft.com\/pubs\/198941\/ioflow-sosp13.pdf\" target=\"_blank\"><em>IO<\/em>Flow: A Software-Defined Storage Architecture<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>&mdash;Eno Thereska, Microsoft Research; Hitesh Ballani, Microsoft Research; Greg O&rsquo;Shea, Microsoft Research; Thomas Karagiannis, Microsoft Research; Antony Rowstron, Microsoft Research; Tom Talpey, Microsoft; Richard Black, Microsoft Research; and Timothy Zhu, Carnegie Mellon University.<\/p>\n<p><em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"<em>Tango: Distributed Data Structures over a Shared Log<\/em>&#8221; href=&#8221;http:\/\/research.microsoft.com\/en-us\/um\/people\/maheshba\/papers\/tangososp.pdf&#8221; target=&#8221;_blank&#8221;>Tango: Distributed Data Structures over a Shared Log<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>&mdash;Mahesh Balakrishnan, Microsoft Research; Dahlia Malkhi, Microsoft Research; Ted Wobber, Microsoft Research; Ming Wu, Microsoft Research; Vijayan Prabhakaran, Microsoft Research; Michael Wei, University of California, San Diego; John D. Davis, Microsoft Research; Sriram Rao, Microsoft; Tao Zou, Cornell University; and Aviad Zuck, Tel Aviv University.<\/p>\n<p><em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"<em>Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications<\/em>&#8221; href=&#8221;http:\/\/research.microsoft.com\/en-us\/um\/people\/maheshba\/papers\/tangososp.pdf&#8221; target=&#8221;_blank&#8221;>Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>&mdash;Levin Ravindranath, Massachusetts Institute of Technology; Jitendra Padhye, Microsoft Research; Ratul Mahajan, Microsoft Research; and Hari Balakrishnan, Massachusetts Institute of Technology.<\/p>\n<p><em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" title=\"<em>Transaction chains: achieving serializability with low-latency in geo-distributed storage systems<\/em>&#8221; href=&#8221;http:\/\/research.microsoft.com\/en-us\/people\/aguilera\/transaction-chains-sosp2013.pdf&#8221; target=&#8221;_blank&#8221;>Transaction chains: achieving serializability with low-latency in geo-distributed storage systems<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em>&mdash;Yang Zhang, New York University; Russell Power, New York University; Siyuan Zhou, New York University; Yair Sovran, New York University; Marcos K. Aguilera, Microsoft Research; and Jinyang Li, New York University.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tweet Posted by Rob Knies &nbsp; Distributed computing can be a fiendishly difficult endeavor. Its benefits are manifest: Such systems pass messages across a series of computing devices connected to a network, and those devices interact efficiently to achieve results beyond the capability of any of the individual components. Such work, though, is not for [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":[],"msr_hide_image_in_river":0,"footnotes":""},"categories":[1],"tags":[186587,194719,187184,200909,201129,201185,201187,201281,201285,186832,186461,201633,195698,201747,201829,202159,196022,202257,187125,202449,202499,202577,202675,202765,202777,202963,202967,203227,203399,203499,203937,204121,204275,187221,204771],"research-area":[],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-400","post","type-post","status-publish","format-standard","hentry","category-research-blog","tag-net","tag-association-for-computing-machinery","tag-c","tag-christopher-j-rossbach","tag-cpu","tag-dandelion","tag-dandelion-a-compiler-and-runtime-for-heterogeneous-systems","tag-dennis-fetterly","tag-derek-g-murray","tag-distributed-computing","tag-distributed-systems","tag-frank-mcsherry","tag-github","tag-gpu","tag-heterogeneity","tag-jean-philippe-martin","tag-jeannette-wing","tag-jon-currey","tag-linq","tag-linux","tag-mac-os","tag-martn-abadi","tag-michael-isard","tag-microsoft-research-luminaries","tag-microsoft-research-silicon-valley","tag-naiad","tag-naiad-a-timely-dataflow-system","tag-paul-barham","tag-programmer","tag-rebecca-isaacs","tag-sosp-2013","tag-symposium-on-operating-system-principles","tag-timely-dataflow","tag-windows","tag-yuan-yu","msr-locale-en_us"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[],"related-projects":[],"related-events":[],"related-researchers":[],"msr_type":"Post","byline":"","formattedDate":"November 4, 2013","formattedExcerpt":"Tweet Posted by Rob Knies &nbsp; Distributed computing can be a fiendishly difficult endeavor. Its benefits are manifest: Such systems pass messages across a series of computing devices connected to a network, and those devices interact efficiently to achieve results beyond the capability of any&hellip;","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/comments?post=400"}],"version-history":[{"count":1,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/400\/revisions"}],"predecessor-version":[{"id":261342,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/400\/revisions\/261342"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/categories?post=400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/tags?post=400"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=400"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=400"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=400"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=400"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=400"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=400"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=400"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}