#容错 #分布式数据库 #分布式系统 #应用 #响应式 #去中心化 #因果

nightly unbase

Unbase旨在成为一个因果的、无协调的分布式数据持久化和应用框架。它本质上是反应式的、容错的和去中心化的。

2个版本

使用旧的Rust 2015

0.1.1 2017年8月19日
0.1.0 2017年4月21日
0.0.2 2018年1月17日
0.0.0 2017年3月13日

#1283数据库接口

Apache-2.0

250KB
4.5K SLoC

Build Status Gitter

什么是Unbase?

Unbase是一个关于分布式数据库/应用框架的概念,其本质上是反应式的、容错的和去中心化的。它试图解决传统范式的一些非常具体的不足;创建一个超越设备、地理、编程语言和当前关于“数据库”构成的正统观念的分布式架构。它试图模糊应用/数据库和客户端/服务器之间的界限。

我们认为,对于许多用例,数据(或计算数据)不应分配给任何特定的存储位置(如“碎片化”系统中的情况),而应存储在其来源附近,并存储在其消费者附近。数据不应“基于”任何地方,因此得名Unbase。

Unbase目前正在积极开发中。

设计目标概述

有关更多详细信息,请参阅设计目标

  • 在不协调/等待的情况下提供尽可能强大的一致性保证
  • 通过关注数据局部性(地球/城市/内存总线/处理器核心)来大幅减少操作延迟
  • 对等网络以确保在网络分区期间持续运行2
  • 健壮的类型系统
  • 可调的持久性保证
  • 降低与托管基础设施及其规划相关的成本。
  • 适用于客户端和服务器应用的通用、最小化库3
  • 高效推送通知的分布式内容过滤发布/订阅
  • 提供注册和执行触发器的功能,以允许反应式但松散耦合

一致性模型

Unbase试图实现一个特定的因果一致性模型,我们称之为“传染性知识”。有关更多详细信息,请参阅一致性模型

1:当数据存储局部性由一个未能考虑数据起源或观测空间点的算法确定时,请求者必须等待更长时间才能检索。我们可以将光锥{:target="define"}视为我们上界的良好近似。
2:使用“分区”术语用于对话理解。分区实际上并不是一个事物
3:我们认为“客户端”和“服务器”之间除了计算/存储/网络容量和政策外,不应有差异。

依赖

~4.5MB
~99K SLoC