firmware/README.MD

124 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# STVM 高效缓存数据库
STVMtruck of Virtual memory table是一个开源的使用ANSI C语言编写、支持本地API调用和网络调用全表数据基于IPC共享内存方式存储基于C语言struck结构定义记录行RB-Tree和hash作为主要算法的内存数据库是一款介于SQL和NOSQL之间的一款高速缓存数据库。
* 支持SQL基础语法(insert、update、delete、select、group order、countfirst)功能。
* 支持序列
* 支持唯一索引、查询索引和组合索引
* 支持多字动态查询
* 内置记录点击量(热点数据)
* 集群、主-子同步。
* 事务功能(假性事务)
* 基于IPC进程异常退出不会导致数据丢失除非系统宕机。
* 支持网络API同步、异步和本地API直接调用
* 内置数据版本,维护数据一致安全
* 数据导入、导出接口
***使用须知***
* 表空间大小在创建时已经确定, 一旦创建不能随意修改大小。
* 多机集群无法使用事务。
* 数据无法持久化(宕机情况)。
* 索引长度限制默认64字节修改需编译项目。
* 启动后不能修改表字段
建议使用场景:***数据库缓存、数据缓存***
不定时更新 https://my.oschina.net/deffpuzzl/blog/1627626
## 1、编译
**编译项目**
cd src目录 **./make**
在../lib下生成
* libstvm.a
* libstvm.so
* libstvm.so.1.2 -> ../lib/libstvm.so
在../bin下生成
* stvm
* detvm
## 2、启动
新建stvm工作目录 **mkdir tvmdb**
* **TVMDBD=/home/stvm/tvmdb** 指向stvm工作目录
* **TVMCFG=$(TVMDBD)/.tvm.run** 启动参数
使用方法:
如果不使用多机集群,无需配置域文件,缺省本地启动。
启动系统
> stvm -w
停止系统
> stvm -s
STVM也提供一个类型sqlpuls类型简单工具。
进入SQL界面, 该工具主要用来运维调试使用
> stvm SQL
域的维护
> stvm DOM
关于域的配置,请参见:
> vi stvm.conf
配置域完成后,可以配置编译到$TVMCFG下
> stvm -c stvm.conf
然后在stvm -w启动即可
建议以单机模式64位下运行将性能发挥在极致。
**作者Savens Liu**
**邮箱deffpuzzl@qq.com**
## 3、更新
====***更新日期:20180312***====
>* 1、支持动态创建表语句
>* 2、新增对表结构导出功能
用法:
表创建语法示例: tbl_acct_base.def
在stvm SQL中利用 create $file来创建表
====***更新日期:20180314***====
>* 1、新增表数据结构化导出、导入功能
>* 2、新增热点数据点击量api
====***更新日期:20180430***====
>* 1、修复create脚本sizeof算法问题。
>* 2、新增异步操作(网络插入、删除、更新)异步接口支持。
====***更新日期:20180515***====
>* 1、新增脚本msql来批量执行M-SQL语句。
>* 2、对表字段新增别名暂用一些场景字段映射。
>* 3、新增comment关键字在创建脚本文件或M-SQL中本地使用
>* 4、修复char字符拷贝和M-SQL界面非人性化操作。
**下本版本:**
* 1、新增多机资源共享方式。
* 2、JAVA接口开发
**不定时更新**
---
#### *常见错误集合* ####
```
Q、failed to boot TVM, Invalid parameter or sem has disappeared
Aecho "500 X X X" > /proc/sys/kernel/sem
```