<?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>MSDN Utopia</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/salvapatuel/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/salvapatuel/feed.xml</link>
    <description>Salvador Patuel &amp;#039;s architectural challenges.
    
Microsoft Application Development Consultants Team</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:50:01 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Distributed Cache Capabilities - Notifications</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-notifications</link>
      <pubDate>Sat, 03 Dec 2011 07:26:16 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/12/03/distributed-cache-capabilities-notifications/</guid>
      <description><![CDATA[A notification system allows the cache to interact with external applications. This attribute can be...]]></description>
      <content:encoded><![CDATA[<p>A notification system allows the cache to interact with external applications. This attribute can be useful on scenarios where certain activities, for example workflows, need to know the state of an item.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Cache item notification</p>
</td>
<td valign="top" width="451">
<p>A cache item notification system<br />&nbsp; will allow clients to subscribe to any event associated with a specific cache<br />&nbsp; item. These notifications are usually handled by a disconnected proxy that<br />&nbsp; allows subscribers to hold an open channel with the notification service. The<br />&nbsp; cache item is usually decorated with a reference to the notification tables<br />&nbsp; and signals the entry when the item is modified, accessed or deleted.</p>
</td>
<td valign="top" width="58">
<p align="center"><b>2</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>This feature can be useful in<br />&nbsp; scenarios where the cache is used as a pub/sub storage mechanism. But only<br />&nbsp; use this feature if the amount of clients is below 25 as there is a<br />&nbsp; performance penalty when using a notification system that can drag the update<br />&nbsp; times to unacceptable levels. If this model is required consider using cache<br />&nbsp; regions to minimize the overhead.</p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Group Notification</p>
</td>
<td valign="top" width="451">
<p>Group notifications are an<br />&nbsp; advanced version of cache item notification. This model allows grouping<br />&nbsp; several items into a single notification model or to attach a notification to<br />&nbsp; the cache region or cache segment (similar to a table or database<br />&nbsp; notification in the database world).</p>
</td>
<td valign="top" width="58">
<p align="center"><b>2</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>This feature can be useful in<br />&nbsp; scenarios where the cache is used as a pub/sub storage mechanism. But only<br />&nbsp; use this feature if the amount of clients is below 25 as there is a<br />&nbsp; performance penalty when using a notification system that can drag the update<br />&nbsp; times to unacceptable levels. If this model is required consider using cache<br />&nbsp; regions to minimize the overhead.</p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Custom notifications</p>
</td>
<td valign="top" width="451">
<p>Some caches provide a custom<br />&nbsp; notification extensibility model where system developers can create custom<br />&nbsp; notifications. This capability is usually implemented with a transparent<br />&nbsp; proxy from the notification system to the external plug-in (usually<br />&nbsp; implemented through inversion of control).</p>
</td>
<td valign="top" width="58">
<p align="center"><b>3</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>This capability will allow<br />&nbsp; developers to create their own notifications, this can involve external<br />&nbsp; systems. It is recommended to use async operations when notifying if the<br />&nbsp; cache uses the notifications model synchronically.</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities - Data Integrity</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-data-integrity</link>
      <pubDate>Sat, 03 Dec 2011 07:17:00 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/12/03/distributed-cache-capabilities-data-integrity/</guid>
      <description><![CDATA[Data expiration contains elements that make the cache allocation more efficient. The feature removes...]]></description>
      <content:encoded><![CDATA[<p>Data expiration contains elements that make the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.</p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Transaction support</p>
</td>
<td valign="top" width="451">
<p>A cache that supports transactions will allow grouping actions and committing them at the same time. Usually the cache can be enlisted as a distributed transaction under technologies like DTC. The cache will provide BEGIN, COMMIT and ROLLBACK functionality. Usually this feature is implemented using a separate transaction log.</p>
</td>
<td valign="top" width="58">
<p align="center"><b>3</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>The designer needs to consider if<br />&nbsp; this feature is needed, first, this feature is usually quite expensive, not<br />&nbsp; only on cache price tag but in performance. A designer should ask itself if a<br />&nbsp; database will not be able to provide the functionality that requires, as they<br />&nbsp; are transaction aware by design. If this feature is needed then try to avoid<br />&nbsp; deadlock situations as cache servers are not very good detecting them when<br />&nbsp; working in a very high distributed environment. We will recommend to analyze<br />&nbsp; other options and if a transactional cache is needed do perform exhaustive<br />&nbsp; testing.</p>
</td>
</tr>
<tr>
<td valign="top" width="638" colspan="3"></td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Multi-threading support</p>
</td>
<td valign="top" width="451">
<p>A multi thread environment aware<br />&nbsp; cache will allow separate threads to access the same cache item without<br />&nbsp; entering in race conditions while writing the item. Usually this capability<br />&nbsp; implements an internal lock over the item only (note that some caches may use<br />&nbsp; a table or region lock). Certain caches will also offer a capability to lock<br />&nbsp; several cache items at the same time.</p>
</td>
<td valign="top" width="58">
<p align="center"><b>5</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>This is simple, if a cache does<br />&nbsp; not provide proper multithreading support just don&rsquo;t buy it. Is within the<br />&nbsp; nature of distributed caches to support multiple connections accessing the<br />&nbsp; same information and if it does not support it then is not worth the<br />&nbsp; investment.</p>
</td>
</tr>
<tr>
<td valign="top" width="638" colspan="3"></td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>External dependencies</p>
</td>
<td valign="top" width="451">
<p>This capability allows cache<br />&nbsp; items to have external cache items dependencies, for example files. This<br />&nbsp; allows cache items to be either backed up or extended through a connection to<br />&nbsp; an external source. Quick recovery caches use this technique to recover from<br />&nbsp; faults.</p>
</td>
<td valign="top" width="58">
<p align="center"><b>2</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>This feature has been very useful<br />&nbsp; in the past, when 32 bits processes where running out memory pretty fast.<br />&nbsp; Designers have implemented a secondary storage, for example a file to<br />&nbsp; optimize the cache (using the cache as an index entry).&nbsp; With the new 64 bits cache the memory can<br />&nbsp; be plentiful but still consider this feature if you need to allocate large<br />&nbsp; amount of data in the cache (for example photos, maps, videos).</p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>SQL Server synchronization</p>
</td>
<td valign="top" width="451">
<p>A cache may allow a cache item,<br />&nbsp; cache region or table to be synchronized with a SQL Server database. This<br />&nbsp; will mirror each entry to a database entry. This back up repository is<br />&nbsp; usually accessed when a fault occurs or when a database item has changed and<br />&nbsp; the cache needs to reflect the changes (instead of evicting the item).</p>
</td>
<td valign="top" width="58">
<p align="center"><b>3</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>Losing a cache can be a big event<br />&nbsp; in certain scenarios or if the system may be accessed by other systems that<br />&nbsp; are not cache aware then a SQL dependency can be very helpful. We have seem<br />&nbsp; dozen of scenarios where the data is replicated from a another location, i.e.<br />&nbsp; a call center, and the data in the cache needs to be modified to stay<br />&nbsp; current. There is a performance implication but experience says that is a<br />&nbsp; very useful feature if those scenarios are considered.</p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Oracle Synchronization</p>
</td>
<td valign="top" width="451">
<p>A cache may allow a cache item,<br />&nbsp; cache region or table to be synchronized with an Oracle database. This will<br />&nbsp; mirror each entry to a database entry. This back up repository is usually<br />&nbsp; accessed when a fault occurs or when a database item has changed and the<br />&nbsp; cache needs to reflect the changes (instead of evicting the item).</p>
</td>
<td valign="top" width="58">
<p align="center"><b>3</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>Same guideline as above, in this<br />&nbsp; case if your data is going to be supported by Oracle.</p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Capability</b></p>
</td>
<td valign="top" width="451">
<p><b>Description</b></p>
</td>
<td valign="top" width="58">
<p><b>Weight</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p>Other DB synchronization</p>
</td>
<td valign="top" width="451">
<p>A cache may allow a cache item,<br />&nbsp; cache region or table to be synchronized with other vendors database (i.e.<br />&nbsp; Informix, Ingress, DB2 no name a few). This will mirror each entry to a<br />&nbsp; database entry. This back up repository is usually accessed when a fault<br />&nbsp; occurs or when a database item has changed and the cache needs to reflect the<br />&nbsp; changes (instead of evicting the item).</p>
</td>
<td valign="top" width="58">
<p align="center"><b>3</b></p>
</td>
</tr>
<tr>
<td valign="top" width="130">
<p><b>Guideline</b></p>
</td>
<td valign="top" width="508" colspan="2">
<p>Same guideline as the SQL<br />&nbsp; dependency but in this case consider caches with heterogeneous data models if<br />&nbsp; you have scenarios with multiple database technologies utilization, therefore<br />&nbsp; use it only when needed. Having individual gets on the hand will require a<br />&nbsp; separate call per retrieval, affecting the network and cache performance.</p>
</td>
</tr>
</tbody>
</table>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities - Data Expiration</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-data-expiration</link>
      <pubDate>Mon, 21 Feb 2011 07:34:12 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/02/21/distributed-cache-capabilities-data-expiration/</guid>
      <description><![CDATA[Data expiration contains elements that makes the cache allocation more efficient. The feature...]]></description>
      <content:encoded><![CDATA[<p>Data expiration contains elements that makes the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated. The capabilities list looks like this:</p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="163" valign="top" style="padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; border: windowtext 1pt solid;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Absolute time expiration<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">If the cache item has a property to include a specific date and time where the item will expire this will be removed automatically from the cache once the time has arrived. The cache will probably have a secondary monitor that scans each entry and in certain occasions, if the cache is advanced enough will just check the timespan dictionary.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This feature is quite important, when the client stores an item on the cache it will probably know for how long the object is current. Having some kind of expiration will allow architects and developers to keep a healthy cache. If this feature is not present the system can run easily into resource starvation, as the cache will grow without control. <o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Idle time expiration<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">When a cache has this capability the cache item will be removed from the cache if the item hasn&rsquo;t been accessed in a period of time (usually configurable). This model implements a frequently access cache architecture.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This feature is useful when you have a very dynamic cache, for example when you want to store only the most accessed objects. The cache will only keep alive objects that are really shared and frequently used. In certain scenarios this type of behavior is tracked as it can give the developer information about access patterns.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Cache item evictions<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">Cache evictions occur when the cache removes item arbitrarily, this can happen when the cache is under memory pressure or other conditions that affect the storage stability. A cache with this feature will usually provide the developers the possibility of configuring the eviction rules.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">If the cache does not have expiration at least it should have evictions. If neither feature is present is probably a bad cache choice therefore pay special attention to the combination of these features. A growing cache will hit a resource limit sooner or later, with 64bits the memory barrier has been moved quite far but you may still have certain exponential search time (annexed tables, relationships or any other index that cannot be hashed) that will consume CPU. Some kind of eviction is usually recommended.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 11;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 12;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 13;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Priority evictions<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">If the cache implements priority eviction rules it will allow developers to assign a priority (usually a range) to an item, this will protect the item from arbitrary evictions when the cache is under pressure. Note that a priority eviction will not prevent the cache to remove the item if necessary, it will just follow an order.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 14;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">If the cache has an eviction model and the data that the system needs to store is critical then an eviction rule like priority can help the designers to have some kind of protection against random evictions. Consider this feature if the system really has different cache items priority mode.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 15;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 16;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 17;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">LRU/LFU eviction<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This is an advanced mode of eviction that combines the standard eviction with idle time expiration. The eviction can be configured using the least recently used (LRU) or least frequently used (LFU) in order to prevent useful cache items from being evicted from the cache.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 18;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This is a more sophisticated eviction model and should be used if eviction is needed as it will keep hot cache items loaded when under pressure. Note that this logic will usually incur into performance penalties as the cache needs to track the history of the cache item.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 19;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 20;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 21;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Eviction policy<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This feature is similar to the priority eviction but with an extra feature, marking cache items as &ldquo;protected&rdquo;. This means that the cache will not remove under any circumstance the stored item, even if is under pressure.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 22; mso-yfti-lastrow: yes;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">Eviction protection surplus the priority eviction, this feature is even better for critical data storage. The cache can guarantee that the item will not be evicted.<o:p></o:p></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><o:p><span style="font-family: Calibri; font-size: small;">&nbsp;<br /></span></o:p>The average weight of this category is 2.67</p>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities - Data Organization</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-data-organization</link>
      <pubDate>Mon, 21 Feb 2011 07:27:50 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/02/21/distributed-cache-capabilities-data-organization/</guid>
      <description><![CDATA[Here is the third installment, this time focusing on the data...]]></description>
      <content:encoded><![CDATA[<p>Here is the third installment, this time focusing on the data organization.</p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="163" valign="top" style="padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; border: windowtext 1pt solid;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Cache Groups<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This capability allows caches to be partitioned in groups; this allows cache subdivision that can help the designers to organize the cache allocations across multiple devices. Some caches allows further grouping using group trees.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">5<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">Cache groups can be utilized as &ldquo;tables&rdquo;. They are very useful to organize the data allocated in the caches. For example, you can use a cache for &ldquo;Customers&rdquo; and another one for &ldquo;Orders&rdquo;. This type of organization is essential for large caches and should be only ignored if the scenario stores a single type of object (i.e. web session information).<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Tags support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">Supporting tags allows designers to add metadata to the cache items, this feature is usually implemented in conjunction with query trees in order to filter cache items. A cache can allow one or multiple tags per item.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">3<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">Adding metadata to a cache item is an interesting feature when the scenario requires rich retrieval models. This is required when you need to use query languages to retrieve items. We recommend limiting the size of the tags and favoring blittable values as they will be indexed. There is an extra hop when reading and writing that can affect performance therefore only used when required.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Cache items dependencies<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">The cache items can be completely independent or in certain technologies can have a dependency on other ones. This is not a relational model as described on other capability but is rather a content dependency that is usually implemented by eviction or notification policies. A cache item with a dependency will relay on the other item to provide the information, it can not leave with the other part.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">1<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">The cache item dependency can be very useful when an item is not useful without the other one, for example if you split the orders across single entries, all of them can be related to create an &ldquo;order&rdquo;. Do not confuse with relationship models as this applies to completeness rather than relation. This is a faster alternative to relationship models and are usually very fast , as they use tail reference to locate the items.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 11;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 12;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 13;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Close-to-caller capability<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This feature allows cache to organize data based on taxonomies that can be allocated on different physical repositories. This means that a cache can store certain items on devices near the consumers that need that specific category of items. This allows fast access when distributing across large networks.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 14;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">A cache with the ability to configure where the items can be stored (physically) can be an interesting feature if you use multiple geographies. For example if you use session state objects you may want them closer to the web servers but maybe information about products or customer details may be located in a different server array. In certain cache technologies, this will be implemented using local caches on each client. This capability is useful only on large cache deployments. <o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 15;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 16;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 17;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Cache items versioning<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">This capability allows cache items to be versioned, this means that the cache will store historic information about an item. The cache item is commonly decorated with a version number that increases on each update. There is usually a retention policy and the longer the policy the more space required.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 18; mso-yfti-lastrow: yes;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="color: black; font-size: 9pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><span style="font-family: Calibri;">There are only few scenarios where this capability is useful, one of them is when you need to keep the change history of an item, maybe when storing documents or other type of complex types that requires rollback capabilities. Another scenario is when you need to generate a comparison to analyze what has changed from one version to the other one. Keep in mind that this model has an exponential growth model and can consume a lot of memory, therefore make sure that you run 64bits version of the cache service before using this capability.<o:p></o:p></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><o:p><span style="font-size: small;">
<p><span style="font-size: x-small;">The average weight for this category is 2.60</span></p>
</span></o:p></p>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities - Data Manipulation</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-data-manipulation</link>
      <pubDate>Tue, 01 Feb 2011 06:50:57 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/02/01/distributed-cache-capabilities-data-manipulation/</guid>
      <description><![CDATA[This is the second entry, data manipulation. Each one of them have a description and a generic...]]></description>
      <content:encoded><![CDATA[<p>This is the second entry, data manipulation. Each one of them have a description and a generic guideline based on the experience of our implementations. I have added a weight, may look arbitrary but is based on the average importance on our projects.</p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="163" valign="top" style="padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; border: windowtext 1pt solid;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Atomic operations<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Usually implemented through Get/Set. Allows clients to read and write operations in a single and atomic operation preventing dirty reads/writes safety, without getting into race conditions under multi-threaded environments.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">5<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This feature is highly recommended, we would advise to avoid any cache that does not contain atomic operations as is a fundamental part of a multi connection environment. The only scenario where this can be acceptable is if you are not concern about dirty reads.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Multi Gets<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Multi Gets allows clients to retrieve multiple cache items within the same operation. The return type is usually an array of objects rather than complex types (i.e List, Hashtables)<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">3<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If you are planning to retrieve multiple items at the same time then this is an interesting feature as reduces the network traffic as well as the thread utilization levels, but will increase the CPU utilization, therefore use it only when needed. Having individual gets on the hand will require a separate call per retrieval, affecting the network and cache performance.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Multi Writes<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Multiple writes allow clients to send multiple cache items to the cache system at the same time. The cache then will navigate through the items and update accordingly. During this operation, the order is usually not guaranteed.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">3<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Do not confuse this with bulk insertion; the idea is to use the same call to send an array of items. This can be useful on scenarios that require multiple cache entries. For example, this won&rsquo;t be required if you just store a single model per operation but very useful if you store the changes on the client and then update them at the same time once the full process has finished. This can help reducing the network traffic and thread utilization but usually requires extra CPU time and may produce queues.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 11;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 12;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 13;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">GetAndSet/SetAndGet operation<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">These operations are usually known as &ldquo;double-shooters&rdquo;, the cache receives a request to perform two operations at the same time (i.e increment and read result), usually involving a longer lock. These operations avoid race conditions on a multi-threaded environment.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 14;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If the cache allows different operations like increment, decrement or bitwise operations it can help to solve certain scenarios where you need to maintain unique values across all your client instances (i.e. the amount of clients connected). If the value is not shared across clients then is preferable to calculate first on the client and then send a standard &ldquo;set&rdquo; to the cache, as it can affect concurrency.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 15;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 16;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 17;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Relationship/Union capability<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This capability allows cache items to be related to other cache items or even cache groups. For example an item that contains an order may be related to other cache item that stores the customer information. This relationship is usually maintained in a different cache table and is subjective to multi-locks, as the items need to be queried from the relationship table rather than a hash entry.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 18;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Use this feature with care, the relationship model will emulate a relational database and only should be used if you have requirements to do so. The main reason is the extra hop that the items need to go through every time they are accessed. The relationship table will use a lock as well that can affect concurrency.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 19;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 20;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 21;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Ordering capability<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This capability offers the clients the ability to get results in a specific order, this also applies to writes. The items are usually adorned with a correlation token that will be used to process the items in a deterministic order.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">1<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 22;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This feature is usually interesting when you need to save items in a particular order. Having said that this can be easily emulated by the clients as they can send the items in a specific order if there is any relationship involved, on the reading side, you can order on the client using technologies like LINQ. We recommend that the cache items should be independent from each other and this feature should be avoided.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 23;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 24;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 25;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Async operations<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Asynchronic operations will disconnect the relationship between the client and the server. This allows client to fire a request and continue working rather than waiting for a response from the cache. This usually involves two modalities, &ldquo;fire and forget&rdquo; where the client does not receive any notification or an &ldquo;async notification&rdquo;, where the client will receive an event once the operation has been completed.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 26;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This feature is very useful if you are working on real time scenarios, where the fire and forget mode comes very handy. Caches should never be treated as the &ldquo;only&rdquo; source but rather a performance enhancement for the application therefore reading and writing from the cache helps but is not critical, this means that a fire and forget model works very well on those scenarios.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 27;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 28;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 29;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Bulk operations<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Bulk operations allow caches to load massive chunks of data at the same time (in certain cache technologies this also includes dumping the cache in a single operation).<span style="mso-spacerun: yes;">&nbsp; </span>Usually this supports fast cache recoveries from faults, when other media is used to back up the cache.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">3<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 30;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If you are treating the cache as critical then you will need a backup support, for example a file or a database. The bulk operations will allow you to &ldquo;fast-load&rdquo; your cache in a recovery event from the last good known state. This will also allow you to warm up the cache, making the cache more efficient.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 31;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 32;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 33;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Object Query Language support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Object query language (OQL) is a SQL style language that allows you to search cache items in a database similar fashion, using SELECT, FROM, WHERE you can filter your cache items before retrieving them.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 34;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">A query language can help you to quickly filter cache items when you need several items at the same time. This model can search usually on cache items tags or attributes. This feature is useful if you store items individually rather than grouped (i.e. if you store all the orders on different slots instead of storing an &ldquo;order&rdquo; object with all the orders embedded). Note that you may need to know the OQL language beforehand or have some SQL syntax skills.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 35;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 36;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 37;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">LINQ support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">LINQ is a Microsoft .NET technology that allows you to query objects based on a projection tree. This allows you to search cache items in a database similar fashion, using SELECT, FROM, JOIN, WHERE, ORDERBY you can filter your cache items before retrieving them.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 38;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">A query language can help you to quickly filter cache items when you need several items at the same time. This model can search usually on cache items tags or attributes and works very well with .NET solutions. This feature is useful if you store items individually rather than grouped (i.e. if you store all the orders on different slots instead of storing an &ldquo;order&rdquo; object with all the orders embedded). Note that you may need to know the LINQ language beforehand or have some SQL syntax skills.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 39;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 40;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 41;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Parallelism support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Parallelism algorithms will allow the cache to take the most from multiple CPU cores, this can make retrieval operations faster as the cache can schedule filters on different thread queues. In certain caches, this feature is also used during write operations, when multiple writes are allowed or bulk inserts are processed.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 42;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If the scenario involves queries (OQL, LINQ) or relationship retrievals then the parallelism capability becomes really important. As most servers will have more than one core this feature should be a must as will allow systems to scale up better. Note that it can also add complexity to the cache and as mentioned on the memory management this can be tricky for certain cache vendors unless they use proven frameworks like the PFX or OpenMP.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 43;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 44;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 45;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Streaming<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Streaming allows caches to send the cache items in chunks. This is usually available for large cache items that are not suitable for bulk transition (i.e. a video). The cache opens a channel with the client and sends the data in blocks, allowing other connections to process the requests without blocking the thread pool.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 46; mso-yfti-lastrow: yes;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This feature is only useful on specific scenarios where large data will be used, for example, music, videos or large images. The streaming will allow the client to receive data blocks that needs to be processed by the client. Only use streaming if you really have objects larger than 10Mb.<o:p></o:p></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><o:p><span style="font-family: Calibri; font-size: small;">The global weight for this category is 2.75</span></o:p></p>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities - Data Storage</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-data-storage</link>
      <pubDate>Mon, 31 Jan 2011 08:42:51 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/01/31/distributed-cache-capabilities-data-storage/</guid>
      <description><![CDATA[In this first installment we are going to share the data storage attribute and its capabilities....]]></description>
      <content:encoded><![CDATA[<p>In this first installment we are going to share the data storage attribute and its capabilities. Each one of them have a description and a generic guideline based on the experience of our implementations. I have added a weight, may look arbitrary but is based on the average importance on our projects.</p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="163" valign="top" style="padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; border: windowtext 1pt solid;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">.NET Types support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Does the cache support .NET types natively? Some caches may accept any type of data types but if they are not .NET aware they will incur in a performance penalty during the serialization process.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">5<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If your clients are going to be mainly .NET you must consider using a cache that supports .NET natively. Even if 50% of your clients use .NET we recommend to select a cache that can support it as the .NET transition is the most expensive if we compare it against native objects or java objects.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">.NET Session state support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Some caches have native support for web session states, they may provider also a native provider that you can link up to your web application, saving development time.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This is an extremely useful feature if the cache is going to be used as distributed state management storage as it can provide an API to reference in your project saving a lot of plumbing code. Distributing the session state will remove the dependency to load balancer affinity models for web applications.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">.NET View state support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Web pages view state can take extra processing time, some caches address this issue integrating a view state provider that handles, caches and distribute this raw types.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">1<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Although it can be useful in certain scenarios, this can be simulated with a standard string entry on the cache. Do not weight your selection decision on this factor as is a replaceable feature that won&rsquo;t require a lot of code.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 11;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 12;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 13;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Raw types (native)<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This capability provides support for raw types, usually binary arrays that can store any type of content. Some caches have limitations on the storage and will not allow this type of writing.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 14;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Consider native storage when you need to store heterogeneous data types, for example mixing .NET objects, Java objects, pictures, videos or circular arrays.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 15;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 16;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 17;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Java types support<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Some caches support native java objects, this will allow clients to access the objects without intermediate transformation, increasing the read/write performance.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">5<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 18;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If your clients are going to be mainly java then considering a cache with this capability can make a real difference. Java objects are very lightweight but there is still some processing involved when using a native storage rather than a java-aware one.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 19;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 20;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 21;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Maximum storage size<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Each cache item may have a maximum storage size, this can limit the type of information that can be stored on it. There is another aspect of maximum storage size and is the total cache size, usually related to the CPU bitness.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">4<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 22;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Some caches offer ultra-fast read/write capabilities, this is usually related to the size constrains. If you are expecting to store less than 1Mb per item then go for the fast option, as the allocation is very efficient,<span style="mso-spacerun: yes;">&nbsp; </span>but note that this type of cache is usually implementing a native storage, this can affect the performance if you use .NET/Java objects. On the other hand, if you need to store large objects make sure that the cache can support it.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 23;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 24;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 25;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Managed memory storage<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Usually caches that are written in .NET will use a managed heap to store the cache items. These objects will be governed by a garbage collection that can affect the total cache size.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 26;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">This can be a good capability if you are using .NET clients and .NET types, the garbage collection is designed to understand these objects and is very efficient doing so. If you are going to use other types of objects then the collector will use the pinning model, but relays on the cache to apply memory pressure to those objects (this can lead to fragmentation).<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 27;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 28;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 29;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Native memory storage<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Caches that are written using native code will use the default heap or the C runtime heap. The cache will manage its own memory and depends on its ability to properly avoid fragmentation.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">2<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 30;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">If your clients are going to be native or there is a scenario with mixed technologies this can improve performance, but keep in mind that the cache vendor has to manage its own memory, this usually requires different skills that some companies have not master. Using managed memory managers like the .NET or Java is a good alternative as both technologies are well mature in this area.<o:p></o:p></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 31;">
<td colspan="3" width="798" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 478.8pt; padding-right: 5.4pt; background: white; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><o:p><span style="font-family: Calibri;">&nbsp;</span></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 32;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Capability<o:p></o:p></span></span></b></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Description<o:p></o:p></span></span></b></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Weight<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 33;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Load balancing<o:p></o:p></span></span></p>
</td>
<td width="563" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 338pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Some caches will load balance the storage automatically between several cache instances, this is usually achieved using a balancer in conjunction with a router. When a request arrives the router will point to the right cache, where the data is located.<o:p></o:p></span></span></p>
</td>
<td width="72" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 43.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p align="center" class="MsoNormal" style="text-align: center; line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">3<o:p></o:p></span></span></b></p>
</td>
</tr>
<tr style="mso-yfti-irow: 34; mso-yfti-lastrow: yes;">
<td width="163" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 97.55pt; padding-right: 5.4pt; background: #f2f2f2; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Guideline<o:p></o:p></span></span></b></p>
</td>
<td colspan="2" width="635" valign="top" style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 381.25pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; mso-bidi-font-size: 11.0pt;"><span style="font-family: Calibri;">Load balancing technologies can be very good to reduce the cache load in certain scenarios, usually is implemented in conjunction with data partitioning, which can achieve similar results. If you are going to use a partitioning topology then this feature is not really important, only consider it if you are planning to use replication or mirrored topologies.<o:p></o:p></span></span></p>
</td>
</tr>
</tbody>
</table>
<p>The average weight for this category is 3.11</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Distributed Cache Capabilities guideline</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/distributed-cache-capabilities-guideline</link>
      <pubDate>Mon, 31 Jan 2011 07:50:00 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2011/01/31/distributed-cache-capabilities-guideline/</guid>
      <description><![CDATA[In this series, I am going to publish a series of guidelines that can be used when selecting a...]]></description>
      <content:encoded><![CDATA[<p>In this series, I am going to publish a series of guidelines that can be used when selecting a distributed cache technology. The series will be divided in the main caching attributes,&nbsp;each of them containing a list of capabilities.&nbsp;The main categories that I will present are the following ones:</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/01/31/distributed-cache-capabilities-data-storage.aspx">Data Storage</a>:</strong> This attribute compares the cache based on their storage capabilities, limitations and format supported. This item is beneficial to companies exploring specific scenarios where these caches may be useful.</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/02/01/distributed-cache-capabilities-data-manipulation.aspx">Data Manipulation</a>:</strong> This attribute describes the data manipulation operations available for each cache. The capabilities enlist different techniques that may be available for each solution that can be aligned with specific scenarios.</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/02/21/distributed-cache-capabilities-data-organization.aspx">Data Organization</a>:</strong> This attribute describes how the data can be organized inside the cache. Organizing data on different groups or nodes can improve the data taxonomy architecture, allowing allocation strategies that can not only improve the readability but the performance of the cache.</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/02/21/distributed-cache-capabilities-data-expiration.aspx">Data Expiration:</a> </strong>Data expiration contains elements that makes the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/12/03/distributed-cache-capabilities-data-integrity.aspx">Data Integrity</a>: </strong>Data expiration contains elements that make the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.</p>
<p><strong><a href="https://blogs.msdn.com/b/salvapatuel/archive/2011/12/03/distributed-cache-capabilities-notifications.aspx">Notifications</a>:</strong> A notificacion system allows the cache to interact with external applications. This attribute can be useful on scenarios where certain activities, for example workflows, need to know the state of an item.</p>
<p><strong>Cache Topology: </strong>The cache topology describes the way that a cache can be implemented across different processes. This attribute is useful in order to understand how the cache can be implemented within the system architecture and to calculate the cost associated to it.</p>
<p><strong>Security:</strong> Security can be a critical factor if the cache is shared across a mixed security platform. This attribute analyzes the security and privacy capabilities that the cache provides by default.</p>
<p><strong>Cache Integration:</strong> This attribute analyzes the different capabilities related to 3rd party integration. Integrating natively with other software or architecture can improve the cache performance and will reduce the risk of using custom adapters.</p>
<p><strong>Platforms and protocols:</strong> This attribute describes the cache platform supportabilty, native technologies used internally and the available protocols to access the data. This item should be considered in scenarios where you may have mixed environments.</p>
<p><strong>Cache Infrastructure: </strong>This area explores the different cache infrastructure deployment models. This section is usually analyzed by the infrastructure team in order to understand what kind of kit is necessary to run the distributed cache system.</p>
<p><strong>Management tools:</strong> Understading what is inside the cache is a useful feature when memory pressure appears on the distributed cache system. External management tools can help to diagnose what the cache is storing, offering online solutions that can reduce downtime.</p>
<p>All the items will be weighted based on importance, this guide can be used to build comparison matrices, we have done this exercise several times, specially comparing AppFabric Cache, NCache, ScaleOut and MemCached.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>.NET Hidden Gems - Memory fail points</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/net-hidden-gems-memory-fail-points</link>
      <pubDate>Tue, 20 Jul 2010 02:59:00 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2010/07/20/net-hidden-gems-memory-fail-points/</guid>
      <description><![CDATA[I am embarking in a series of mini post called .NET hidden gems, not necessarily new bits but...]]></description>
      <content:encoded><![CDATA[<p class="MsoNormal"><span style="font-size: small;"><span style="font-family: Calibri;">I am embarking in a series of mini post called .NET hidden gems, not necessarily new bits but usually unknown. They are dedicated to those small features and components that are not commonly used but can deliver interesting value in certain scenarios.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: small;"><span style="font-family: Calibri;">Today I am going to show you some functions that can help you to understand the memory state of your application when you need to store large objects.<br /></span></span><span style="font-size: small;"><span style="font-family: Calibri;">The first hidden gem is the MemoryFailPoint object, this can be accessed through the System.Runtime namespace. <br />The main function of it is validating that there is enough memory to perform an operation.<br /><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: Consolas; font-size: 9.5pt;">[<span style="color: #2b91af;">SecurityCritical</span>]<br /></span><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">public</span><span style="font-family: Consolas; font-size: 9.5pt;"> MemoryFailPoint(<span style="color: blue;">int</span> sizeInMegabytes);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: small;"><span style="font-family: Calibri;">It is very easy to use it, just create an instance when you need the memory:<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: Consolas; color: green; font-size: 9.5pt;">//<br /></span><span style="font-family: Consolas; color: green; font-size: 9.5pt;">// Do I have enough memory to run this method?<br /></span><span style="font-family: Consolas; color: green; font-size: 9.5pt;">//<br /></span><span style="font-family: Consolas; font-size: 9.5pt;">System.Runtime.<span style="color: #2b91af;">MemoryFailPoint</span> CheckForMemory = <span style="color: blue;">new</span> System.Runtime.<span style="color: #2b91af;">MemoryFailPoint</span>(1000);<br /><br /></span><span style="font-size: small;"><span style="font-family: Calibri;">Internally, it checks the global memory status of the process; if it does not have enough it will perform a full collection. <br />If it has enough it will execute a virtual allocation for that amount of bytes. This is really important as the MemoryFailPoint will <b style="mso-bidi-font-weight: normal;">reserve</b> the memory for your application and it won&rsquo;t be available for other resources until is freed using the Dispose() function, so use it with care.</span></span></p>
<p class="MsoNormal"><span style="font-size: small;"><span style="font-family: Calibri;"><o:p>If you want to know more about Memory managent in .NET please check my other post <a href="https://blogs.msdn.com/b/salvapatuel/archive/2009/06/10/background-and-foreground-gc-in-net-4.aspx">here</a></o:p></span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>How to configure WinDbg to run other versions of the .NET</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/how-to-configure-windbg-to-run-other-versions-of-the-net</link>
      <pubDate>Tue, 09 Mar 2010 00:39:00 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2010/03/09/how-to-configure-windbg-to-run-other-versions-of-the-net/</guid>
      <description><![CDATA[I usually receive a very common question when customers jump into the WinDbg adventure, and is...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">I usually receive a very common question when customers jump into the WinDbg adventure, and is related to the loading of SOS when the version of the .NET mismatches the version installed on their system.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">The scenario is quite common, you have a customer that is running another service pack or even some random hotfix on its machine, produces a memory dump and when you try to load it on your machine you will receive this message:<o:p></o:p></SPAN></P>
<P><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">&nbsp;</SPAN></I><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt">Unable to load image&nbsp; <BR>&nbsp; <BR>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll, Win32 error&nbsp;2&nbsp; &nbsp; <BR>*** WARNING: Unable to verify timestamp for mscorwks.dll&nbsp; &nbsp; <BR>*** ERROR: Module load completed but symbols could not be loaded for&nbsp;mscorwks.dll&nbsp; <BR>PDB symbol for mscorwks.dll not loaded&nbsp; &nbsp; <BR><BR>Failed to load data access DLL, 0x80004005&nbsp; &nbsp; <BR>Verify that <o:p></o:p></SPAN></I></P>
<P><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>1) you have a recent build of the debugger (6.2.14 or&nbsp; newer)&nbsp; <BR><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>2) the file mscordacwks.dll that matches your version of&nbsp; mscorwks.dll is&nbsp; &nbsp; <BR><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>in the version directory&nbsp; <BR><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>3) or, if you are debugging a dump file, verify that the&nbsp; file&nbsp; <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><BR><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>mscordacwks_&lt;arch&gt;_&lt;arch&gt;_&lt;version&gt;.dll is on your&nbsp; symbol path.&nbsp; <BR>&nbsp; <BR>4) you are debugging on the same architecture as the dump&nbsp; file.&nbsp; <BR></SPAN></I><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt">&nbsp; <BR></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">What is happening is that the mscordacwks.dll is not matching the one loaded on the image and SOS can not be loaded.<o:p></o:p></SPAN></P>
<P><U><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">How to solve the issue:<o:p></o:p></SPAN></U></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">1) You need to ask the customer or the person that sent you the memory dump the file mscordacwks.dll localted on &lt;Windows&gt;\Microsoft.Net\Framework\&lt;the .NET version (1.1, 2 or 4)&gt; from the machine where the mem dump was produced. Note: Remember that if the customer is running 3.0 or 3.5 is still version 2 of the CLR !</SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">2) Put that file on a separate folder (do not overwrite your one!)<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">3) Load the windbg and the memory dump<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">4) Go to File &gt;&gt; Symbol File Path<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">5) Add the folder where you copy the mscordacwks.dll file<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">6) Load sos.dll using the .load command<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">7) use !threads to see if you see the threads<o:p></o:p></SPAN></P>
<P><U><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">What to do if the above steps do not work<o:p></o:p></SPAN></U></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">The first one and probably the one that you are experiencing is that the sos is already using a different path and seems that is not using the new path. The reason is WinDbg will usually save the configuration for that memory dump, therefore it does not matter if you kill WinDbg and open it again, it will use the saved parameters. What we need to do here is to unload it and change the path. Load the dump again, and make sure you have done the steps above, then do:<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">1) .cordll -ve -u -l<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">2) You have unloaded the CLR and we are enabling the verbose mode<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">3) Change the CLR path using: .cordll -lp &lt;the path where you put the mscordacwks&gt;<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">4) load the SOS again<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">5) run !threads<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">There are certain scenarios where this will not work either, one can be the name of the mscordacwks.dll. Depending on the image, there may be a need to change the file name to the full version one (mscordacwks_&lt;arch&gt;_&lt;version&gt;.dll). But which one to use?<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">As you have enabled the verbose mode you should be able to see the full name of the mscordacwks.dll that is trying to locate, for example (mscordacwks_x86_x86_2.0.50727.3603.dll). Go back to your folder where you have put the mscordacwks.dll and rename it as indicated on the verbose output.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Repeat all the process above and it should work.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Now, if is still not working it seems that you are messing around with the steps or you have been trying a lot of things and everything is a mess. What I will recommend is the following steps to try a brand new process:<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">1) Close WinDBG <o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">2) Copy the memory dump to a new location<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">3) Open the memory dump<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">4) Make sure that you have the new mscordacwks.dll (with the new name) on the new folder (last step), change the symbol paths (first step) and try again. It should work.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">I hope this helps.<U><BR style="mso-special-character: line-break"><BR style="mso-special-character: line-break"><o:p></o:p></U></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>]]></content:encoded>
    </item>
    <item>
      <title>Accessing TFS 2010 from VS2008</title>
      <link>https://docs.microsoft.com/archive/blogs/salvapatuel/accessing-tfs-2010-from-vs2008</link>
      <pubDate>Fri, 24 Jul 2009 05:20:00 GMT</pubDate>
      <dc:creator><![CDATA[SalvaPatuel]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/salvapatuel/2009/07/24/accessing-tfs-2010-from-vs2008/</guid>
      <description><![CDATA[In order to access the new Team Foundation Server 2010 from your current Team Explorer 2008 you will...]]></description>
      <content:encoded><![CDATA[<P>In order to access the new Team Foundation Server 2010 from your current Team Explorer 2008 you will need to install the Visual Studio 2008 Service Pack 1. Several customers were complaining that even with the service pack installed they couldn't manage to connect.</P>
<P>The problem is the order of the installation. For many customers, the orders was:</P>
<P>1) Visual Studio SP1<BR>2) Team Explorer 2008</P>
<P>but if you have installed Team Explorer 2008 <U>after</U> the SP1 the changes are not in place. In order to sort out this just reinstall the SP1 and it will work.</P>]]></content:encoded>
    </item>
  </channel>
</rss>