报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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:002914
用户头像

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

关注

评论

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

react源码分析:实现react时间分片

flyzz177

React

你用Go写过中间件吗?带你用Gin实现【用户角色权限管理中间件】

王中阳Go

golang MySQL 学习方法 高效学习 10月月更

如何掌握“看见数据”的魔力?

博文视点Broadview

js函数柯里化-面试手写版

helloworld1024fd

JavaScript

Kafka消费组/者协调器的介绍

石臻臻的杂货铺

Kafk 10月月更

Kafka消费者客户端心跳请求

石臻臻的杂货铺

Kafk 10月月更

华为云从入门到实战 | 云关系数据库备份、恢复及存储容灾服务

TiAmo

华为 华为云 云开发 10月月更

redis设计成单线程的原因是什么

芥末拌个饭吧

后端 redis 底层原理 10月月更

React源码分析(一)Fiber

goClient1992

React

Java基础(八)| 常用API与StringBuilder详解

timerring

Java API 10月月更

从源码角度看React-Hydrate原理

flyzz177

React

redis实现分布式锁(二)

zarmnosaj

10月月更

架构实战训练营模块 2 作业

Geek_b35d92

从0到1设计通用数据大屏搭建平台

vivo互联网技术

大数据 可视化 低代码平台 敏捷BI

react源码分析:深度理解React.Context

flyzz177

React

【一Go到底】第十七天---函数的递归调用

指剑

Go golang 10月月更

【LeetCode】可能的二分法Java题解

Albert

算法 LeetCode 10月月更

用PM2做Python进程管理也太好用了吧

芥末拌个饭吧

进程 pm2 10月月更

水果成篮问题

掘金安东尼

算法 10月月更

前端必会手写题总结

helloworld1024fd

JavaScript

redis实现分布式锁(一)

zarmnosaj

10月月更

React-Hooks源码深度解读

goClient1992

React

浙江特殊教育职业学院用上了福昕无障碍技术

科技热闻

你知道Redis是如何保持数据一致性吗

芥末拌个饭吧

后端 redis 底层原理 10月月更

关于马蹄链项目系统开发流程及技术方案分析

I8O28578624

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript

这几道const和iota的面试题你能做对吗?

王中阳Go

Go 面试题 const 10月月更 go基础

Go如何优雅的对时间进行格式化?

王中阳Go

Go golang 学习方法 golang 面试 10月月更

Java三大特性(二)—继承

共饮一杯无

Java 继承 10月月更

PriorityQueue 源码解析(三)

知识浅谈

Priority Queue 10月月更

长安链源码分析之网络模块 net-liquid(3)

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