微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

程序名称:hyflow-go

授权协议: GPL

操作系统: 跨平台

开发语言: Google Go

hyflow-go 介绍

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

其模板化的架构:
1. 事务层:基于commit-time事务认证,灵活支持传统数据库的MVCC( Multi-Version Concurrency Control )和
single-versioning。能用来提供串行化serializability 或EUS(Extended Update Serializability
),这些依赖于底层的顺序Order层。

2.顺序层Ordering Layer:一致性的协议是可插拔的,可选择偏序(partial order)协议,如 Alvin POB, M2paxos
E‑paxos;或者完整顺序协议如:Multi‑paxos 和 Raft。

3.通讯层:最底层是用来进行集群通信,背后使用 zeromq, nanomsg 或 mangos,乐观批处理用于在保持低延迟的同时增加吞吐量。

细节技术:
事务的偏序(Partial Ordering of Transactions)

通过跟踪事务之间的冲突,能够避免顺序(串行化serializing) 非冲突事务,这就增强了
并发
性,允许事务更快地提交。一些非串行化non-
serializable执行也是允许的。

多主Multi-Master

在Alvin POB 和
E-paxos协议中,每个节点负责协调本地的事务组织。对于客户端来说只需要一个来回即可,降低了延迟。这样,事务不必依赖一个全局的顺序领头者。

Fast Path

在不存在 并发竞争情况下, Alvin POB 和 E-paxos
能通过使用快速仲裁通过一个来回请求响应降低延迟,快速仲裁大于经典仲裁。

Go语言在编写 分布式系统的好处是:
快速原型:hyflow-go是一款研究软件,Go语言特别适合,它是高阶语言,有很低开销,编译速度快,自动内存管理和内置
并发
,所有这些让研究人员和开发人员能够更专注于研究他们试图解决的问题。这样就减少通过软件工程的依赖约束。

性能:Gi是快速的,能够编译到原生代码,提供的高级别的内存布局和分配的控制,内置的分析器允许开发人员检测和优化代码

易于部署:编译自足的静态二进制文件,没有虚拟机或其他依赖设置。

hyflow-go 官网

http://www.hyflow.org/hyflow-go/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐