当前位置: 首页 > 软件库 > 服务器软件 > 存储系统 >

TmStorage

开源存储引擎
授权协议 MIT
开发语言 C#
所属分类 服务器软件、 存储系统
软件类型 开源软件
地区 不详
投 递 者 汲睿
操作系统 Windows
开源组织
适用人群 未知
 软件概览

TmStorage 是一个用 .NET 开发的虚拟文件系统,用来存储流数据。使用扁平结构进行数据存储,通过类型为 GUID 的流 id 来引用数据。

TmStorage 使用一个主文件用来存储所有流数据。主文件被分成多个可变长度的段,每个段只由一个流来占用。每个流由 0 到多个段组成。

每个段包含一个段的元数据,这些元数据存放在段的起始位置,包含如下信息:

  • 段大小 (Int64)

  • 下一个段的位置,如果是最后一个段则为 null(Int64)

  • 元数据的校验和 (Int)

为了防止碎片化严重,段大小固定为 512 字节的整数倍。

使用实例:

Image image = Image.FromFile("c:\\image.png");
Storage storage = new Storage("c:\\images.storage", "c:\\images.storagelog");
Guid streamId = Guid.NewGuid();
 
storage.StartTransaction();
try{
    Stream stream = storage.CreateStream(streamId);
    image.Save(stream, ImageFormat.Png);
    stream.Close();

    storage.CommitTransaction();
}finally{
    storage.RollbackTransaction();
}
 相关资料
  • 实施新存储引擎的最简单方法是,通过拷贝和更改EXAMPLE存储引擎开始。在MySQL 5.1源码树的sql/examples/目录下可找到文件ha_example.cc和ha_example.h。关于如何获得5.1源码树的说明,请参见2.8.3节,“从开发源码树安装”。 复制文件时,将名称从ha_example.cc和ha_example.h更改为与存储引擎相适应的名称,如ha_foo.cc和ha

  • MySQL常用存储引擎 MySQL常用存储引擎之MyISAM MySQL 5.5 之前版本默认存储引擎,在排序、分组等操作中,当数量超过一定大小之后,由查询优化器建立的临时表。 MyISAM 存储引擎表由 MYD (表数据) 、MYI (表索引) 与 frm (表结构) 组成。 MyISAM 特性 并发性与锁级别 表级锁 表损坏修复 check table tableName repair tab

  • BLACKHOLE存储引擎就像“黑洞”一样,它接收数据但丢弃它而不是存储它。取回总是返回空集: mysql> CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE; Query OK, 0 rows affected (0.03 sec) mysql> INSERT INTO test VALUES(1,'record one'),(2,

  • CSV存储引擎使用逗号分隔值格式的文本文件存储数据。 要允许使用这个存储引擎,当你建立MySQL之时,使用--with-csv-storage-engine选项来configure。 当你创建一个CSV表之时,服务器在数据库目录创建一个表定义文件。文件由表的名字开始,并且由一个.frm的扩展名。存储引擎也创建一个数据文件。它的名字由表的名字开始,并且有一个.CSV的扩展名。数据文件是无格式文本文件

  • ARCHIVE存储引擎被用来以非常小的覆盖区存储大量无索引数据。 要允许这个存储引擎,在建立MySQL之时使用--with-archive-storage-engine选项来configure。如果这个存储引擎可带这个语句使用,你可以看见: mysql> SHOW VARIABLES LIKE 'have_archive'; 当年创建一个ARCHIVE表,服务器在数据库目录创建一个表定义文件。文件

  • 15.7.1. 安装FEDERATED存储引擎 15.7.2. FEDERATED存储引擎的介绍 15.7.3. 如何使用FEDERATED表 15.7.4. FEDERATED存储引擎的局限性 FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表。 FEDERATED存储引擎仅在-MAX版的MySQL上可用。 要为FEDERATED引擎检查源码,请查看MySQL源码分发版的sq