PCon全球产品创新大会(北京站)来啦~了解最新日程 了解详情
写点什么

MySpace 解释他们是如何使用并发与协调运行时的

  • 2009 年 10 月 16 日
  • 本文字数:940 字

    阅读完需:约 3 分钟

CCR,即并发与协调运行时,一开始是.NET 机器人工具箱的一部分。由于许多公司在大量非机器人的项目中使用了CCR,MySpace 也在他们的项目中采用了这一框架。

CCR 使用消息传递机制来隔离应用程序的不同部分。在低层实现中,精细管理的线程和任务窃取队列(work-stealing queue)比传统的线程和锁少了很多开销。

MySpace 在它们的通信层使用 CCR,使用了基于原生 Socket 的自定义格式。每个服务器使用两个队列,第一个用作单向的消息,而第二个则用于处理那些需要立即得到回复的同步消息。每个服务器都可以调整分配给两种队列的线程数量。

他们的缓存集群构建在通信层之上,每台机器包含一个存储组件以及一个用于处理的组件集合。当一个单向消息达到时,它直接进入第三个 CCR 队列,然后再传递到存储组件以及订阅至特定消息类型的某个处理组件中。除了跳过“缓冲”队列以外,同步消息的处理方式与此类似。

MySpace 使用 CCR,是由于它提供了比传统线程池高得多的吞吐量。其中一个原因是.NET 线程池在确定保留多少线程方面有过大的开销。此外,线程之间的上下文切换也耗费了可观的时间。CCR 使用了为每个 CPU 分配单个线程的做法避免了很多此类问题。为了对线程有更多控制,MySpace 还扩展了 CCR,这样他们就可以在运行时动态改变分配给队列的线程数量了。

每个节点除了应对每秒进入的数千条消息之外,它也要处理对外的消息。为此他们使用了 CCR 的多重接受器和一些其他的模式,这样每次便可以使用“等待 100 个消息或 500 毫秒”的方式来对外批量发送数据了。据 MySpace 的说法,这种模式是移动大量数据的基础。

在采用 CCR 之前,MySpace 使用.NET 线程池或手动管理线程。他们声称在之前并不知道有其他线程管理的替代方式,直到有一天,他们在解决内部实现问题的时候碰巧遇上了类似的宣传用例,于是便开始使用 CCR 了。

目前,MySpace 在他们的 1200 台中间层服务器和 3000 台 Web 服务器上使用了 CCR。MySpace 经常会在他们的框架中自然地融入额外的东西,以至于许多开发人员并没有意识到其中的改变。

你可以在 Channel 9 中浏览 Erik Nelson 和 Akash Patel 对 MySpace 的采访。更多有关 CCR 的信息,请访问 CCR and DSS Toolkit 2008 R2

查看英文原文: MySpace Explains How They Use the Concurrency and Coordination Runtime

2009 年 10 月 16 日 23:111349
用户头像

发布了 157 篇内容, 共 46.1 次阅读, 收获喜欢 3 次。

关注

评论

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

绝了!你一直想要的数据库界的里程碑,Alibaba技术官内部私藏MySQL笔记

Java 程序员 后端

精雕细琢!阿里大师53天悉心打磨出来的MyBatis+设计模式架构指南

Java 程序员 后端

程序员面试时这样介绍自己的项目经验,成功率能达到98,华为od技术一面

Java 程序员 后端

算法基础之暴力递归到动态规划,java程序员面试算法宝典pdf猿媛之家

Java 程序员 后端

算法宝典最新分享:Alibaba+小米,redis笔记

Java 程序员 后端

线上环境大规模RocketMQ集群不停机优雅升级实践,面试字节跳动Java工程师该怎么准备

Java 程序员 后端

绝杀!3位阿里大牛发布这份800页MySQL性能优化法则笔记

Java 程序员 后端

程序员必知必会之——服务网格istio概念,springboot项目案例百度云

Java 程序员 后端

究竟是什么样的奇葩需求?威胁到程序员的头发,java高级特性编程及实战第三章

Java 程序员 后端

算法基础之递归,java核心技术卷

Java 程序员 后端

精通springcloud:服务发现,Eureka API,java技术上难以解决的问题

Java 程序员 后端

系统性能典型案例分析:高性能队列Disruptor,一文深入理解

Java 程序员 后端

终于等到了!十位Java架构师整理的“阿里P7,看完老板哭着让我留下来

Java 程序员 后端

程序员欣宸的文章分类汇总,javaee教程文档

Java 程序员 后端

算法入门 - 动态数组的实现(Java版本),分层架构图案例

Java 程序员 后端

[架构实战营]模块二作业:微信朋友圈高性能复杂度架构

Geek_99eefd

架构实战营

C++

IT蜗壳-Tango

10 月日更

精心备战30天,三天斩获阿里offer,揭秘面试流程及我的学习方向

Java 程序员 后端

精心整理全网最全Tomcat面试专题及答案(共19题,含答案解析

Java 程序员 后端

系统性能百倍提升典型案例分析:高性能队列Disruptor(1)

Java 程序员 后端

终于彻底搞清楚了 MySQL spin-lock 之一次CPU问题定位过程总结

Java 程序员 后端

立即可用的实战源码(springboot+redis+mybatis,java自学教程免费视频

Java 程序员 后端

类加载器深入剖析,2021最新华为Java校招面试题

Java 程序员 后端

程序员都应当知道的实用工具网站,Java400道面试题通关宝典助你进大厂

Java 程序员 后端

程序员是如何看待薪资被高估的?内容过于真实,java语言程序设计与数据结构进阶版

Java 程序员 后端

算法在哈啰顺风车中的实践应用,netty实战pdf

Java 程序员 后端

系统性能典型案例分析:高性能队列Disruptor,一文深入理解(1)

Java 程序员 后端

程序员就意味着高薪?解除35岁的忧虑,一条正确的职业生涯规划

Java 程序员 后端

系统性能百倍提升典型案例分析:高性能队列Disruptor,linux服务器架构师

Java 程序员 后端

程序员开发必备22个终端CLI工具也太香了(附下载地址!

Java 程序员 后端

终于彻底搞清楚了 MySQL spin-lock 之一次CPU问题定位过程总结(1)

Java 程序员 后端

TDSQL前沿技术进展和趋势——数据异常基础理论研究

TDSQL前沿技术进展和趋势——数据异常基础理论研究

MySpace解释他们是如何使用并发与协调运行时的-InfoQ