Persy

用 Rust 编写的事务存储引擎
授权协议 MPL-2.0
开发语言 Rust
所属分类 数据库相关、 数据库管理工具
软件类型 开源软件
地区 不详
投 递 者 高吉星
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Persy 是一个用 Rust 编写的事务存储引擎。

安装

将其添加为项目的依赖项:

[dependencies]
persy="1.0"

例子

创建一个新的 persy 文件,在其中保存一些数据并进行扫描。

use persy::{Persy,Config};
//...
Persy::create("./open.persy")?;
let persy = Persy::open("./open.persy",Config::new())?;
let mut tx = persy.begin()?;
tx.create_segment("seg")?;
let data = vec![1;20];
tx.insert("seg", &data)?;
let prepared = tx.prepare()?;
prepared.commit()?;
for (_id, content) in persy.scan("seg")? {
    assert_eq!(content[0], 1);
    //....
}

编译源

查看源代码:

git clone https://gitlab.com/tglman/persy.git

编译和测试

cargo test
 相关资料
  • 下述存储引擎支持事务: ·InnoDB:通过MVCC支持事务,允许COMMIT、ROLLBACK和保存点。 ·NDB:通过MVCC支持事务,允许COMMIT和ROLLBACK。 ·BDB:支持事务,允许COMMIT和ROLLBACK。

  • 本文向大家介绍事务存储器,包括了事务存储器的使用技巧和注意事项,需要的朋友参考一下 事务性内存起源于数据库理论,它为进程同步提供了另一种策略。 内存事务是原子的,是一系列内存读写操作。如果事务中的所有操作都已完成,则将提交内存事务。否则,必须中止操作并回滚。可以通过添加到编程语言中的功能来获得事务存储的便利性。考虑一个例子。假设我们有一个修改共享数据的函数。传统上,此功能将使用互斥锁(或信号量)编

  • 目录 16.1. 前言 16.2. 概述 16.3. 创建存储引擎源文件 16.4. 创建handlerton 16.5. 对处理程序进行实例化处理 16.6. 定义表扩展 16.7. 创建表 16.8. 打开表 16.9. 实施基本的表扫描功能 16.9.1. 实施store_lock()函数 16.9.2. 实施external_lock()函数 16.9.3. 实施rnd_init()函数

  • 主要内容:1、面试题,2、面试官心里分析,3、面试题剖析1、面试题 事务的几个特点是什么? 数据库事务有哪些隔离级别? MySQL的默认隔离级别? 2、面试官心里分析 用mysql开发的三个基本面:存储引擎、索引,然后就是事务,你必须得用事务。 因为一个业务系统里,肯定要加事务保证一堆关联操作,要么一起成功要么一起失败,对不对?所以这是聊数据库必问的一个问题 最最最基本的用mysql来开发,就3点:存储引擎(了解),索引(能建索引,写的SQL都用上索引

  • 本文向大家介绍MSSQL事务的存储过程,包括了MSSQL事务的存储过程的使用技巧和注意事项,需要的朋友参考一下 在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rType

  • 我试图将一个用编写的函数迁移到 实时解压缩并逐行读取 对每一行执行一些光转换 将未压缩的输出(一次一行或块)写入GCS 输出是>2GB,但略小于3GB,所以它适合。 null AFAIC,我将坚持,因为输出可以放入内存--就目前而言--但是多部分上传是以最少的内存支持任何输出大小的方法。 想法还是替代方案?