InfiniCache:在临时无服务器功能之上构建的内存中缓存

2021-01-15 20:29:48

InfiniCache是​​同类中第一个,具有成本效益的,高性能的内存中对象缓存,它建立在临时云功能之上。 InfiniCache比传统的云缓存服务便宜31倍至96倍。

2020年3月7日:更新了部署过程,并修复了deploy /下脚本中的错误(路径错误)。

我们建议EC2代理和Lambda函数位于同一VPC网络下,并在具有强大CPU和高带宽的c2实例上部署InfiniCache(c5n系列可能是一个不错的选择)。

转到AWS IAM控制台,并为lambda缓存节点(Lambda函数)创建角色。

请参阅本文。 (如果不想在VPC下运行InfiniCache,则可以跳过此步骤)。

创建S3存储桶以存储Lambda代码的zip文件和Lambda函数输出的数据。在下一步中,请记住该存储桶的名称以进行配置。

在lambda / collector / collector.go中编辑目标S3存储桶,此存储桶用于CloudWatch的账单有效期日志。

在deploy / deploy_function.go中编辑aws设置和VPC配置。如果不想在VPC下运行InfiniCache,则不需要修改子网和securityGroup设置。

ROLE =" arn:aws:iam :: [aws帐户ID]:role / [角色名称]"地区=" us-east-1" ... ...子网= [] *字符串{aws。字符串("您的子网1"),aws。字符串("您的子网2"),} securityGroup = [] *字符串{aws。字符串("您的安全组")}

运行脚本以创建和部署lambda函数(此外,如果您不想在VPC下运行InfiniCache,则需要在deploy / create_function.sh中将vpc标志设置为false)。

const AWSRegion =" us-east-1" const NumLambdaClusters = 400 const LambdaPrefix ="您的Lambda函数前缀" const ServerPublicIp ="" //如果使用VPC,请将其留空。

运行make start启动代理服务器。 make start不会向控制台输出任何内容。如果要检查日志消息,则需要在proxy / proxy.go中将调试标志设置为true。

要停止代理服务器,请运行make stop。如果make stop无法正常工作,则可以使用pgrep代理,然后使用pgrep go查找pid,然后检查infinicache pid并杀死它们。

〜$运行client / example / main.go2020 / 03/08 05:05:19 EcRedis Set foo 146309302020/03/08 05:05:19 EcRedis得到foo 3551124(2677371 865495)

@inproceedings {246184,作者= {王奥和张静源,马晓龙和阿里·安瓦尔和卢卡斯·鲁普雷希特和迪米特里奥斯·斯库蒂斯,瓦西里·塔拉索夫,冯彦和岳成},标题= {InfiniCache:利用临时的无服务器功能来建立成本 有效内存缓存},书名= {第18届{USENIX}文件和存储技术会议({FAST} 20)},年= {2020},isbn = {978-1-939133-12-0},地址= {Santa 加利福尼亚州克拉拉}},页= {267--281},网址= {https://www.usenix.org/conference/fast20/presentation/wang-ao},发布者= {{USENIX}协会},月份= 2月 ,}