Article Directory[hide]
上周,新义互联全球高级架构师黄驰铭从用户的维度分享了Aerospike在广告行业的使用心得。详情请点击:
Aerospike Helps Xinyi Internet Advertising Precisely Place Shared Playbackhttps://adtalos.com/archives/1574
Aerospike从设计和架构上有何优点,为什么推荐大家用Aerospike呢?我们从产品设计的角度看看Aerospike到底有何优势。
Aerospike的优势
Aerospike和其他NoSQL产品的相比最大的特点是Aerospike可以在大规模的数据下,比如PB级也能取得几毫秒甚至更低的的延迟和高吞吐量。
其他的产品很难同时做到这两方面,比如Redis的产品特点是它的速度,它的扩展性比较差,当扩展到几TB时,就会遇到扩展性的瓶颈。而Cassandra是针对大规模数据的存储,他的响应速度相对比较慢,这是由于它的产品在事务处理的构架和数据存储结构的缺陷所造成的。
Aerospike的另一个特点是它的总拥有成本是随着数据的规模线性增长的,而其他的产品总拥有成本往往是非线性增长的,随着数据的增长而急剧增长,就像下图那样。
构架特点
Aerospike改变了传统的缓存层加生产数据库的二层式构架,在传统的生产系统中,因为速度的要求,往往都会在生产数据库上加一层缓存层,但这使得系统的构架变得非常复杂,尤其在很多数据更新的时候,保持缓存层和生产数据库的同步就变成了较大的挑战。
Aerospike是高性能并可持久的,它可以代替缓存层和生产数据库,而把这两个部分的功能同时实现出来。这样,它就可以在处理高性能读取的同时也可以处理大量数据的更新,并实现事务的强一致性。
Aerospike和Oracle/MySQL的关系
Oracle和MySQL的特点是他们可以处理比较复杂的查询,他们在设计时是兼顾OLTP和OLAP的场景,因为那个时代的要求。但是在今天的业务场景下,他们很难满足在大规模数据下超低延迟和高并发的业务需求。
Aerospike的设计就是针对这种高要求的OLTP场景,它可以在大规模数据下,比如几十到几百TB,还能实现单毫秒甚至亚毫秒的延迟以及几百万TPS的吞吐量。所以Aerospike并不是要替代Oracle或MySQL,反而和它们成为互补的关系,比如有很多客户使用Aerospike来实现本来在Oracle里运行的高重复性的高性能的工作。
Aerospike可以作为边缘计算系统吗?
Aerospike目前最主要的应用是在边缘计算,因为它可以在大规模的数据量下实现单毫秒甚至亚毫秒的延迟并支持百万级的吞吐量。在构架上它也可以避免使用生产数据库上外加缓存的二级构架,Aerospike本身就兼顾了缓存所需要的性能以及数据的持久性。
Aerospike被广泛应用在广告精准投、反欺诈、用户画像、支付等常见的边缘计算场景。随着客户数据量的增加,越来越多的客户也开始使用Aerospike作为他们的数据记录系统,这是因为Aerospike在大规模的数据下使用的硬件蓝图比其他的内存数据库要小很多(只有Redis的1/8),并且它有超强的稳定性和扩展性,易维护,一直在线,强大的XDR和跨多数据中心分布式数据库。
目前比较常见的用法是用Aerospike做为数仓,通常是几十到几百TB,然后在上面使用Spark或Elastic Search作为实时分析和查询系统。也有很多客户把它和Vertica以及Greenplum一起使用,Aerospike就负责前端的边缘计算,加上中心的数据存储,Vertica和Greenplum作为数据的报表和分析系统。
节省成本
Aerospike产品最大的影响力之一在用户总拥有成本上的节省。因为Aerospike的产品设计和构架的优势,在处理相同数据的时候,所需的硬件成本比竞争对手要少很多。
比如Signal这个客户,之前是使用了450个服务器运行Cassandra。转换到Aerospike之后,只用了60个服务器,在总拥有成本上三年共节省了750万美金。而另一个客户之前用了120个Redis的服务器,相同的数据在Aerospike只需要15个服务器。使用Aerospike不光节省了服务器的数量和总拥有成本,和其他竞争产品相比,Aerospike在性能上也有非常大的优势。