Share via


Announcing CTP2 of Microsoft project code name "Velocity"

Today we are announcing CTP2 of Microsoft Project Code Name Velocity. Please download the CTP2 bits here. This entry will highlight what’s new with CTP2 and a follow-up request for feedback on what you would like to see in the product as we finalize on V1.

 

What’s New with CTP2?

 

CTP2 includes several new enhancements including High Availability, Performance improvements, PowerShell integration, Additional Configuration Store options and native 64 bit support.

  1. High Availability: Starting in CTP2, "Velocity" supports continuous availability of cached data by storing copies of that data on separate cache hosts. By using high availability enabled on a multi-server cluster, your application can retrieve its cached data even if a cache server fails. Because the high availability feature is managed by the cache cluster, no code changes in your application are required to take advantage of it.  
     
  2. Performance and Stress Enhancements: In CTP2 we spent substantial effort on improving the Latency and Thruput of the system as well as the stress and uptime requirements of the distributed cache. The success of a caching product is defined inherently by its performance and stress capabilities and we will continue on enhancing our exit goals as we move towards V1 of the product.
     
  3. PowerShell Integration: PowerShell is now the exclusive management tool for "Velocity." With more than 130 standard command line tools, this new administration-focused scripting language helps IT professionals achieve more control and productivity. In addition to the standard command line tools that come with PowerShell, "Velocity" provides additional commands for managing your distributed cache environment.
     
  4. New Configuration Options: "Velocity" now offers many options for specifying and storing the configuration details used by the cache cluster and client application. Cache-based applications have the option of specifying configuration information programmatically or using an application configuration file. You now have two additional options available for storing cluster details. In addition to XML, cluster configuration settings can also be stored in a SQL Server Compact data file or a SQL Server database.  You can choose the option that best meets  the needs of your application and IT infrastructure.
     
  5. 64-Bit Support: There is now a 64-bit version of the "Velocity" cache service for x64-based computers. Due to memory limitations in 32-bit Windows operating systems, each 32-bit "Velocity" process can only support 2GB of memory. But with 64-bit "Velocity" on an x64-based computer, each process can use almost all available memory for caching data.
     

Roadmap to V1

 

We have heard your feedback from CTP1 and incorporated many of the requests into CTP2. We have a very short list of new features which we are looking at including for V1 and focus exclusively on performance, stress exit criteria and product fundamentals such as stability, reliability and diagnosability  of the product. The tentative list of features for V1 include

  1. Notifications
  2. Read Thru/Write Behind Callbacks on CacheItem miss/update
  3. Secure Access to Named Caches
  4. Cache Get/Put APIs with multiple objects
  5. Stability, Reliability and Diagnosability Improvements

We would like you to try it and give us feedback. We are waiting to hear from you.

 

Seshu Adunuthula
Development Manager

Comments

  • Anonymous
    October 27, 2008
    Though I like this project for a number of reasons, there has been very less logging or usage on this

  • Anonymous
    October 27, 2008
    Hey, awesome stuff. We just started a new project that needs a distributed memory system; so hopefully we'll have feedback soon.

  • Anonymous
    October 27, 2008
    After looking at the API, my only question is: Could there be typed caches? Like GetCache<SomeType>("name")? Then we could get strongly typed items out, instead of having casts. I suppose it's easy enough to add ourselves on top.

  • Anonymous
    October 27, 2008
    Oh, and one more thing. It'd be great to have a "AtomicUpdate" method, similar to the Interlocked methods. So we could do "Cache.Atomic.Increment("totalhits")" rather than having to lock and so on? It'd be even cooler if we could remote an Expression<T> to do an atomic update: Expression<Func<int,int>> updater = i => i + 10; Cache.Atomic.Update("someint", updater); (I know there's lots of limitations on this kind of approach.)

  • Anonymous
    October 28, 2008
    The comment has been removed

  • Anonymous
    October 28, 2008
    I am right now in Microsoft Project “Velocity” talk in PDC2008 by Muralidhar Krishnaprasad. Microsoft

  • Anonymous
    November 03, 2008
    Great news that Velocity has announced its CTP2 and plans for V1. It was about time that Microsoft jumped into the distributed caching foray. Hopefully more and more people would become aware of the benefits that a distributed cache brings. That is good for the overall industry and would help others to spread the word around. Cheers, Paul Jones.

  • Anonymous
    November 11, 2008
    The comment has been removed

  • Anonymous
    November 18, 2008
    Congratulations on shipping CTP2. We are considering Velocity for a project that will ship late next year (2009).  Please can you tell me (here or on email) if Velocity will be a free or paid product, the ship date, and if there is currently a go-live license (just in case we bring the date forward ;) Thx.

  • Anonymous
    November 20, 2008
    Hello, I've noticed one disadvantage in CTP2: It is not possible to host your cache service in-proc and make it more tightly integrated with custom application server. Let me explain: Currently you can communicate with cache servers only via TCP/IP. It is ok, but what if I would like to host cache server in my application and communicate with it in-process. It's ok that cache server still need to use TCP/IP to coordinate their work, but having each such server in-proc would increase performance in number of scenarios. Why cache client/cache server communication is not done over WCF with ability to system adminstrators to configure protocol etc.? I believe it is well-tuned over TCP/IP but in the same time you could well-tune it over WCF (for instance provide custom message format to avoid SOAP overhead)?

  • Anonymous
    December 25, 2008
    One feature that I would  make velocity even better is transactions support.

  • Anonymous
    December 31, 2008
    Hi, guys! Getting exception when trying to Remove() non-existing item from cache. Don't think it this is common behaviour. It's better to have bool Remove() method. Also, Cache["non-existing-item"] = null throws the same error, which is bad for me. Thanks in advance and Happy New Year! :) EXCEPTION text: System.Data.Caching.CacheException : ErrorCode<ERRCA0008>:Cache::Remove : Key referred to does not exist. Create objects based on a key to fix the error.

  • Anonymous
    January 19, 2009
    Do you have any roadmap? I'd like to use it in production system this year, but cannot start planning without roadmap. Thank you.

  • Anonymous
    March 09, 2009
    I agree with foldip above. I would love to use this on my production system but can only do so with V1. What are the tentative time-lines ? Thank You

  • Anonymous
    March 19, 2009
    Here is a collection random notes and links for Velocity. &#160; Release Schedule: CTP1: Released. CTP2