
Dynamo中的向量时钟用一个(nodes,counter)对表示。其中nodes表示节点, counter是一个计数器,初始为0,节点每发生一次事件就将计数器加1。首先Sx对某个对象进行一次写操作,产生一个对象版本Dl([Sx,l]),接着Sx再次操作,由于Sx是第二次进行操作,所以counter值更新为2,产生第二个版本D2([Sx,2]);之后,Sy和Sz同时对该对象进行写操作,Sy将自身的信息加入向量时钟产生了新的版本D3([Sx,2], [Sy,l]), Sz同样产生了新的版本信息D4([Sx,2], [Sz,l]),这时系统中就有了两个版本的对象,但是系统不会自行选择,它会将这两个版本同时保存,等待客户端解决冲突。最后Sx再次对对象进行操作,这时它会同时获得两个数据版本,用户根据版本的信息,重新计算或得一个新的对象记做D5([Sx,2], [S3U],[Sz,l]),并将新的对象保存到系统中。需要注意的是,向量时钟的数量是有限制的,当超过限制时需根据时间戳(Timestamp)删除最开始的一个。这种解决一致性问题的方式对Amazon的购物网站来说非常有用。例如购物车模型,用户可以通过它查询曾经浏览的各种商品,而不是仅仅査询最终购买的商品。