作者回复: 这是个好问题。 增加从节点时,需要把全库数据拷贝到从节点上。我自己现在考虑的有两种方法:一种还是用写前日志,日志拷贝到从节点进行回放,但是这会带来双写的问题。另一种是,主节点在NVM上做快照,但是不写文件,从节点上直接从主节点的NVM上通过远程内存拷贝来实现复制,这个需要基于RDMA来做。
作者回复: 这个问题很好。目前,应用程序是把本来要保存到磁盘上的数据保存到持久化内存上了,但是应用程序运行时的堆和栈还是在DRAM上,进程重启这些运行时信息就丢了。 所以,如果想把应用程序本身的运行时状态,例如堆栈等,也保存到持久化内存上,这个需要对操作系统的内核做修改。目前还没有成熟的方案。
作者回复: 回答的很好。 而且对NVM使用的思考非常赞。NVM的读写延迟(几百ns级别)还是要低于SSD的(几十到几百us级别),所以使用NVM替换SSD是可以解决Pika操作慢的问题。 不过,NVM的每GB成本还是要高于SSD的,这个在实际应用中要考虑。
作者回复: 对主从集群的作用理解到位。
作者回复: Intel有在推基于AEP的Redis,可以看下 https://www.intel.com/content/dam/www/public/us/en/documents/solution-briefs/redis-enterprise-brief.pdf 另外,github上有基于PMem的Redis实现,是基于Redis 4.0实现,有些旧了,不过可以作为一个参考。 https://github.com/pmem/pmem-redis 另外,阿里云上的Tair有基于AEP做扩展,参考 https://developer.aliyun.com/article/776609
作者回复: 对主从集群作用的理解很到位 :)
作者回复: 大流量情况下,单个实例的压力太大,从节点是可以用来分担读压力的。