Skip to content

Xpecya/tkvdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Transactional Key-Value Database(tkvdb)

传统的数据库实际上已经不符合今天互联网公司的需求
痛点在于,sql语句每次请求都要解析,编译,执行
即便今天数据库软件已经通过缓存等手段缓解了这个问题,但依然没有从根上处理完全
不管怎么样,sql语句这种解释性语言的性能都不可能和编译型语言相比拟
此外,存储过程等功能实际上对于互联网公司而言是很鸡肋的存在
这部分功能是可以去掉的
对于互联网公司来说,传统数据库更接近于,带有事务,能够回滚的key-value数据库
那么,我们是不是可以做一个,高性能的,不使用sql的,带有事务管理的,key-value数据库呢?
本项目,就此诞生了

本项目可以通过tkvdb-client远程连接,也可以作为嵌入式数据库直接用在你的java项目中
java版本要求1.8+
api的设置会参考redis等key-value数据库
io流采用java的nio处理,所以不追求最短单次请求时间,而追求最高并发量
虽然有事务管理,但数据会尽可能的存储在内存中,以确保最高的性能
具体而言,只有事务日志是一定要持久化到硬盘上的
剩下的东西,都可以放在内存里
如果内存装不下了,会持久化到硬盘
当然,这样会影响性能
项目的内存占用是可以配置的,希望使用者尽可能的多给他一点内存
如果有闲时,会将内存中的数据持久化到硬盘,以节约系统重启耗时
但运行时的查询性能始终是项目最优先考虑的事情

事务的隔离级别和可见性等概念将参考MySQL等RDBMS
不同点在于,本项目默认为Read-Uncommited
一切性能优先
如果需要更高的隔离级别,可以在配置文件中自行配置

About

带有事务管理的key-value数据库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages