<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Just another module from my kernel....</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/paulocondeca/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/paulocondeca/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:51:53 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Leveraging Windows Server 2016 S2D with SQL Server 2016 to build hyper-converged clusters for the "Automated Datacenter"</title>
      <link>https://docs.microsoft.com/archive/blogs/paulocondeca/leveraging-windows-server-2016-s2d-with-sql-server-2016-to-build-hyper-converged-clusters-for-the-automated-datacenter</link>
      <pubDate>Wed, 26 Apr 2017 13:37:03 GMT</pubDate>
      <dc:creator><![CDATA[Paulo Condeça]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulocondeca/?p=85</guid>
      <description><![CDATA[&lt;note: Support policy for Microsoft SQL Server products that are running in a hardware...]]></description>
      <content:encoded><![CDATA[&lt;note: <a href="https://support.microsoft.com/en-us/help/956893/support-policy-for-microsoft-sql-server-products-that-are-running-in-a-hardware-virtualization-environment">Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment </a>&gt;

Hello!

With the release of Windows Server 2016 and the "great/awesome/fabulous feature" storage spaces direct(S2D) that has the concept of leveraging local storage to build a "virtual-san", with different storage type from <em>SAS/SSD/NVMe</em> to generate different storage tiers/caching that can be both applicable on the cloud and on premises, this is game changer for SQL, both from a deployment perspective(<em>automation</em>) and <em>cost vs performance</em> !

How could one start to know a little bit more about this feature of Windows Server 2016?  Start <a target="_blank" href="https://technet.microsoft.com/en-us/windows-server-docs/storage/storage-spaces/storage-spaces-direct-overview">Here</a>.

Architecture:

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/126.png"><img width="650" height="740" class="alignnone size-full wp-image-95" alt="1" src="https://msdnshared.blob.core.windows.net/media/2017/05/126.png" /></a>
<h3>Lab: The first steps towards building our SQL Server Always On Failover Cluster Instance with powershell!</h3>
<em>In the cloud (Microsoft Azure):</em>

Make sure we have our SQL Server VMs running in the same<a target="_blank" href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability"><em> availability set</em> </a>to handle planned and unplanned maintenance and for the VMs not to run on the same rack/ network switch, meaning each VM will be assigned to an Update Domain (UD) split across Fault Domains (FD) :

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/221.png"><img width="594" height="390" class="alignnone wp-image-105" alt="2" src="https://msdnshared.blob.core.windows.net/media/2017/05/221.png" /></a>
<pre><span style="color: #0000ff"><span class="hljs-keyword">New</span>-AzureRmAvailabilitySet -ResourceGroupName PauloCondecaInfraRG01 -Name SQLServerFCIAvailabilitySet01 -Location <span class="hljs-string">"westeurope"</span>

</span></pre>
After the Availability Set created, it is time to create our storage account with<a target="_blank" href="https://docs.microsoft.com/en-us/azure/storage/storage-premium-storage"> Premium Storage </a>..
<pre><span style="color: #0000ff"><span class="hljs-comment">#PremiumStorageAccount</span>
$newstorageaccountname = <span class="hljs-string">"paulo1337storage"</span>
<span class="hljs-keyword">New</span>-AzureRMStorageAccount -StorageAccountName $newstorageaccountname -Location westeurope -Type <span class="hljs-string">"Premium_LRS"</span> 
</span></pre>
Now, its time to<a target="_blank" href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-powershell"> install </a>our Cluster Nodes on the top of this storage account:

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/317.png"><img width="578" height="453" class="alignnone wp-image-115" alt="3" src="https://msdnshared.blob.core.windows.net/media/2017/05/317.png" /></a>

Create Disks (Premium // SSD):

With Powershell Remoting, manage both servers from a management/jump box and run the bellow to add the machines to the data Domain, Windows Features :
<pre><span class="hljs-comment" style="color: #0000ff"># On both servers:</span>
 <span style="color: #0000ff">POWERCFG.EXE /S SCHEME_MIN</span>
 <span style="color: #0000ff">Add-Computer -DomainName data.local -Credential paulo</span>
 <span style="color: #0000ff">Restart-Computer -force </span>
 <span class="hljs-comment" style="color: #0000ff">#Add Windows Features to our environment </span>
 <span style="color: #0000ff">Install-WindowsFeature –Name Failover-Clustering,File-Services –IncludeManagementTools </span>
 <span style="color: #0000ff"><span class="hljs-keyword">New</span>-Cluster -Name CloudSQLServer1337 -Node CloudSQL1337N1,CloudSQL1337N2 -StaticAddress -NoStorage</span>
 <span class="hljs-comment" style="color: #0000ff">#Enable Storage Space Direct on the cluster</span>
 <span style="color: #0000ff">Enable-ClusterS2D</span></pre>
At this stage, we have all the features enabled, lets add some SSD drives to the servers, note here, that the size of the disc will influence the performance of the disk itself.

<strong>A disk &lt;128 GB of Size will translate to a maximum throughput of 100 MB/s while a disk &gt; 512 GB will translate to a maximum throughput of 250 MB/s , more details about this P10/20/30 in</strong> <a target="_blank" href="https://docs.microsoft.com/en-us/azure/storage/storage-premium-storage">https://docs.microsoft.com/en-us/azure/storage/storage-premium-storage</a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/04/pstorage.png"><img width="1063" height="256" class="alignnone size-full wp-image-245" alt="pstorage" src="https://msdnshared.blob.core.windows.net/media/2017/04/pstorage.png" /></a>

After having a couple of disks created, it is time to start creating the VirtualDisks to be used by SQL Server

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/512.png"><img width="1020" height="64" class="alignnone size-full wp-image-125" alt="5" src="https://msdnshared.blob.core.windows.net/media/2017/05/512.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/68.png"><img width="751" height="404" class="alignnone size-full wp-image-126" alt="6" src="https://msdnshared.blob.core.windows.net/media/2017/05/68.png" /></a>

<strong>We can use this storage to install our SQL Server 2016 Failover Cluster Instance, independent of it being on premises or cloud!</strong>

Information about disk distribution by enclosure:

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/77.png"><img width="995" height="438" class="alignnone size-full wp-image-135" alt="7" src="https://msdnshared.blob.core.windows.net/media/2017/05/77.png" /></a>

&nbsp;

Doing a test with <a target="_blank" href="https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223">Diskspd,</a> representative of what could be an OLTP Workload (75% reads + 25% writes) could easily reach a 250 MB/s throughput with a single file; with more parallel executions and different configurations, this numbers could sky-rocket but I would leave that for another time/article.

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/84.png"><img width="872" height="59" class="alignnone size-full wp-image-145" alt="8" src="https://msdnshared.blob.core.windows.net/media/2017/05/84.png" /></a>

<i>While this was running, I could see the network traffic between the nodes going on :) inline with the WriteActivity (500 Mbps~62MB/s):</i>

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/93.png"><img width="591" height="479" class="alignnone size-full wp-image-146" alt="9" src="https://msdnshared.blob.core.windows.net/media/2017/05/93.png" /></a>

<b>And out of curiosity, in one of the workloads, I took one of the nodes offline, just to see the network activity to put the volume in 100% healthy state, and it peaked with 2GBit/s , basically 250MB/s that translate the maximum troughput of a P30 disk.</b>

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/102.png"><img width="1014" height="440" class="alignnone wp-image-155" alt="10" src="https://msdnshared.blob.core.windows.net/media/2017/05/102.png" /></a>

<em>This post is just to basically create awareness about this new Windows Server feature and how we could leverage it to benefit SQL Server implementations, so naturally, there are details that are not covered in this post, such as workloads </em><em>running that  leverage NVMe+RDMA+S2D </em>for high throughput.

All the best!

Paulo Condeça]]></content:encoded>
    </item>
    <item>
      <title>Troubleshooting in SQL Server Transactional Replication on *very* busy Subscribers + WindDbg + WPR &amp; WPA</title>
      <link>https://docs.microsoft.com/archive/blogs/paulocondeca/troubleshooting-in-sql-server-transactional-replication-on-very-busy-subscribers-winddbg-wpr-wpa</link>
      <pubDate>Wed, 23 Nov 2016 13:37:55 GMT</pubDate>
      <dc:creator><![CDATA[Paulo Condeça]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulocondeca/?p=165</guid>
      <description><![CDATA[Hello again!

Moving forward to the subject, I worked in a specific situation where replication...]]></description>
      <content:encoded><![CDATA[Hello again!

Moving forward to the subject, I worked in a specific situation where replication latency increased above acceptable values, scenario was the following bellow:
<ul>
 	<li>Publisher to Distributor | Log Reader Delivery Latency = Ok</li>
 	<li>Distributer to Subscriber | Distributor Delivery Latency = Nok</li>
 	<li>MSdistribution_history was throwing state 2 messages (distrib agent reader thread waits on writer thread )</li>
 	<li>REPL Stored Procedures *sp_MSins/upd/del_*** where executing fast (at the microsecond scale)</li>
</ul>
At this point I had all the <strong>evidences of the issue being indeed writing to the subscriber </strong>but the <strong>replication stored procedures were executing fast at the subscriber </strong>and the volume of data being replicated hadn't exponentially changed!

So... I was intrigued about this... <strong>Basically replication was telling me that sql server engine was too slow</strong> but <strong>sql server was telling me it was executing its stuff fast enough</strong>.

Well... Lets take full memory dump of DISTRIB.exe and check see if there is anything interesting to find, just took 2 dumps using procdump with 5 minutes delay between them:

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/19.jpg"><img width="621" height="503" class="alignnone size-full wp-image-175" alt="1" src="https://msdnshared.blob.core.windows.net/media/2017/05/19.jpg" /></a>

Looking at the debugger, analyzing the dump, an exercise has to be be done to guess the functionality of the functions based on its name (ok... I have to admit, I miss this part of having source code access and private symbols back when I was at Microsoft to better troubleshoot, but... It can still be done using the public symbols to a certain degree of correctness)

One of the first things I do while analyzing dumps is to use "!runaway", "!runaway 2" and "!runaway 4", between the 2 dumps. The main idea is to analyze the delta of user time and kernel time for each thread and see if anything looks wrong.

Nothing looked wrong in this 5 minutes delta, i can see that thread 0, 5 and 6 had work to do, with more weight for thread 0 and 6, well, this a sign they are working.

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/26.jpg"><img width="660" height="517" class="alignnone size-full wp-image-185" alt="2" src="https://msdnshared.blob.core.windows.net/media/2017/05/26.jpg" /></a>

Lets check what is this thread 0 and 6, since this are the ones that had higher User Mode Time and Kernel Mode Time.

Thread 0, is likely related with the reader thread - sp_MSget_repl_commands that pulls data from the distribution database and stores them in an internal queue. The call stack looks good.

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/33.jpg"><img width="826" height="561" class="alignnone size-full wp-image-195" alt="3" src="https://msdnshared.blob.core.windows.net/media/2017/05/33.jpg" /></a>

Going for Thread 6, this is likely related with the writer thread, basically running the sp_MSIns/Upd/Del in the subscriber database (writing queued commands). The call stack looks good.

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/69.png"><img width="706" height="563" class="alignnone size-full wp-image-205" alt="6" src="https://msdnshared.blob.core.windows.net/media/2017/05/69.png" /></a>

So at this stage,<strong> I can't see any issue with the Distrib.exe (calls rdistcom.dll) process </strong>and <strong>can't also see any issue with the duration of the Replication stored procedures </strong>but<strong> </strong>while I was <strong>analyzing </strong><em><strong>dm_exec_procedure_stats </strong></em>I noticed that the <em><strong>cached time vs last execution time was almost the same</strong></em>! This <strong>triggered the investigation to classic "plan cache internals" mode and it was quickly found memory pressure</strong>. In this case custom replication stored procedures are being used and although the logic is reduced to a minimum,it takes too much <strong>time to compile</strong> (<strong>s</strong>y<strong>s.dm_exec_cached_plans is your friend here, use it and look for the compile time.</strong>

<strong>Compile time &gt; 1.000.000 microseconds</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/72.jpg"><img width="993" height="278" class="alignnone size-full wp-image-206" alt="7" src="https://msdnshared.blob.core.windows.net/media/2017/05/72.jpg" /></a>

<b>Execution time &lt; 100 microseconds</b>

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/8.jpg"><img width="1220" height="158" class="alignnone size-full wp-image-215" alt="8" src="https://msdnshared.blob.core.windows.net/media/2017/05/8.jpg" /></a>

Well,  there are already many blogs and official Microsoft documentation about plan cache internals and memory pressure and also replication troubleshooting.

Driven my curiosity, ran a WPR @ TEST ENV, just to see how would a writer thread latency look like under WPA, here it is bellow (basically modified repl procedures by adding a waitfor delay to simulate a slow procedure execution):

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/9.jpg"><img width="987" height="897" class="alignnone size-full wp-image-235" alt="9" src="https://msdnshared.blob.core.windows.net/media/2017/05/9.jpg" /></a>

The resolution for this situation was around changing memory parameters to cover a very specific scenario.

Hope you find this reading interesting.

All the best!

Paulo Condeça.

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Failed to bring your Mission Critical SQL Server Always On Failover Cluster Online after Patching!?</title>
      <link>https://docs.microsoft.com/archive/blogs/paulocondeca/failed-to-bring-your-mission-critical-sql-server-always-on-failover-cluster-online-after-patching</link>
      <pubDate>Mon, 25 Apr 2016 13:37:21 GMT</pubDate>
      <dc:creator><![CDATA[Paulo Condeça]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulocondeca/?p=67</guid>
      <description><![CDATA[In a scenario, that you successfully patched SQL Server (Service Pack/ CU) but the SQL Server...]]></description>
      <content:encoded><![CDATA[In a scenario, that you successfully patched SQL Server (Service Pack/ CU) but the SQL Server Resource Group can't be brought online, I recommend to start your PowerShell console and generate your Cluster Log (simply by Get-ClusterLog), this will create your file in @ Windows Directory&gt;\Cluster\Reports\Cluster.Log

In the meanwhile I have also raised a connect entry @ <a target="_blank" href="https://connect.microsoft.com/SQLServer/feedback/details/2633114">https://connect.microsoft.com/SQLServer/feedback/details/2633114</a> .
This type of validations can be easily put into the product and increase the reliability of the rolling-upgrade.

Back to root cause analysis, relying on one of my favorite tools to see what registry calls (among other things...) are being made in the OS, <a target="_blank" href="https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx">the Process Monitor (Sysinternals tools) aka ProcMon</a>. Started to analyze events from the <a target="_blank" href="https://blogs.msdn.microsoft.com/clustering/2009/06/26/what-is-rhs-and-what-does-it-do/">RHS.exe</a> from the time the resource couldn't come online, the tricky part here is that to find the root cause of the issue, doesn't have to necessarily be different from a "SUCCESS state" of a call, meaning that we will need to invest 5 minutes of our time and use our hawk eyes to find the issue around the time the resource failed to come online!

Bellow, is the error output from Cluster.Log, looking at the failure string, it is very suggestive of being related with replication(REPL) - DoREPLSharedDataUpgrade.

<a href="https://msdnshared.blob.core.windows.net/media/2017/05/18.jpg"><img width="712" height="696" class="alignnone size-full wp-image-75" alt="1" src="https://msdnshared.blob.core.windows.net/media/2017/05/18.jpg" /></a>

Next action:

Start ProcMon, reproduce the Issue (Bring the Cluster Resource Online), stop ProcMon, copy the file (*.PML) to another box and start analyzing the file by filtering process to RHS.EXE to reduce the noise of all activity of the server.

Humm... The repldata folder is point to a path that no longer exists...! Fix this to the proper directoy, and bring the cluster resource back online, hopefully there are no further issues and instance is successfully patched - online, Up &amp; Running!

Regards,
Paulo Condeça.]]></content:encoded>
    </item>
    <item>
      <title>Ninja Troubleshooting- User Interface freezing during SQL Server database restore.</title>
      <link>https://docs.microsoft.com/archive/blogs/paulocondeca/ninja-troubleshooting-user-interface-freezing-during-sql-server-database-restore</link>
      <pubDate>Fri, 31 Jul 2015 09:57:00 GMT</pubDate>
      <dc:creator><![CDATA[Paulo Condeça]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulocondeca/2015/07/31/ninja-troubleshooting-user-interface-freezing-during-sql-server-database-restore/</guid>
      <description><![CDATA[Hello world :)

To sum up, i was working with one of my customers&nbsp;regarding the UI (User...]]></description>
      <content:encoded><![CDATA[Hello world :)

To sum up, i was working with one of my customers&nbsp;regarding the UI (User Interface) freezing while restoring (Symantec NetBackup) a database into SQL Server 2012, leading to a unresponsive behavior from the server.

Scenario (VMware guest &ndash; WS2012R2):

<img class="center" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAY6AAAAJDY0ZmFiYjgyLWU0MDItNDk3OS1hZDEzLTM0ZDFlN2FjODI3Ng.jpg" alt="" width="588" height="85">

Started with gathering performance counters to jump into the analysis and even though there wasn&rsquo;t&nbsp;clear CPU pressure (all green above :) ), found spikes that matched the UI Freeze on a specific CPU (11) as observed bellow:

<img class="center" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAPLAAAAJGVmZjc0ZTE5LTg5YjgtNGNhNi1hMGEyLTllNTc3MzU1MDExZg.jpg" alt="" width="690" height="637">

Basically the Processor % Privileged Time indicates the percentage of time a thread runs in privileged mode also known as kernel mode. When your application calls operating system functions (for example to perform file or network I/O or to allocate memory), these operating system functions are executed in privileged mode. I recommend using the <a href="https://pal.codeplex.com/">Performance Analysis of Logs (PAL) Tool</a> to assist on performance counter analysis.

The PFE (Premier Field Engineering) has the culture to do <a href="https://en.wikipedia.org/wiki/Root_cause_analysis" rel="nofollow">Root Cause Analysis</a>&hellip;So... Let&rsquo;s dig a little deeper :) , using WPR (Windows Performance Recorder) that is included on <a href="https://www.microsoft.com/en-US/download/details.aspx?id=39982">Windows Assessment and Deployment Kit and do a trace while the issue is being reproduced&hellip;</a>

<img class="center" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAWLAAAAJGI5OGQ0YzYzLTNlZTItNDM2My1iZDAzLTYxNjI2MTIzYTljMA.jpg" alt="" width="588" height="462">

Analyze the trace with Windows Performance Analyzer:

First trace, without any change on the Operating System:<br>Since we want to focus on % Privilege Time, we want to analyze the DPC Duration by Module and Processor:

&nbsp;<a href="https://i.imgur.com/XgDdMXR.jpg" rel="nofollow"><img class="center" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAJoAAAAJGNhZDU2MGMyLTk4MjEtNDQ4NS1iMTVhLThiMmE3NzljZDlhNQ.jpg" alt="" width="1547" height="814"></a>

Hummm&hellip; Interesting&hellip; The NDIS.SYS is taking most of compute time, more precisely the function <a href="https://tinyurl.com/nlqdwkq">ndisInterruptDpc</a> , that leaded to <a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff567236(v=vs.85).aspx">RSS - Receive Side Scaling </a> (improves the system performance related to handling of network data on multiprocessor systems)

Since this is a virtualized multiprocessor system, it was to time check if RSS was enabled on the NIC used for Backup (<a href="https://technet.microsoft.com/en-us/library/dn383582.aspx">https://technet.microsoft.com/en-us/library/dn383582.aspx</a>), it wasn&rsquo;t enabled.

At this point, it was clear that this Vcore (CPU 11) wasn&rsquo;t able to cope with all the Network Related Workload.&nbsp;

Next step, enable RSS on NIC used for backup, reproduce the workload, trace it and analyze again in WPA, the result can be clearly observed in the data bellow:

&nbsp;<a href="https://i.imgur.com/bB1bOuD.jpg" rel="nofollow"><img class="center" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAVoAAAAJDZiNDI0MDM3LWE1YzktNDJhNS04ZjE2LTMxOGM0NzBmYWRhNw.jpg" alt="" width="1559" height="770"></a>

<span style="background-color: #ffff00;">Conclusion, when RSS is enabled&nbsp;on the Backup NIC, the Network Stack workload is scaled out by 4 CPUs thus reducing the &ldquo;spike workload&rdquo; from +/-5 seconds to +/- 1 second spread across 4 CPUS and no longer having UI Freezes.</span>

Interesting that VMware also has an article related with this situation:<br><a href="https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=2008925">https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=2008925</a>

&ldquo;Receive Side Scaling (RSS) RSS is a mechanism which allows the network driver to spread incoming TCP traffic across multiple CPUs, resulting in increased multi-core efficiency and processor cache utilization. If the driver or the operating system is not capable of using RSS, or if RSS is disabled, all incoming network traffic is handled by only one CPU. In this situation, a single CPU can be the bottleneck for the network while other CPUs might remain idle.&ldquo;

Tools used:<br>Performance Counters<br>Performance Analysis of Logs<br>Windows Performance Recorder<br>Windows Performance Analyzer

<p>Regards,<br>Paulo Conde&ccedil;a</p>]]></content:encoded>
    </item>
    <item>
      <title>Building elastic and fault tolerant Data Platform solutions with Azure, SQL Server and HDInsight</title>
      <link>https://docs.microsoft.com/archive/blogs/paulocondeca/building-elastic-and-fault-tolerant-data-platform-solutions-with-azure-sql-server-and-hdinsight</link>
      <pubDate>Wed, 24 Jun 2015 07:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Paulo Condeça]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulocondeca/2015/06/24/building-elastic-and-fault-tolerant-data-platform-solutions-with-azure-sql-server-and-hdinsight/</guid>
      <description><![CDATA[If you are interested on a solution that provides elastic scale, High Availability and Disaster...]]></description>
      <content:encoded><![CDATA[If you are interested on a solution that provides elastic scale, High Availability and Disaster Recovery between different locations with a "pay as you go approach", <a href="https://www.slideshare.net/PauloCondea/building-elastic-and-fault-tolerant-data-platform-solutions-with-azure-sql-server-and-hdinsight-76132032">I suggest you to invest 2 minutes of your time to take a look of this session!</a>

[embed]https://www.slideshare.net/PauloCondea/building-elastic-and-fault-tolerant-data-platform-solutions-with-azure-sql-server-and-hdinsight-76132032[/embed]

-Paulo Condeça]]></content:encoded>
    </item>
  </channel>
</rss>