hyflow-go Go 开发的高一致性分布存储开源项目

我要开发同款
匿名用户2015年07月28日
31阅读
所属分类Google Go、服务器软件、分布式应用/网格
授权协议GPL

作品详情

hyflow-go是一款可进行地理复制、主内存main-memory的高一致性数据存储,其最大特点是将低延时和高事务完美统一。

其模板化的架构:1.事务层:基于commit-time事务认证,灵活支持传统数据库的MVCC(Multi-VersionConcurrencyControl)和single-versioning。能用来提供串行化serializability或EUS(ExtendedUpdateSerializability),这些依赖于底层的顺序Order层。2.顺序层OrderingLayer:一致性的协议是可插拔的,可选择偏序(partialorder)协议,如AlvinPOB,M2Paxos或E‑Paxos;或者完整顺序协议如:Multi‑Paxos和Raft。3.通讯层:最底层是用来进行集群通信,背后使用zeromq,nanomsg或mangos,乐观批处理用于在保持低延迟的同时增加吞吐量。细节技术:事务的偏序(PartialOrderingofTransactions)通过跟踪事务之间的冲突,能够避免顺序(串行化serializing)非冲突事务,这就增强了并发性,允许事务更快地提交。一些非串行化non-serializable执行也是允许的。多主Multi-Master在AlvinPOB和E-Paxos协议中,每个节点负责协调本地的事务组织。对于客户端来说只需要一个来回即可,降低了延迟。这样,事务不必依赖一个全局的顺序领头者。FastPath在不存在并发竞争情况下,AlvinPOB和E-Paxos能通过使用快速仲裁通过一个来回请求响应降低延迟,快速仲裁大于经典仲裁。Go语言在编写分布式系统的好处是:快速原型:hyflow-go是一款研究软件,Go语言特别适合,它是高阶语言,有很低开销,编译速度快,自动内存管理和内置并发,所有这些让研究人员和开发人员能够更专注于研究他们试图解决的问题。这样就减少通过软件工程的依赖约束。高性能:Gi是快速的,能够编译到原生代码,提供的高级别的内存布局和分配的控制,内置的分析器允许开发人员检测和优化代码。易于部署:编译自足的静态二进制文件,没有虚拟机或其他依赖设置。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论