写点什么

Cosmos DB:全球分布式数据库

  • 2017-11-13
  • 本文字数:964 字

    阅读完需:约 3 分钟

今天是 PASS 2017 峰会的第二日,上午首个主题演讲是 Microsoft Cosmos DB 组产品经理 Rimma Nehme 对 Azure Cosmos DB 的介绍。Nehme 以丰富的信息量和快速的表达,介绍了 Microsoft 设计和构建 Cosmos DB 所用的方法。

在开始介绍 Cosmos DB 之前,Nehme 探讨了一些影响设计团队考虑的市场趋势。据 Nehme 介绍,全世界 90% 的数据都是在近两年间创造的。从 2010 起算的 10 年期间,全世界的数据量有望增长 50 到 100 倍。如果将适合该趋势的需求与计算应该接近数据的理念相结合,那么传统的“俗世”数据库从技术上并不适于应对这种复杂的局面。

“佛罗伦萨计划”是 Microsoft 为应对这种趋势而提出的一个解决方案,它是由 Dharma Shukla 启动的。选择佛罗伦萨为项目名称的背景是,Shukla 在该城市度假时提交了项目的首个代码。从更宽泛的意义上看,佛罗伦萨是欧洲文艺复兴开始的中心,这符合当今计算机世界对数据的需求将会爆发这一预测。

此后,“佛罗伦萨计划”演变为 Azure Cosmos DB 产品。项目开始时的目标取决于 Bing、Xbox Live 等微软内部客户的需求。至 2010 年,项目的需求发展为:

  1. 全球分布的一站式解决方案;
  2. 全球范围内 99% 的低延迟保证;
  3. 区域和全球范围内的高可用性保证;
  4. 确保一致性;
  5. 全球范围内通量和存储的弹性扩展,并可随时按需提供服务;
  6. 全面 SLA(可用性、延迟、通量、一致性);
  7. 低运维代价;
  8. 迭代和查询,无需关心具体的模式和索引管理;
  9. 提供一系列的可选数据模型和 API。

简而言之,Cosmos DB 团队的任务是在确定如何构建全球分布式云数据库的同时,也满足 Microsoft 内部客户的需求。Cosmos DB 的成功使得其成为 Azure 内部的“首环”(Ring 0)服务,即一旦有新的 Azure 地理区域建立,Cosmos DB 就是该区域内首批提供的服务之一。从开发人员的角度看,Cosmos 主要使用 C++ 语言编写。

Azure Cosmos DB 提供了五种一致性模型,分别是:强一致性(Strong)、受限无状态一致性(Bounded-stateless)、会话一致性(Session)、前缀一致性(Consistent Prefix)和最终一致性。其中最广泛使用的是会话一致性,它的使用远远领先于第二位的受限无状态一致性。

Nehme 的主题演讲的节奏很快,提供了丰富的信息。想要了解 Cosmos DB 的更多技术细节,可以查看 Dharma Shukla 在今天春季撰写的一篇文章

查看英文原文: Cosmos DB - A Globally Distributed Database

2017-11-13 18:003215
用户头像

发布了 391 篇内容, 共 155.4 次阅读, 收获喜欢 257 次。

关注

评论

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

现成矿机挖矿软件系统APP开发案例

系统开发

有些软件,听着听着就没了...

艾小仙

互联网

网络攻防: 爬虫的钳形攻势

杨东冬

大数据 安全攻防 网络安全 爬虫 安全

不愧是Github上疯传的腾讯Java全栈进阶笔记!总结的太全啥都有!

Java架构之路

Java 程序员 架构 面试 编程语言

week8-conclusion

J

使用 JSX 建立 Markup 组件风格

三钻

大前端 组件化

C2C交易系统APP开发|C2C交易软件开发

系统开发

区块链交易所系统开发|区块链交易所软件APP开发

系统开发

基因编辑食品,能否端上我们的餐桌?

脑极体

为什么越南不会成为世界工厂?

JiangX

供应链 工业 28天写作 制造

2021年-iOS面试进阶资料总结(备战年后)

iOSer

学习 面试 iOS Developer iOS 架构RxSwift

爱了爱了!阿里爆款Spring进阶宝典,涵盖其所有技术栈(源码+实战彻底玩转Spring框架)

Java架构之路

Java 程序员 架构 面试 编程语言

python自学 第三章 python语言基础之保留字、标识符与内置函数

WEB前端修行日志

Python 编码格式

python自学 第四章 python语言基础之变量

WEB前端修行日志

Python 编码格式

Android面试总结(一)

我就感觉到快

写在开课前

5x

Spring Boot 中的全局异常处理

武哥聊编程

Java springboot SpringBoot 2 异常处理 28天写作

突破瓶颈,“iOS开发”,跳槽面试必备题(针对年后面试者)

Geek_24a3d9

面试 简历 ios开发

python自学 第二章 python语言基础之语法特点(注释、代码缩进、编码规范)

WEB前端修行日志

Python 编码格式

编程语言学习心得 (完全版) -- 不要害怕遗忘和混淆

蔡超

程序员 个人成长 编程语言 Go 语言

Lambda 和 Stream API

大海

Java Lambda Stream<T>

阿里首推的“SpringBoot+Vue全栈项目”有多牛X?

Java架构之路

Java 程序员 架构 面试 编程语言

线上问题排查学习总结

原来不悔

Java Linux

做事情的三条边

石云升

28天写作 基线 极限

RocketMQ解析

石刻掌纹

产品经理训练营笔记-认识产品经理(上)

.nil?

一款dubbo服务可视化调试工具

程序员架构进阶

dubbo 工具 RPC 服务化 28天写作

如何实现CentOS服务器的扩容??

冰河

Linux centos 扩容 服务器

Java虚拟机内存模型

xcbeyond

Java JVM Java虚拟机 28天写作

是什么可以在Github上标星85.4K,揭秘阿里Springboot项目笔记!

996小迁

Java 架构 面试 springboot

「架构师训练营 4 期」 第三周 - 001

凯迪

Cosmos DB:全球分布式数据库_.NET_Jeff Martin_InfoQ精选文章