注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

STSdb,最强纯C#开源NoSQL和虚拟文件系统  

2013-05-22 09:14:41|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

回顾

几个月前写了一篇文章,关于 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 DBZero-Hop Distributed Hash Table
CassandraMemtable / SSTable
Couch DBAppend-only B-tree
Db4objectsB-tree
Google Big TableSSTable (log-structured storage)
H baseMemtable / SSTable on HDFS
Level DBLSM-tree
MemcachedMemory caching
Mongo DBB-tree
Oracle Berkeley DBB+-tree
PerstB-tree/T-tree/R-tree/Patricia trie/KD-tree
RedisIn-memory only with background snapshots
ScalarisIn-memory only
Tokyo CabinetHash or B-tree

 

 

随机写

 

随机读

 

顺序写

 

顺序读

 

这个性能,只能用凶残来形容啊!

 

应用领域

 

 

 

Hello STSdb

打开数据库并写入数据

using (StorageEngine engine = new StorageEngine("stsdb4.sys", "stsdb4.dat"))
{
    XIndex<int, string> table = engine.OpenXIndex<int, string>("table");
  
    for (int i = 0; i < 1000000; i++)
    {
        table[i] = i.ToString();
    }
  
    table.Flush();
    engine.Commit();
}

 

读取数据

using (StorageEngine engine = new StorageEngine("stsdb4.sys", "stsdb4.dat"))
{
    XIndex<int, string> table = engine.OpenXIndex<int, string>("table");
  
    foreach (var row in table) //table.Forward(), table.Backward()
    {
        Console.WriteLine("{0} {1}", row.Key, row.Value);
    }
}

 

更多例子

可以访问这里查看更多的例子,或者下载类库或代码,里面有pdf文档。

 

 

标签: stsdb
  评论这张
 
阅读(869)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017