starrydb使用手册(草稿)

starrydb是遵循some object doing something原则开发的数据库,

是封闭的,可编程的,可并发的,分布式的数据库系统。

目前是供单机使用lite版本,之后会开发基于网络的分布式版本。

我的目标是可以开发分布式的大型数据处理系统,

也可以处理单机的复杂数据的系统。

数据和数据的处理在这个数据库内被融合在一体。


starrydb是融合类似erlang的多线程技术,处理的数据,

每个数据对象都有单独的线程处理无需程序员维护。


starrydb带有定时器可以添加自动处理脚本,

实现输出输入数据的自动化调用。


使用数据库需要有lua语言与C++语言基础。


数据库是由节点(node), 对象(object),字段组成。

每个数据库句柄代表一个节点,

节点可以有任意数量的对象,

每个对象可以有任意数量的子对象。

数据库的构造是以节点为顶点展开的对象树结构。

任意对象有且只有一个父对象。


C++语言的接口

node_create()

创建数据库节点并返回句柄


node_get()

获得节点的名字


node_del

删除数据库节点


ob_create

对象的创建输入参数是对象的全名

对象的全名是指包括所有父对象名称的以#分割的名字

这个接口会从节点依据对象名依次创建对象

"this#1#2"

例如这个对象名会创建名字为

"this#1"和"this#1#2"的两个对象


ob_delete

对象删除


ob_query

对象内键值的查询


ob_set

对象内键值的设置


ob_querys

对某个对象下的所有子对象的数据的检索


ob_move

将某个对象从原父对象迁移到目的对象


ob_getevent

获得队列里的消息


ob_setevent

设置消息过滤


ob_delevent

删除事件


ob_do

对某个对象下的所有子对象执行一个脚本


ob_order

对几个对象顺序执行脚本


script_run

创建一个脚本环境运行脚本


下面开始是设置输入参数和获得输出参数的接口


set_number

设置一个数值


set_string

设置一个字符串


ret_type

返回当前参数堆栈顶层参数的类型


ret_remain

返回剩余的数据的长度


ret_number

返回一个数值


ret_valueskip

跳过一个参数


ret_strleagth

如果当前栈内参数是字符型返回长度


ret_string

返回字符串


ret_str

安全的返回字符串


lua的接口


lua环境分为两大类,数据库内和数据库外

数据库外的脚本接口


o.doing

指定数据库内的对象执行一个脚本


o.setevent

设置一个事件


o.getevent

获取一个事件


delevent

删除一个事件


set_number

添加到输入堆栈添一个number类型的数据


starry的接口函数中有不固定类型的数据输入堆栈

starry::set_number(S, 6);
starry::ob_set(S, "this#first", "a");

这里是在输入堆栈添加一个数字6,

ob_set会把堆栈的数据添加到当前节点的first对象的a字段内。


starry数据库支持5种数据

	enum data_type
	{
		data_nil = 0,
		data_string,
		data_wstring,
		data_number,


		data_point_map,
	};
data_nil  空数据
data_string 字符串
data_number 数字,与lua类似数据库内部以double形式保存
其中2种数据目前不能被用户使用
data_wstring 宽字节
data_point_map 子map类型

set_string

ret_type

ret_remain

ret_number

ret_valueskip

ret_strleagth

ret_string


lua数据库内接口

query_double

set_double


query_int64

set_int64


query_string

set_string


query_int32

set_int32


doing

让指定对象运行一段脚本


new_guid

创建一个新的文字的guid


map_size

map类型的长度


map_key

map类型的从零索引开始的key


map_type

map类型的指定key的类型


create

为当前对象创建一个子对象


delself

删除对象自己,必须是一个空对象


addtime

添加定时器


deltime

删除定时器

你可能感兴趣的:(starrydb使用手册(草稿))