在去年10月分,MS推出了Velocity CTP2,在2009年6月将会推出V1版。作为MS的新产品有哪些新的特性呢?
如果有的同行比较关心Data Cache的话,可以来个横向的对比,NCache , Coherence,Memcache...
High Availability[高可靠性]
Performance Improvements 【性能提高】
PowerShell Integration 【集成PowerShell】
New Configuration Options [多种配置选择]
64-Bit Support【64位的支持】
在这里我想介绍的是CTP2做了什么来支持高可靠性,性能的提高这两项,以及velocity的Data Storage , Concurency Model。
高可靠性[How to work]

其实就是在于一个Object在Cluster里面的Storage有Master和Slave而已,所以安全的系数增加了而已。Crash任何一台Node,不影响数据的丢失,很想Tangosol的Backup=1的形式,我想在发布的时候还有一些改进。
性能的提高
增加了两个东西,一个是Routing Client,sample Client和Local cache的使用。
Routing Client是一个MS提供的新特性,就是在Client向Cluster取得Cache的Instance的时候,可以将该Cache的Object Index一并得到,典型的先苦后甜式,如果Client向Cluster取具体的Object的时候,用地址直接就可以到指定的NODE的MEM拿数据。
Sample Client和Routing相反,只是得到该Cache的Instance,不做任何操作。
谈到这两种Client,就不得不谈谈Local Cache了,这个就是一个Client 的Local Data Cache,如果在Local找不到,才会到Cluster去查询数据。
How to work

Data Storage
MS Velocity提到了Cache ,Region , Tag
我们知道Velocity是Distributed Data Cache , 所以每个Cache可以在任何的Node的MEM里面。
一个Cache可以有多个Region,但是一个Region只能在一个Cache Node里面,这就是弊端啊,晕!
一个Region可以有多个Tag , 这个Tag就是我们熟悉的索引。Tangosol也有,但是叫Index,呵呵,CreateIndex...
Data Concurency Models [并发模式]
1.乐观方式,也就是令牌式,不多讲,大家比较熟悉,先到先得,没得的失败. 这个要自己在代码里面利用Cache对象里面有方法得到Object Version,就是令牌。
2.悲观方式 , 要Update一个对象,来个Lock , Update完了后,Unlock.
展望:
和Tangosol还是有很大的差距,希望能够得到MS的大力支持.