Engula 云原生存储引擎开源项目

我要开发同款
白开水不加糖2021年09月01日
155阅读

技术信息

行业分类
云计算
开源地址
https://gitee.com/mirrors/engula
授权协议
Apache-2.0

作品详情

Egula是一款全新的存储引擎,旨在帮助工程师们更加从容地构建可靠、高性价比的数据库。设计目标如下:

云原生,把存储引擎的计算、缓存、日志和文件等组件分离,使得各个组件能够按需使用云上的弹性资源

智能化,根据业务负载对底层的存储结构进行自我优化

可扩展,提供灵活的API 让用户更加方便地实现自己的业务逻辑

平台中立,支持灵活的部署方式,在物理机、私有云和公有云环境都能很好的运行

Egula是用于下一代数据基础架构的云原生存储引擎。旨在以最低的成本在云平台上提供可靠和高性能的服务。云平台提供可以按需配置的弹性资源,这为重新构建存储引擎以利用它提供了广泛的机会。为了实现这一目标,Egula从头开始​​设计,以充分利用这些平台上的弹性资源。

Egula将经典存储引擎的组件拆分为单一功能单元。例如,有些单元负责数据存储,有些单元负责命令执行。每个单元都是一个轻量级的容器,运行在一个节点上,并在该节点上拥有一定数量的资源。节点由运行平台提供,构成统一的资源池为单元提供服务。也就是说,Egula可以看作是一个整体提供存储服务的单元编排系统。

Egula的设计原则如下:

首先使其简单可靠,然后使其具有成本效益和高性能。使其足够智能,只需最少的操作和配置。避免平台未内置的外部依赖项。

目前 Egula还处于非常早期的阶段;可查看路线图以了解更多详情。

usestd::syc::Arc;useegula::{Database,FileSystem,JobRutime,LocalFileSystem,LocalJobRutime,LocalJoural,LocalStorage,Optios,StorageOptios,};#[tokio::mai]asycfmai()->Result<(),Box<dystd::error::Error>>{letoptios=Optios{memtable_size:1024,};letstorage_optios=StorageOptios::default();letdirame="/tmp/egula";letfs=LocalFileSystem::ew(dirame)?;letfs:Arc<Box<dyFileSystem>>=Arc::ew(Box::ew(fs));letjob=LocalJobRutime::ew(fs.cloe());letjob:Arc<Box<dyJobRutime>>=Arc::ew(Box::ew(job));letstorage=LocalStorage::ew(storage_optios,fs,job)?;letjoural=LocalJoural::ew(dirame,false)?;letdb=Database::ew(optios,Box::ew(joural),Box::ew(storage)).await;forii0..1024u64{letv=i.to_be_bytes().to_vec();db.put(v.cloe(),v.cloe()).await?;letgot=db.get(&v).await?;assert_eq!(got,Some(v.cloe()));}Ok(())}

功能介绍

Engula 是一款全新的存储引擎,旨在帮助工程师们更加从容地构建可靠、高性价比的数据库。设计目标如下: 云原生,把存储引擎的计算、缓存、日志和文件等组件分离,使得各个组件能够按需使用云上的弹性...

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

评论