UnQLite鲜明的特色 Jun 01, 2013

UnQLite

以下页面枚举UnQLite数据库引擎和Jx9嵌入式脚本语言的鲜明特色。

UnQLite数据库引擎的劲爆特色

`无服务器`数据库引擎。
`事务化` (ACID) 数据库。
`零配置`。
`单一数据库文件`,不使用临时文件。
`跨平台`的`文件格式`。
UnQLite是一个自包含的C语言程序库,`无任何外部依赖`。
标准的`Key/Value`存储。
基于`Jx9`的`文档存储`(JSON)数据库。
支持`游标`,满足线性记录遍历。
`插件式`运行时可交换存储引擎。
支持`磁盘持久化`和`内存模式`的数据库。
内建强大的磁盘存储引擎,支持`O(1)`查询。
`线程安全`,完全可重入。
简单、清晰,很容易使用的`API`。
支持`TB(Terabyte)尺寸`的数据库。
使用fastJSON格式,将JSON文档存储于磁盘。
采用`BSD开源许可协议`。
用ANSI C编写,非常高的代码质量,只需要一个C编译器,即可在绝大多数的平台,包括受限的嵌入式设备,无修改的编译和运行。
合并:UnQLite和Jx9相关所有C源代码文件,都合并到`单一的文件中`。
很好的`在线支持`。

Jx9嵌入式脚本语言的劲爆特色

基于JSON的图灵完备的编程语言。
清晰和熟悉的语法,类似于C和JavaScript。
动态类型编程语言。
高效率的`字节码`编译器。
支持原生的`匿名函数`。
和C++一样的`函数重载`
全类型暗示。
64位整数运算。
原生支持`UTF-8`编码。
构建于超过50个的运算操作。
逗号表达式。
支持静态变量和常量。
基于丰富的标准库,超过312个函数和134个常量。
很容易绑定C/C++外部函数,以及外部常量。
高效和平台独立的字节码编译器。
内建HTTP请求解析器。
使用hashmap实现高效的JSON数组和对象。
没有致命的错误,即使调用了一个未定义的函数也不会`abort`掉Jx9脚本执行。
Jx9是100%的手工编码(没有Lex、flex、YACC,Lemon(SQLite采用的编译器生成器)等),用ANSI C编写,只需要一个C编译器,即可在绝大多数的平台,包括受限的嵌入式设备,无修改的编译和运行。
基于`高级引用计数`的`GC()垃圾回收`
非常小的内存占用。

更多细节,请查阅Jx9编程语言参考手册

几个UnQLite十分重要特色的详细介绍

事务性的(ACID)数据库

一个事务性的数据库就是一个在其中所有变更及查询显得Atomic(原子性)、Consistent(一致性)、Isolated(隔离性)和Durable(耐久性)(ACID)。UnQLite实现了序列化的事务,也就是原子性、一致性、隔离性)和耐久性,即使事务被程序崩溃操作系统崩溃电脑断电中断。

无服务器数据库引擎

绝大多数NoSQL数据引擎(如MongoDB、Redis和CouchDB等),被作为独立的服务器进程而实现。想要访问数据的程序,通过某种进程间通信机制(典型的TCP/IP)和服务器通信,发送请求到服务器并收取返回结果。UnQLite和SQLite一样,都没有采用这种方式。采用UnQLite,想要访问数据库进程,直接读和写磁盘上的数据库文件。这里没有中间的服务器进程。

零配置的数据库引擎

使用UnQLite之前,无需进行安装。没有一个安装过程。这里没有一个服务器进程需要启动终止配置。也不需要一个管理员创建一个新的数据库实例或进行用户访问授权。UnQLite无需配置文件。无需做任何事情,以告知系统UnQLite正在运行。一次系统崩溃或掉电之后,也不要求采取任何行动以恢复数据库。这里没有任何故障排除。

单一数据库文件

一个UnQLite数据库,是一个单一的普通磁盘文件,可以位于目录层次结构的任何地方。只要UnQLite可以读取这个磁盘文件,就可以读取这个数据库中的任何数据。只要这个磁盘文件和所在目录是可读的,UnQLite就可以修改数据库中的任何内容。数据库文件,可以很容易的拷贝到USB内存棒或电子邮件共享。

跨平台的文件格式

UnQLite文件格式是跨平台的。在一个主机上写的数据库文件,可以拷贝和在不同架构的主机上使用。大端或小端,32位或64位都不是问题。所有的机器,使用一样的文件格式。

标准的K/V存储数据库引擎

UnQLite是,一个标准的key/value存储,与BerkeleyDB和LevelDB等相似。但是,拥有更加丰富的特性集,包括支持事务(ACID),并发读等。在KV存储下,键和值都被视为简单的字节数组,所以内容可以是任何东西,包括ASCII字符串、二进制对象和磁盘文件等。应用程序,可以通过接口API来访问KV层,包括unqlite_kv_store()unqlite_kv_append()unqlite_kv_fetch_callback()unqlite_kv_append_fmt()unqlite_kv_delete()等。

自包含的程序库

UnQLite是,一个自包含的C库,无外部依赖。它要求非常小的外部库或来自操作系统的支持。特别适合应用于嵌入式设备,也适用于应用程序内部(那些需要运行于大量的计算机,而无需修改各种配置)。

插件式`运行时可交换存储引擎

UnQLite运行于运行时可交换存储引擎(如,Hash, B+Tree, R+Tree, LSM等)。存储引擎,使用K/V对,即任意长度的字节数组,而且对内容没有任何限制。目前,UnQLite内建了两个K/V存储引擎:一个虚拟线性hansh存储引擎(Virtual Linear Hash:VLH),用于持久化数据到磁盘,拥有O(1)的查询时间。其二,是在内存模式数据库,采用hash表或红黑树。未来的版本,肯能内将LSM等存储引擎。

扩展阅读

祝大家玩的开心


标签: UnQLite



请访问本站404页面,帮助妈妈找寻失散的宝贝!