为何写tcdatabase
tcdatabase 是以TC(Tokyo Cabinet)的B+Tree 数据引擎为基础开发的数据库。
TC(Tokyo Cabinet)是日本人平林幹雄开发的一款 Key-Value 键值数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.402秒,读取100万条数据 只需0.334秒。
TT(Tokyo Tyrant )是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有自己的协议,并支持Memcached兼容协议,也可以通过HTTP协议进行 数据交换。哈希数据库读写速度大约在50000次/秒。
TC和TT目前运行在日本最大的SNS网站MIXI,在国内也有大量的生产环境应用。
关于TC和TT详尽的介绍可以看看张宴2010年4月2日在“2010年数据库技术大会”的演讲PPT:Tokyo Cabinet Key-Value数据库及其扩展应用PPT
在TC中key-value数据对中value有结构并能对value中字段进行索引的数据引擎是TCTDB(Table Database)。TCTDB是在TCHDB哈希数据库的基础上,对value部分做的增强:value是带字段结构,value是由若干字段名-字段值对组成。(详见张宴PPT)。
TCTDB即具备了Key-Value数据库的高效读写性能,又具备了MySQL单表能实现的一些功能,即: SELECT .... FROM table WHERE .... ORDER BY .... LIMIT xxx,xxx
TCTDB的不足:
- * 一个Table Database仅支持一个表,也就是说value中的字段必须固定一样。假设项目组使用了80多个表,这意味着你需要开启了80多个 ttserver为每一个“表”提供支持。
- * 功能的增强,也就意味着要牺牲性能。TCTDB 表格型数据库的平均读取速度大约在40万条/秒,相比 TCHDB哈希数据库的180万条/秒和TCBDB B+Tree数据库 的100万条/秒要慢。
- * TCTDB虽然可以建立数值型索引,但是它是将所有value数据都当成字符型来处理的,无法区分value类型。
- * TCTDB单数据库文件存储的记录数上亿条后,性能会有比较明显的下降。
- * 不能单独获取value中的某一个字段的值;
- * 不能支持仅更新UPDATE key中某一个字段:必须先取出value的全部字段,再存入;
So,为了解决TCTDB一个database只能使用一个表,以及不能获取(更新)value中某个字段值的问题,我动了写tcdatabase的念头。
目前tcdatabase 数据格式为Spec.2. 当前Spec.2的实现功能如下。
tcdatabase的数据存储
tcdatabase的数据存储被分为3个文件进行存储:分别是数据文件、数据配置文件、数据索引文件。
* 1、[data.tcb]: 数据文件改用采用TCBDB(B+Tree Database)进行存储,——为了解决数据量上亿后的HashDB性能的问题。
* 2、[data.tcb].cfg: 数据配置采用TCHDB(Hash Database), 只要内存缓存设置适当配置信息就会在内存中。
* 3、[data.tcb].idx: 索引同样采用TCBDB存储。
注意:字段名称必须在整个数据库中保持唯一。暂不支持全文索引。
tcdatabase兼具TCBDB和TCTDB的特点。主要特点如下:
读写操作
写操作
写操作分为行写和列写操作。
行写:和TCTDB完全一样,写入整行(row)数据,包含所有字段。
分为 misc put, misc putcat, misc putkeep
misc putkeep: 添加新记录,如果企图覆盖已有记录会报错。
misc put: 添加新记录或者覆盖已有记录,注意覆盖的新值中不能有新字段。
misc putcat 覆盖已有记录并可以给已有记录添加新字段。
列写:和TCBDB一样。仅对key的单列进行写入
put(".[KeyName].[FieldName]", "FieldValue")
必须使用put命令进行(不能使用 misc put,这是行写方式)。
必须以"."字符打头表示列写方式,keyName和字段名之间用"."分隔。
读操作
读操作也分为行读和列读操作。
行读操作:和TCTDB完全一样,读取整行(row)数据,包含所有字段。
misc get(char * name)
列读操作:和TCBDB一样。可以读取某key的单列值的信息,也可以获取某key的字段列表信息
读取单列:get(".[KeyName].[FieldName]")
读取key的字段名称列表信息:get("/[KeyName]")
必须使用get命令进行(不能使用 misc get,这是行读方式)。
tcdatabase 开源
tcdatabase: http:code.google.com/p/tcdatabase
注意:当前你必须从代码仓库中checkout方为Spec.2的最新版本,下载包中的为Spec.1的版本。
from:http://www.cnblogs.com/riceball/archive/2010/05/07/tcdatabase-1.html
分享到:
相关推荐
TCDatabase 是一个基于 Objective-C 开发的数据库管理框架,它对 FMDB 进行了封装,提供了更加便捷和高效的数据操作接口。FMDB 是一款流行且功能强大的 SQLite 管理库,由 C 语言编写,但在 iOS 和 macOS 开发中通常...
buct计算机系统综合设计课设
"半桥LLC谐振变换器:开环、闭环仿真设计与参数详解报告——含32页说明文档与Simulink模型",半桥LLC谐振变器开环+闭环仿真设计资料 附带一份32页配套说明文档详细参数设计、原理说明、仿真分析 开环、闭环、闭环+软启动三个Simulink仿真模型, 附带了配套设计说明报告,给出了谐振槽谐振元件参数的设计步骤,并对参数进行了完整设计。 可以参考说明文档设计不同功率等级的LLC谐振变器 ,半桥LLC谐振变换器; 开环仿真设计; 闭环仿真设计; 软启动仿真模型; 设计说明报告; 谐振槽谐振元件参数设计步骤。,"LLC谐振变换器:开环闭环仿真设计资料及详细参数说明"
证书_00008030-001079D21A53402E.zip
深入探索Comsol SOFC:固体氧化物燃料电池的仿真与性能分析(涉及温度场、气体分布及曲线表现),Comsol sofc固体氧化物燃料电池仿真(温度场分布,气体分布,极化曲线,性能曲线) ,Comsol; SOFC; 固体氧化物燃料电池; 仿真; 温度场分布; 气体分布; 极化曲线; 性能曲线,Comsol SOFC仿真:温度场与气体分布分析的极化性能曲线
学生竞赛管理系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
deepseek最新技术文档中英文对照版
COMSOL模拟下的激光热致等离子体作用模型探究,Comsol模拟激光热致等离子体模型 ,Comsol模拟; 激光热致等离子体模型; 模型模拟。,Comsol模拟激光热等离子体模型
冲压成形虚拟仿 真实验系统构建与关键技术研究.pdf
Firefox浏览器page_assist-1.4.4离线插件,deepseep大模型一起用的WEBUI插件
《基于Comsol仿真的热光伏电池(TPV)研究》,comsol仿真:热光伏电池(TPV) #comsol仿真 ,comsol仿真;热光伏电池(TPV);光伏模拟,"Comsol仿真技术在热光伏电池(TPV)领域的应用"
"COMSOL有限元仿真模型:三相变压器多物理耦合模型中的电磁-声-结构力分析,涉及应力、磁密及声场多维研究",COMSOL有限元仿真模型,三相变压器电磁-声-结构力多物理耦合模型,应力分析,磁密分析,声场分析 ,核心关键词:COMSOL有限元仿真模型; 三相变压器; 电磁-声-结构力多物理耦合模型; 应力分析; 磁密分析; 声场分析; 关键词以分号分隔为:COMSOL有限元仿真模型;三相变压器;电磁耦合模型;声-结构力耦合模型;应力分析;磁密分析;声场分析。,有限元模型下的电磁-声-结构多物理耦合仿真研究
"灰狼算法驱动的MPPT跟踪:光照突变情况下的部分遮阴处理与波形图分析",灰狼算法实现部分遮阴的MPPT跟踪,包括光照突变情况,包括灰狼算法程序和matlab simulink模型的搭建,功率,电压,电流波形图和占空比波形图入如下。 ,核心关键词:灰狼算法; MPPT跟踪; 光照突变; 程序实现; MATLAB Simulink模型; 功率波形图; 电压波形图; 电流波形图; 占空比波形图。,灰狼算法MPPT跟踪与Simulink模型搭建
"BLDC无刷直流电机双闭环矢量控制仿真研究与实践:模型构建、性能验证与学习资源",BLDC无刷直流电机双闭环矢量控制仿真 仿真为BLDC无刷直流电机的双闭环控制,仿真配套的说明文档详细的描述的每个模块的搭建以及作用。 适合学习BLDC的同学使用学习。 仿真通过对给定转速的突变验证双闭环控制的性能,结果表明,控制相应速度快,转速跟踪稳定,能完美实现功能。 文件包括: [1]仿真模型 [2]详细说明文档 [3]相关参考文献 ,BLDC无刷直流电机;双闭环矢量控制;仿真;模块搭建;性能验证;学习;控制响应速度;转速跟踪稳定。,"BLDC无刷直流电机双闭环矢量控制仿真研究报告"
EB-PVD设备灯丝加热电源的研制.pdf
国外人形机器人技术前沿及产业发展形势研判.pdf
基于comsol技术的冻土路基水热耦合研究,comsol冻土路基水热耦合。 ,comsol; 冻土; 路基; 水热耦合,"水热耦合下的comsol冻土路基研究"
COMSOL模拟光子晶体六边形晶格结构:第一布里渊区能带简述,COMSOL光子晶体六边形晶格简约第一布里渊区能带 ,COMSOL;光子晶体;六边形晶格;简约;第一布里渊区;能带,光子晶体六边形晶格的能带研究
基于英飞凌XMC4500的永磁伺服电机液压伺服驱动器方案——高效稳定的注塑机控制解决方案,液压伺服驱动器,英飞凌XMC4500方案,为永磁伺服电机(PMSM)而开发的液压伺服方案,采用高性能的矢量控制技术,配置了针对注塑机驱动过程中的工艺过程动作特性的优化,如注塑速度、压力保持精度控制,以及与注塑机控制器配合工作时的平稳性控制,同时还具备后台软件监控、通讯总线功能,支持多种编码器类型,组合功能丰富强大,性能稳定。 此方案主要应用于塑料成型、管材挤出、制鞋、橡胶、金属压铸等行业,油压控制性能进一步提升、压力和速度响应更快,稳态压力波动更小,体积更小。 驱动板、键盘板、PG卡等)源文件,资料非常详细完整 ,液压伺服驱动器; 英飞凌XMC4500方案; 永磁伺服电机PMSM; 矢量控制技术; 注塑机驱动工艺; 速度压力控制; 通讯总线功能; 编码器类型; 塑料成型; 管材挤出; 制鞋; 橡胶; 金属压铸; 油压控制性能; 体积小。,"英飞凌XMC4500永磁伺服液压驱动方案:多行业应用的高效稳定驱动器"
基于高频方波电压注入的IPMSM无感控制算法Simulink仿真模型研究与实践应用,基于高频方波电压注入零低速IPMSM无感控制算法simulink仿真模型 ①在估计的d轴注入高频方波电压来估计转子位置,具有较高的稳态精度和动态性能。 该仿真调试效果不错,曾应用到实际电机中去。 ②阐述了 IPMSM 的 MTPA 控制原理,并在此基础上研究了 IPMSM 基于 高频方波电压信号注入法的无位置传感器控制算法。 仿真结果表明基于高频方波 电压信号注入的无位置传感器控制方法具有不错的动静态性能 ,核心关键词: 1. 高频方波电压注入 2. 零低速IPMSM无感控制算法 3. Simulink仿真模型 4. 转子位置估计 5. MTPA控制原理 6. 动态性能 7. 稳态精度 8. 无位置传感器控制方法,基于高频方波电压注入的IPMSM无感控制算法Simulink仿真模型及效果分析