一种高性能存储引擎设计思路-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

一种高性能存储引擎设计思路

2017-04-12 14:06:41 3684 4

前言

通常,非关系型数据库写性能相对关系数据库会高一些,比如kv,nosql,mq等等。其中一个重要原因是这些引擎不需要处理数据的详细数据类型和数据之间的约束,甚之事务也无需处理。

在业务系统中,为了提高写性能我们有时会前置增加mq挡住高并发写,然后定时或者异步处理队列的数据。 这种方式业务需要处理异步,以及数据没有持久化到数据库的读取操作。而这个过程比较抽象,基本无业务相关性。

现实生活中的一个场景

寄快递大家都很熟悉, 找个盒子或者袋子装上需要寄送的东西,然后贴上快递单,就可以寄出去了。当然快递员可能会询问邮寄的内容,甚之会打开查看,但是这样时效性就慢了。

我们这样假定:
1、快递员不拆包检查内容
2、快递员提供快递袋子和快递单
3、收货人检查快递内容,有问题退货
4、寄货人保证快递的东西是合法的

新的存储引擎思路

根据上面的例子,存储引擎的思路也就很清晰了:

1、存储引擎预先不检查数据内容
2、按照kv方式预先存储,然后返回存储成功
3、业务触发对存储数据进行拆包,比如将nosql转换为关系数据
4、也可以尝试存储引擎主动异步解包,异常信息作为数据的一部分
5、存储引擎只校验key主键的唯一性
6、事务处理暂不考虑

取消 提交回答
全部回答(4)
  • 云建站小宋
    2021-07-08 18:14:34

    最新回答:

    一般存储使用场景是读多于写,在写上的优化不能以牺牲读为代价。如果要提升写入速度,常见的做法是做拆分,多点写入的结构是可以扩展的。

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官网(新用户需注册查看),可领上云红包

    0 0
  • yu_hc200
    2019-07-17 21:02:44

    一般存储使用场景是读多于写,在写上的优化不能以牺牲读为代价。如果要提升写入速度,常见的做法是做拆分,多点写入的结构是可以扩展的。

    0 0
  • hill007299
    2019-07-17 21:02:44

    这样读的性能岂不是会变慢,可以多参考下leveldb的实现。

    0 0
  • scofier
    2019-07-17 21:02:44

    自己顶一个

    1 0
添加回答
相关问答

1

回答

RDS购买的存储引擎是什么意思?

2020-12-28 19:35:21 701浏览量 回答数 1

1

回答

oracle存储/函数中sql语句拼接报错,求助大神?报错

2020-06-08 21:35:51 485浏览量 回答数 1

0

回答

高性能Web架构之缓存体系

2018-05-27 16:59:08 844浏览量 回答数 0

1

回答

chrome浏览器-注册后创建存储空间报错

2011-12-12 17:19:27 6580浏览量 回答数 1

1

回答

使用8位存储空间的有符号二进制数进行运算,哪项将会出现“下溢出”?

2018-07-20 20:26:36 1663浏览量 回答数 1

2

回答

如何设计数据结构和算法,计算并存储六度好友关系

2018-07-20 12:21:32 3508浏览量 回答数 2

1

回答

可观测数据存储引擎整体架构为?

2022-05-09 22:02:24 57浏览量 回答数 1

1

回答

InnoDB存储引擎的锁的算法有几种?

2021-10-02 21:52:00 213浏览量 回答数 1

1

回答

关于创建存储空间报错

2018-11-14 18:05:29 1814浏览量 回答数 1

1

回答

局部静态变量和全局静态比那里存储内存位置和区别??报错

2020-06-12 10:39:36 220浏览量 回答数 1
+关注
0
文章
2
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载