Aerospike

中间件技术栈

理解Aerospike的事务

在数据库系统中,一个事务是指:由一系列数据库操作组成的一个完整的逻辑过程。例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和,构成一个完整的逻辑过程,不可拆分。这个过程被称为一个事务,具有ACID特性。由于Aerospike事务的单一记录范围和某些集群转换,某些情况下的处理方式必然不同于的传统数据库(担心翻译不准确,附上官方原文:​Certain situations have to be handled differently from traditional databases that you may be familiar with because of the single record scope of Aerospike transactions and certain cluster transitions. )。那么我们如何处理常见的读写事务?

阅读剩下更多

默认配图
中间件技术栈

理解Aerospike的基本概念

Aerospike(以下简称 AS)一个以分布式为核心基础,可基于 RAM存储索引、数据或将数据存储在闪存/SSD上的是一个分布式数据库。提供类似传统数据库的ACID操作。它主要用于在数百 G、上万 T 的大数据量并且在数万以上并发的情况下,对性能也有毫秒级兑取插入的场景。

目前主要用于互联网广告行业、消息推送行业、直播行业等。

K-V 类型的数据库必须要提的就是 redis,redis 数据完全存储在内存虽然保证了查询性能,但是成本太高。AS 最大的卖点就是可以存储在 SSD 上,并且保证和 redis 相同的查询性能。AS 内部在访问 SSD 屏蔽了文件系统层级,直接访问地址,保证了数据的读取速度。 AS 同时支持二级索引与聚合,支持简单的sql操作,相比于其他 nosql 数据库,有一定优势。

阅读剩下更多

默认配图
中间件技术栈

Aerospike的使用案列

Aerospike(以下简称 AS)一个以分布式为核心基础,可基于 RAM存储索引、数据或将数据存储在闪存/SSD上的是一个分布式数据库。提供类似传统数据库的ACID操作。它主要用于在数百 G、上万 T 的大数据量并且在数万以上并发的情况下,对性能也有毫秒级兑取插入的场景。

目前主要用于互联网广告行业、消息推送行业、直播行业等。

K-V 类型的数据库必须要提的就是 redis,redis 数据完全存储在内存虽然保证了查询性能,但是成本太高。AS 最大的卖点就是可以存储在 SSD 上,并且保证和 redis 相同的查询性能。AS 内部在访问 SSD 屏蔽了文件系统层级,直接访问地址,保证了数据的读取速度。 AS 同时支持二级索引与聚合,支持简单的sql操作,相比于其他 nosql 数据库,有一定优势。

阅读剩下更多

默认配图
中间件技术栈

Aerospike-内存和硬盘混合存储的kv数据库

Redis是一个纯内存型数据库,在基准测试中,机器资源为16C14G的GCE,读TPS能达到133000,写TPS约为130000,性能上没有多大问题。虽然高性能给业务处理带来了好处,但纯内存存储,对硬件资源的要求也很高,企业投入的成本也相应的增加。在硬件中,内存的价格远比磁盘贵,而且内存量越大越贵,因此,全内存的存储成本非常昂贵。为了节省成本,我们需要把一部分不经常用到的数据存储到硬盘上,但是又要求性能不能下降很多,这时候 Aerospike 数据库应运而生,它可以是`内存`+`SSD`(或者`NVMe`、`PMEM`)存储。

阅读剩下更多

默认配图
中间件技术栈

个推从Redis到Aerospike的踩坑经验

个推专注为开发者们提供消息推送服务多年。通过个推SDK,手机终端与服务器建立长连接,维持在线状态。然而在网络异常等情况下,消息无法实时送达到终端用户,因而推送服务器建立了一份离线消息列表,以待用户重新登录时,进行消息的下发。这部分数据存储在个推Redis集群,整个集群包括主从共百余个实例,key的数量在10亿级别,存储空间在T级别,带来了一定的维护成本和运维挑战。作为个推的后端开发工程师,我们也一直在寻找高性价比的方案。

个推整个集群的QPS在百万级别,若选择使用 Aerospike,对比实测下来,我们发现单台搭载单块Inter SSD 4600的物理机,可以达到接近10w的QPS,即几十台机器就可以满足现有的需求,并能够支撑未来较长一段时间的业务需求。

阅读剩下更多

默认配图
返回顶部