STSdb,最强纯C#开源NoSQL和虚拟文件系统
2013-05-25 11:41
246 查看
回顾
几个月前写了一篇文章,关于 C#写的NoSQL开源项目/系统(系列),看过该文章的同学,估计会对.NET能实现高效的NoSQL是有信心的。几个月过去了,有了新进展。STSdb是什么
再来说明一下STSdb是什么:STSdb是C#写的开源嵌入式数据库和虚拟文件系统,支持实时索引,性能是同类产品的几倍到几十倍,访问官方网站。特性
支持几十亿级别的数据存取支持TB级别文件大小
实时索引
内置压缩
内置序列化
支持稀疏分散的文件(byte[])
为什么?
数据库的共同点
每个数据库都有一个共同点,就是受限于索引结构,因此每当改进了索引数据结构,性能也随之大增。
性能瓶颈
在数据库系统中,每当对数据进行索引,数据的逻辑位置会被映射到物理设备,这个映射严重依赖设备的寻址时间。
解决办法
当遇到性能瓶颈时:办法就是,不对每个操作都进行一次寻址,而是每次寻址都做多个操作。
解决方案-WATERFALLTREE™ (瀑布树)
STSdb 4.0突破性地发现并实现了Waterfall-tree (瀑布树)树结构。Waterfall-tree是注册商标,并且拥有专利。与传统的B+树类似,但B+树是同步操作,而瀑布树是分组异步操作。现有的解决方案有一个共同的缺点:当索引随机主键的时候,I/O性能不高(退化严重)。
而STSdb4.0的瀑布树带了来前所未有的性能提升。
下图直观地展示了瀑布树的原理:
性能比较
数据库 | 存储设计 |
---|---|
Amazon Dynamo DB | Zero-Hop Distributed Hash Table |
Cassandra | Memtable / SSTable |
Couch DB | Append-only B-tree |
Db4objects | B-tree |
Google Big Table | SSTable (log-structured storage) |
H base | Memtable / SSTable on HDFS |
Level DB | LSM-tree |
Memcached | Memory caching |
Mongo DB | B-tree |
Oracle Berkeley DB | B+-tree |
Perst | B-tree/T-tree/R-tree/Patricia trie/KD-tree |
Redis | In-memory only with background snapshots |
Scalaris | In-memory only |
Tokyo Cabinet | Hash or B-tree |
随机写
随机读
顺序写
顺序读
这个性能,只能用凶残来形容啊!
应用领域
Hello STSdb
打开数据库并写入数据
?读取数据
?更多例子
可以访问这里查看更多的例子,或者下载类库或代码,里面有pdf文档。许可
尽管STSdb在官网没有说明许可,但从老版本的开源项目托管网站来看,许可是GPL 2.0+。相关文章推荐
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构
- C#写的NoSQL开源项目/系统(系列)
- (转)C#写的NoSQL开源系统(系列)
- C#写的NoSQL开源项目/系统(系列)
- C#写的NoSQL开源系统(系列)
- C#写的NoSQL开源项目/系统(系列)
- C#写的NoSQL开源项目/系统(系列)
- 国外c#开源系统一览表_c#应用-虚拟主机资讯|虚拟主机动态
- 开源分布式文件系统&文件系统
- 国外C#开源系统一览表
- C# 系统应用之清除Cookies、IE临时文件、历史记录
- C#下使用第三方开源控件读取Excel文件的内容
- C#调用系统的复制、移动、删除文件对话框
- 功能教室预约系统开源下载(c#源码)
- 如何将文件夹打包成文件,然后将文件格式化成虚拟文件系统,挂载到某个文件夹