Closed wanghenshui closed 2 years ago
RavenDB: Practical Considerations for ACID/MVCC Storage Engines (Oren Eini)
解决方法比较简单
单写,实现MVCC就靠COW就可以了,不阻塞
不写磁盘,磁盘太慢了。写buffer往下刷
WAL设计取舍
WAL优化点
写优化
感觉利用c# 的协程能力,把写抽象成任务,搞成batch,而不是直接死板的lock write commit
什么时候更新文件?
这种搞法,缓存的数据不能保证落地,丢最近的record是否可以接受?
其他场景
这个做个参考
rqlite: The Distributed Database Built on Raft and SQLite (Philip O'Toole)
其实主要工作就是如何把raft的接口用sqlite实现好,怎么抽象log entry
The TileDB Universal Database (Stavros Papadopoulos)
这个想法挺有意思,但是数组怎么抽象成具体的kv呢,感觉和parquet有点像,又有点不像
维度信息,快速
果然,两种形态 本质还是列存
如何文件描述
index
把一个数组的几个部分分别索引
整体貌似是api接口形式的,也提供了各种数据库的插件
这个存储的明显受益没说。抽象能力强,面向业务场景比较集中
Fluree - Cloud-Native Ledger Graph Database (Brian Platz)
直接把关系谓语都存了?????
????
各种index分别存,用btree组织。最终还是回到了btree
mysql 图版?
ApertureDB: Designing a Purpose-built System for Visual Data and Data Science (Vishakha Gupta)
用的新硬件 傲腾。没开源。部署在azure上
性能数据就不贴了。和neo4j比 没意思
看着工作量挺麻烦
计划
HTAP with Azure Cosmos DB: Hybrid Transaction & Analytical Processing (Hari Sudan S)
一个root维护,可能是b树什么的,然后底层数据用parquet存
写流程
具体事务怎么实现?完全没体