<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Microsoft Project Code Named &amp;quot;Velocity&amp;quot; - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx</link><description>Yesterday, we announced the first CTP of Microsoft Project Code Named “Velocity”. This post is a follow-up to clear up a couple of points that we’ve seen in forums. First, the usage scenarios. Velocity is intended to provide distributed caching (in memory)</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Thoughts for the Velocity Team &amp;laquo; Tales from a Trading Desk</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8572269</link><pubDate>Wed, 04 Jun 2008 01:40:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572269</guid><dc:creator>Thoughts for the Velocity Team &amp;laquo; Tales from a Trading Desk</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://mdavey.wordpress.com/2008/06/03/thoughts-for-the-velocity-team/"&gt;http://mdavey.wordpress.com/2008/06/03/thoughts-for-the-velocity-team/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Microsoft Project Code Named "Velocity" - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8572391</link><pubDate>Wed, 04 Jun 2008 03:11:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572391</guid><dc:creator>sdonovan_uk</dc:creator><description>&lt;p&gt;Firstly, congratulations on the CTP. &amp;nbsp;We had a chat with some folks in Redmond about this last year and it's very proactive. &amp;nbsp;:-) &amp;nbsp;The API is simple, yet appears powerful and promising. &amp;nbsp;I can imagine that the clustered approach is somewhat a challenge.&lt;/p&gt;
&lt;p&gt;To add to the previous comments (I'm also in the financial derivatives IT business):&lt;/p&gt;
&lt;p&gt;- When using a grid, caches are useful. &amp;nbsp;But, a LOT of legacy pricing models are native C++. &amp;nbsp;You should consider a unmanaged C++ API version of the cache-client.&lt;/p&gt;
&lt;p&gt;- Yes, **please** implement PUSH notifications. &amp;nbsp;We can envisgage using a cache as a messaging-system in it's own right, so it's a hard requirement (unless we getting into tedious polling). &amp;nbsp;Obviously, need to examine latency, concurrent updates, etc.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; . . . . with PUSH, can we have a Tag-based filter?&lt;/p&gt;
&lt;p&gt;When PUSHing, a cache-entry would probably be (also) tagged with a Sequence #, or a TimeStamp. &amp;nbsp;That would queried against.&lt;/p&gt;
&lt;p&gt;API specific: &lt;/p&gt;
&lt;p&gt;- CreateRegion(..). &amp;nbsp;If you create an existing region, it exceptions with the generic CacheException. &amp;nbsp;Wouldn't it be better to have an additional call to check to region existance? &amp;nbsp;Or, is the preferred approach to check the errcode on the Exception?&lt;/p&gt;
&lt;p&gt;- CacheItemVersion; there's no public/get/property to get the Version #. &amp;nbsp;That would be useful.&lt;/p&gt;
&lt;p&gt;- Tags (performance); the fact that it has a queryable interface is fantastically useful. &amp;nbsp;But, what's practical performance like? &amp;nbsp;If I have 10,000s to 100,000s (across different regions) of cache entries, each with 20-30 tags, what happens?&lt;/p&gt;
&lt;p&gt;- Tags (vs. Keys). &amp;nbsp;In our case, the CacheItem's Key would be built up of subkeys (e.g. HEDGE/HEDGE1/TRADE001). &amp;nbsp;Effectively each part of the key is really, also, a Tag. &amp;nbsp;It would seem too confusing to make them interchangeable, but please bear this in mind.&lt;/p&gt;
&lt;p&gt;- Have you thought about security implications? &amp;nbsp;As it stands, you're assuming that the cache-servers are all behind a firewall -- that's fair. &amp;nbsp;But, it could be considered unsafe to allow any access, to any data.&lt;/p&gt;
&lt;p&gt;- Perhaps I missed it, I didn't see any notes on the cache distribution policy. &amp;nbsp;Are all cached keys/objects sent to all cache servers? &amp;nbsp;If so, the cache-process looks Win32, isn't that restriction? &amp;nbsp;How will you handle this? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sean&lt;/p&gt;
</description></item><item><title>re: Microsoft Project Code Named "Velocity" - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8572412</link><pubDate>Wed, 04 Jun 2008 03:20:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572412</guid><dc:creator>joewood</dc:creator><description>&lt;p&gt;Like many other comments:&lt;/p&gt;
&lt;p&gt;Push distribution support. &amp;nbsp;Something scalable like a PGM (NACK) based solution would be ideal - that downgrades to unicast if the network doesn't support multicast.&lt;/p&gt;
&lt;p&gt;Full integration with astoria and the Entity framework's interfaces for CUD (i.e. IUpdatable etc)&lt;/p&gt;
&lt;p&gt;When you have push support make the protocol open so that it can be consumed on the client side for Rich clients based on a server executed live query. &lt;/p&gt;
&lt;p&gt;Use cases - other than traditional web session state:&lt;/p&gt;
&lt;p&gt;Useful for aggregation of real-time data. &amp;nbsp;Could be market data, monitoring metrics (think aggregated WMI/PerfMon metrics).&lt;/p&gt;
&lt;p&gt;Avoid read/write conflicts in high through-put transactional systems. &amp;nbsp;Read/write contention can be better managed using a cached version of a data store - as long as provision is made for some propagation delays in the app logic.&lt;/p&gt;
&lt;p&gt;Useful for increasing capacity of transaction systems. &amp;nbsp;A disperate distributed cache can reduce the risk of failure and the need to persist to storage for each transaction. &amp;nbsp;This reduces exposure to failure without the need to commit to disk on each transaction.&lt;/p&gt;
</description></item><item><title>Interesting Finds: 2008.06.04</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8572429</link><pubDate>Wed, 04 Jun 2008 03:32:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572429</guid><dc:creator>gOODiDEA.NET</dc:creator><description>&lt;p&gt;Web Facebook Open Platform 25 Excellent Ajax Techniques and Examples Profiling your AJAX Applications&lt;/p&gt;
</description></item><item><title>re: Microsoft Project Code Named "Velocity" - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8575076</link><pubDate>Thu, 05 Jun 2008 15:05:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8575076</guid><dc:creator>velocityteam</dc:creator><description>&lt;p&gt;Thanks for the feedback, Sean. Some responses&lt;/p&gt;
&lt;p&gt;Unmanaged client access to Velocity: Yes, this is definitely something we're considering&lt;/p&gt;
&lt;p&gt;Notifications: we're still in the design phase for this. And we know that this is a fairly tricky problem to solve. What we're trying to build is a set of simple building blocks, that can then be composed in many interesting ways. We'll have more updates on this soon&lt;/p&gt;
&lt;p&gt;API questions&lt;/p&gt;
&lt;p&gt;Adding an accessor for version: Sounds pretty reasonable. We'll look at adding this to future versions&lt;/p&gt;
&lt;p&gt;CreateRegion: I tend to favor the current model (gives you an &amp;quot;atomic&amp;quot; create-or-error mechanism); Would having a more specific exception help ?&lt;/p&gt;
&lt;p&gt;Tags performance: Currently tag-search is restricted to a &amp;quot;region&amp;quot; (which must reside in its entirety on a single node). That allows us to bound the processing time for a tag-search. We're looking at cross-region/cross-node tag searches, but like you say, this gets pretty expensive pretty soon&lt;/p&gt;
&lt;p&gt;Tags vs Keys: I look at tags as alternate keys (partial keys) for a cached item&lt;/p&gt;
&lt;p&gt;Security: We're looking into how we can have better support&lt;/p&gt;
&lt;p&gt;Distribution policy: In the current CTP, we support only a &amp;quot;partitioned&amp;quot; cache (ie) each node contains only a (disjoint) subset of the overall data. In other words, for each cached object, there is a single node that &amp;quot;owns&amp;quot; the object. We maintain a partition map that allows to identify what objects (more specifically, what keys) live on what nodes, and this controls the distribution policy&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;S Muralidhar (MSFT)&lt;/p&gt;
&lt;p&gt;Architect&lt;/p&gt;
</description></item><item><title>re: Microsoft Project Code Named "Velocity" - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8575085</link><pubDate>Thu, 05 Jun 2008 15:09:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8575085</guid><dc:creator>velocityteam</dc:creator><description>&lt;p&gt;Thanks for the feedback, Joe. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; Push distribution support. &amp;nbsp;Something scalable like a PGM &lt;/p&gt;
&lt;p&gt;We're still in the design phase for this functionality, and we'll definitely take this into account.&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; Full integration with astoria and the Entity framework's &lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; interfaces for CUD (i.e. IUpdatable etc)&lt;/p&gt;
&lt;p&gt;Can you share some more information on how you'd expect to use these together?&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; When you have push support make the protocol open so that it &amp;gt;&amp;gt; can be consumed on the client side for Rich clients based on a &amp;gt;&amp;gt; server executed live query.&lt;/p&gt;
&lt;p&gt;Agreed. We'll keep this in mind as we design this capability. &lt;/p&gt;
&lt;p&gt;Thanks for the suggestions on the other use cases. We've been thinking on very similar lines, and all of these are ideal scenarios for a caching solution (especially for applications that can tolerate a bit of staleness)&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;S Muralidhar (MSFT)&lt;/p&gt;
&lt;p&gt;Architect &lt;/p&gt;
</description></item><item><title>(转)Velocity：微软的分布式内存缓存</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8602812</link><pubDate>Mon, 16 Jun 2008 06:22:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8602812</guid><dc:creator>gby630</dc:creator><description>&lt;p&gt;作者JonathanAllen译者胡键发布于2008年6月11日上午5时8分 社区&lt;/p&gt;
&lt;p&gt;Architecture,&lt;/p&gt;
&lt;p&gt;.NET,&lt;/p&gt;
&lt;p&gt;SOA&lt;/p&gt;
&lt;p&gt;主题&lt;/p&gt;
&lt;p&gt;.NET框架,&lt;/p&gt;
&lt;p&gt;企业架构&lt;/p&gt;
&lt;p&gt;标...&lt;/p&gt;
</description></item><item><title>re: Microsoft Project Code Named "Velocity" - Followup</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#8608346</link><pubDate>Tue, 17 Jun 2008 05:09:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8608346</guid><dc:creator>pkellner</dc:creator><description>&lt;p&gt;Is the CTP posted someplace? &amp;nbsp;where? &amp;nbsp;How about the current api doc?&lt;/p&gt;
</description></item><item><title>Velocity：微软的分布式内存缓存</title><link>http://blogs.msdn.com/velocity/archive/2008/06/03/microsoft-project-code-named-velocity-followup.aspx#9151890</link><pubDate>Fri, 28 Nov 2008 17:52:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9151890</guid><dc:creator>HeroBeast</dc:creator><description>&lt;p&gt;在过去几年里，从主流的Java应用到象Erlang这样的边缘语言，分布式内存缓存的应用相当流行。为了继续疯狂赶超开源世界中处于支配地位的技术，微软也引入了它的分布式缓存。Velocity是专门针...&lt;/p&gt;
</description></item></channel></rss>