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

xuanbao • 1715 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
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) 非冲突事务,这就增强了[**并发**](http://www.jdon.com/concurrency.html)性,允许事务更快地提交。一些非串行化non-serializable执行也是允许的。 多主Multi-Master 在Alvin POB 和 E-Paxos协议中,每个节点负责协调本地的事务组织。对于客户端来说只需要一个来回即可,降低了延迟。这样,事务不必依赖一个全局的顺序领头者。 Fast Path 在不存在[**并发**](http://www.jdon.com/concurrency.html)竞争情况下, Alvin POB 和 E-Paxos 能通过使用快速仲裁通过一个来回请求响应降低延迟,快速仲裁大于经典仲裁。 Go语言在编写[**分布式**](http://www.jdon.com/DistributedSystems.html)系统的好处是: 快速原型:hyflow-go是一款研究软件,Go语言特别适合,它是高阶语言,有很低开销,编译速度快,自动内存管理和内置[**并发**](http://www.jdon.com/concurrency.html),所有这些让研究人员和开发人员能够更专注于研究他们试图解决的问题。这样就减少通过软件工程的依赖约束。 高性能:Gi是快速的,能够编译到原生代码,提供的高级别的内存布局和分配的控制,内置的分析器允许开发人员检测和优化代码。 易于部署:编译自足的静态二进制文件,没有虚拟机或其他依赖设置。
授权协议:
GPL
开发语言:
Google Go 查看源码»
操作系统:
跨平台
1715 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传