QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

Velocity:微软的分布式内存缓存

2008 年 6 月 11 日

在过去几年里,从主流的 Java 应用到象 Erlang 这样的边缘语言,分布式内存缓存的应用相当流行。为了继续疯狂赶超开源世界中处于支配地位的技术,微软也引入了它的分布式缓存。

Velocity 是专门针对.NET 平台设计的分布式缓存。那些熟悉其他分布式内存缓存的人们会在其中发现许多相似的特性。它目前作为社区技术预览对外提供下载

Velocity 的客户端有两类。简单客户端只知晓一个单缓存服务器。如果在那个服务器上没有找到被请求的对象,那么缓存服务器会从合适的服务器上将它取来。路由客户端(Routing client)则对其了解更深一些。它们总是知道在哪里可以找到哪个特殊的对象,因此它可以直接查询缓存服务器。关于发送所有缓存位置数据给路由客户端(Routing client)对性能造成的影响,尚未有所定论。除了缓存服务器,两类客户端都支持一个本地缓存选项。对于过期数据,该选项仍然要求去检查服务器。但是在处理大量缓存对象时,它应该能减少网络流量。

关于并发性有两个选项。使用乐观并发,只有第一次更新才能成功,任何后续对现有过期对象的更新都将失败。使用悲观锁,一个锁句柄将会被返回。在锁释放或超时之前,任何获得锁的尝试都将失败。获得锁失败操作是一个非阻塞操作。

通过设置过期日期或每当内存压力过大时,对象可以从缓存中显式被移除。后一种方法,被称为驱逐(eviction),使用最近最少使用的算法来处理。

除了一个关键字,对象还可能有一组与之关联的标签。Velocity 提供了检索一个或全部与一个标签列表相匹配的对象的方法。

尽管支持 ASP.NET 的会话模型,但是那只是微软众多设想中的一个。 S Muralidhar 写道:

我们对 ASP.NET 的支持只是整个.NET 平台蓝图中的一部分。剩下的是确保我们不只把焦点单单放在 ASP.NET 应用上。作为例子,我们计划与普通.NET 应用(如 Windows 服务)或那些不涉及 ASP.NET 的 IIS 应用集成。

现在让我们看看即将到来的功能。目前的 CTP 版特性支持向外扩展(scale-out)、本地缓存,以及 ASP.Net SessionState 与许多其他应用的集成。我们有大量的工作项,它们有望在随后的 CTP 和 RTM 版中实现,包括:支持可用性、缓存复制、通知和更好地管理支持等。

我们已经从很多开发者那里听到对于推式通知(Push-based notification)的需求。这当然是我们非常关心的领域。尽管目前的 CTP 版还不支持它,但是这个需求有望在我们即将发布的版本中得到满足。在目前这个过渡时期,如果你使用 Velocity 的本地缓存,我们提供了一些绕过它的 API(如 GetIfVersionMismatch())来处理本地缓存中潜在的陈旧 / 过期对象。(你需要使用 Get() 和 GetIfVersionMismatch() 方法组合来得到正确的行为。)

对更高级技术的支持亦在计划中。 Anil Nori 补充道:

由于应用开始将缓存用于数据访问,我也相信,他们会要求更丰富的数据服务,如查询、事务、分析、同步等。例如,我相信.NET 有可能会要求在分布式缓存上使用 LINQ 查询,就像它们查询后端 SQL Server 数据库一样。我们预计“Velocity”会成为一个全面的分布式缓存平台。

查看英文原文 Velocity: Microsoft’s Distributed In-Memory Cache

2008 年 6 月 11 日 05:083536
用户头像

发布了 255 篇内容, 共 46.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Flink 自定义Avro序列化(Source/Sink)到kafka中

大数据老哥

大数据 flink hadoop

学创业,读毛选 Jan 9, 2021

王泰

28天写作 读毛选,学创业

RocketMQ学习笔记

大刘

RocketMQ MQ 消息队列

SafePoint 与 Stop The World 全解(基于OpenJDK 11版本)

AI乔治

Java 架构 jdk JVM

第2周总结-架构中的设计模式

潘涛

架构师训练营 4 期

自下而上的问题清单

将军-技术演讲教练

28天写作

我能加入写作训练营,一切都因为...

李忠良

个人成长 驱动力量 28天写作

三只猫

架构师训练营大作业(一)

曾彪彪

「架构师训练营第 1 期」

28天带你玩转Kubernetes--第一天(课程介绍)

Java全栈封神

Kubernetes 云原生 k8s入门 28天写作 k8s教程

架构师训练营第 1 期 - 大作业1

Anyou Liu

架构师训练营第 1 期

大作业一

fmouse

架构师训练营第 1 期

架构师训练营大作业(二)

曾彪彪

「架构师训练营第 1 期」

一致性Hash算法

andy

第2周课后练习-OOD的五大原则

潘涛

架构师训练营 4 期

我们为什么要学习Springboot?

武哥聊编程

Java springboot SpringBoot 2 28天写作

小心!你可能搞了个假的头脑风暴!

Justin

团队协作 28天写作 头脑风暴 群体迷思 创造性思维

在 win 10 上安装 Elasticsearch 7.10.1

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

kill -9 导致 kafka 重启失败的惨痛经历!

AI乔治

Java kafka 架构

生产环境全链路压测建设历程 24:FAQ 5、6负载均衡、如何不影响正常业务?

数列科技杨德华

28天写作

视频号发展简史&第一天数据 | 视频号28天(02)

赵新龙

28天写作

解读《Java开发手册(泰山版)》- 会当凌绝顶,一览众山小

xcbeyond

Java Java开发手册 28天写作

CSS10 - 盒子模型&常用无序列表样式

桃夭十一里

html/css

关系中的密码:麻烦

熊斌

个人成长 28天写作 亲密关系

区块链挖矿系统APP软件开发

开發I852946OIIO

系统开发

期末大作业(一)

TheSRE

单向链表合并实战

andy

区块链的前世今生(1)

抗哥

记一次JVM OOM 实战优化

AI乔治

Java 架构 JVM OOM

HDFS SHELL详解(1)

罗小龙

hadoop 28天写作 hdfs shell

序言 基层管理者技能修炼的九把刀

一笑

管理 28天写作

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

Velocity:微软的分布式内存缓存-InfoQ