SQLite
dqlite 是一个 C library,实现了一个嵌入式的可复制SQL database engine,具有高可用和自动失效恢复的特性。
名称 “dqlite” 意味着 “distributed SQLite”,是 dqlite 扩展了 SQLite 而来。SQLite主要单机使用,而dqlite添加了 network protocol可以将多个应用实例链接为一个高可用的集群,而且不需要依赖其他的外部数据库。
使用dqlite的Kubernetes分发版包括MicroK8s和K3s。
主要特性
能力:
- 完全同步的 network 和 disk I/O
- Comprehensive test suite for correctness
- Benchmarked for memory footprint and network efficiency
- 持久化存储用于transaction logs
- 快速恢复,用于system restore
- 稳定的 Golang 客户端,文档包含 wire protocol 用于其它语言的实现。
支持 ARM, X86, POWER 和 IBM Z architectures
特性:
超低时延,C-Raft 最小化交易延迟。
- 移植性,C-Raft 和 dqlite 都用c语言编写,提供多平台支持。
- 开源,采用Apache 2.0 许可,最大的兼容性。
- 可用,Includes common CLI pattern for database initialization and voting member joins and departures.
- 快速失效回复,Minimal, tunable delay for failover with automatic leader election.
- 持续性,Disk-backed database with in-memory options and SQLite transactions.
- 设计特性,Asynchronous single-threaded implementation using libuv as event loop.
- 自定义的wire protocol,优化了SQLite primitives 和 data types.
- 数据复制,基于 Raft algorithm 和高效的 C-raft 实现。
项目地址
开源地址:https://dqlite.io/