当前位置: 首页 > 软件库 > 大数据 > 数据存储 >

Curve

分布式存储系统
授权协议 Apache 2.0
开发语言 C/C++
所属分类 大数据、 数据存储
软件类型 开源软件
地区 国产
投 递 者 杨超
操作系统 跨平台
开源组织 网易
适用人群 未知
 软件概览

CURVE 是网易开源的高性能、高可用、高可靠分布式存储系统,具有非常良好的扩展性。基于该存储底座可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。CURVE 的设计开发始终围绕三个理念:一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造顶级的存储产品;二是秉持 “Simple Can be harder than complex”,了解问题本质情况下选择最简单的方案解决问题;三是拥抱开源,在充分调研的前提下使用优秀的开源项目组件,避免造轮子。

当前网易基于 CURVE 已经实现了高性能块存储系统,支持快照克隆和恢复 ,支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式, 在网易内部作为高性能云盘使用。

特性

1. 高性能

高性能是 CURVE 的一大特点,也是项目团队创建 CURVE 项目的初衷。RPC 层面 CURVE 采用了高性能和低延迟并且已开源的 brpc;在一致性层面选择了基于 quorum 机制并且开源的 braft,从协议层面来说 quorum 机制在延迟方面天生优于多副本强一致的方式。实现上 CURVE 对 braft 快照的实现进行了优化,在状态机的实现上采用 chunkfilepool 的方式 ( 初始化集群的时候格式化出指定比例的空间用作 chunk ) 使得底层的写入放大为 0;此外CURVE 还在 chunk 上进行更细力度的地址空间 hash 以达到读写分离、减小 IO 碰撞等的效果,从而进一步提升 IO 性能。

2. 高可用

高可用是 CURVE 的另一大特点。MDS、ChunkServer 以及 SnapShotCloneServer 都支持多实例部署,部分实例异常不影响整个集群的可用性。

  • MDS

    MDS 是无状态的,推荐至少部署两个实例。通过 Etcd 进行选主。多个 MDS 实例通过 Etcd 进行选主,当单个实例失效时,可以秒级切换到另外一个实例。失效实例上正在处理的请求,Client 和 SnapShotCloneServer 都会对其进行重试,以达到不影响集群可用性的效果。

  • SnapShotCloneServer

    SnapShotCloneServer 与 MDS 类似, 也是通过 Etcd 进行选主,不同的是,它通过负载均衡对外提供服务。失效期间的请求失败重试都是幂等的,不影响任务的正确性以及集群的可用性。

  • ChunkServer

    ChunkServer 是一个集群,通过 Raft 协议保持数据一致性,并通过 MDS 做负载均衡。单个节点失效时,会影响到这个节点上存储的所有 Copyset。对于 Copyset 上的 Leader 节点,会中断服务,等待重新选举;对于Copyset 上的 follower 节点,服务不会受影响。当某个 Chunkserver 节点失效且在一段时间内无法恢复,MDS 会将其上的数据迁移到其他节点上。

  • 简介 在Flutter Animation动画开发之——最简单的动画入门这篇文章中我们介绍了最简单的动画开发流程 今天我们在该动画的基础上添加动画曲线,默认情况下动画是线性的,可以理解为变化是匀速的,设置动画曲线可以设置动画的变化速率,可以是加速的,也可以是减速的,或者是先加速后减速的,等等 动画曲线用的是CurvedAnimation类,用法如下, parent参数传入一个Animation对象

 相关资料
  • 一、介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。 二、HDFS 设计原理 2.1 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成: NameNode : 负责执行有关 文件系统命名空间 的操作,例如打开,

  • 本文向大家介绍Hadoop 分布式存储系统 HDFS的实例详解,包括了Hadoop 分布式存储系统 HDFS的实例详解的使用技巧和注意事项,需要的朋友参考一下 HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。 一、HDFS的优缺点 1.HDFS优点:   a.高容错性     .数据保存多个副本     .数据丢的失后自动恢复

  • 一面 11.1 分布式存储 阿里天池比赛,问了一些模块的优化 问存储项目 问TinyKV 项目 操作系统:cpu cache,false sharing,gdb C++:移动语义,std::map,rbtree和b+tree区别。 perf 观察程序性能 算法题:二叉树的路径和 二面 11.2 leader 面 开局先选方向:DB,分布式,操作系统,体系结构,计算机网络。选了分布式,狂问raft

  • 之前的秋招面经:深信服 Go 开发面经(已 offer) bg:专升本+ACM银牌+三个项目(一个毕设的KV分离LSM-Tree,一个6824的分布式KV,一个OJ) 某小厂,存储方向技术积累还不错,避免定位就不写具体名字了。自己也一直比较憧憬做 infra 吧,不想写 CRUD 业务,所以就投了。面试内容都是事后回忆,可能有遗漏或记错的 一面 50min 自我介绍 项目实现细节、设计考量、优化(

  • 问题内容: 我正在寻找Java分布式缓存解决方案。我们希望功能喜欢: 我们已经分析了Terracotta这样的框架,它似乎是缓存框架中我们想要的一切……但是,似乎需要一个中央缓存节点,这成为我们的单点故障。 除了推出我们自己的解决方案之外,还有其他想法吗? 问题答案: 我建议使用JBossCache或EhCache(使用分布式缓存侦听器)。我都用过,我都喜欢,它们都适合您的要求。

  • Web 应用程序可能需要为成百上千甚至更多的用户同时提供服务。如果你没有采取必要的措施,在这种负载下,你的网站可能会崩溃或变得没有响应。 假设在主页显示最后 10 条新闻,并且平均每分钟有上千名用户访问此页面。你可能为每个用户通过查询数据库来显示页面视图信息: SELECT TOP 10 Title, NewsDate, Subject, Body FROM News ORDER BY NewsD

  • 主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说

  • 全程一小时 1.关于项目询问…… 2.C++: 忘了有啥了,应该都是常见的 4.分布式: ACID是什么 CAP是什么 RAFT如是实现投票? 经典的超过半数投票…… Zookeeper如何避免脑裂? 答:采用2N+1个 replica。 反问:如果有一个宕机了就不能了吗? 答:不能,要么手动再宕机一个节点,要么加上一个replica。不然容易出问题 好像认可了我的答案…… 分布式系统中如果我向r