首页   快速返回

aerospike简单介绍
文章分类 aerospike
发布时间 2018-12-24 修改时间 2018-12-24

主要内容

概述 原理介绍 安装 关键配置 性能 amc使用 与Redis对比

概述

分布式高性能KV数据库 一个有着完善商业支持的开源产品,目前提供免费版和商业版 国外使用比较广泛

原理介绍

Namespaces SET BIN record DB TABLE COLUMN ROW Key 每一条记录元数据 Metadata generation(代):表示记录被修改的次数。 time-to-live(TTL) 每次在对象上执行写操作TTL就会增加。 last-update-time (LUT):上次更新时间,内部元数据,不会返回给客户端。 支持裸设备 绕过了OS的文件系统,直接操纵底层硬件 CAP Aerospike实现了AP(类Cassandra) 节点自动发现 基于Multicast(目前已不推荐)或Mesh(单播 unicast) 数据分区 每个Namespace固定4096个数据分区 任意节点加入或下线会立刻触发数据迁移(Migration)以保证可用性 迁移过程不需要人工干预且对正常响应几乎无影响 每个Key对应一个固定64 Bytes长度的索引 默认不保存原始Key 索引仅存于内存而不做持久化 节点重启时需要全盘扫描并重建内存索引,这个时间会比较长 每个副本独立拥有一套索引 服务端批处理(将多个操作一次性提交到服务端,服务端保证在同一个事务中处理) 支持数据逐出,默认为LRU 支持LUA编写UDF函数 支持Scan(未使用) 客户端智能路由 客户端自动感知节点拓扑结构变化并路由请求 客户端自动感知数据分区情况 内置高性能TCP连接池 内置智能故障重试/重传机制 存储1亿cookie耗费 http://www.aerospike.com/docs/operations/plan/capacity/ 内存:64Byte*2(备份因子)*100000000 = 11G 硬盘:128Byte*2(备份因子)*100000000 = 22G Redis持久化方案: 16G 内存(4.5G硬盘)

安装

官方下载最新版本 https://www.aerospike.com/download/server/4.3.1.5/ 推荐rpm包安装 ,基于二进制安装会出现共享库找不到冲突等问题 启动 sudo service aerospike start 停止 sudo service aerospike stop

关键配置

/etc/aerospike/aerospike.conf 集群发现 multicast mesh (Unicast) 存储方式 内存 磁盘 混合存储 纯内存模式 storage-engine memory replication-factor 2 memory-size 4G default-ttl 30d # 30 days, use 0 to never expire/evict. #https://discuss.aerospike.com/t/why-aerospike-evicted-data/165 high-water-memory-pct 70 #内存使用率达到70%,新的key将不可以再写入,已经写入的key可以修改。默认60% high-water-disk-pct 90 #磁盘使用率达到90%,新的key将不可以再写入,已经写入的key可以修改。默认50% stop-writes-pct 70 #内存使用率达到70%,将不可以再写入(可以删除)。默认90% # To use file storage backing, comment out the line above and use the following lines instead. storage-engine device { file /opt/aerospike/data/bar.dat filesize 16G data-in-memory true # Store data in memory in addition to file. } 副本机制,不需要raid hot key 问题解决方案 在namespace 里配置 transaction-pending-limit 0

性能

amc使用

读写tps 内存使用量 主/副对象个数 Master and Replica objects 客户端连接数 client_connections 节点变化时 迁入迁出的数据量 过期对象数 逐出对象数 副本数 状态统计和配置信息 Statistics & Config namespace各个set的记录数 udf脚本维护

跟REDIS对比

Redis 单线程 数据结构丰富,内存浪费 集群部署麻烦 扩容迁移数据麻烦 aerospike 多线程 集群管理自动扩容 AMC监控

上一篇     下一篇
那些年ofo的广告文案

aerospike数据库配置

技术文章合集2

curl实用技巧

Linux常用优化设置

金融危机十项注意