SHMemCache:在OpenSHMEM上启用Memcached
1. 引言
SHMemCache是一种在OpenSHMEM上启用Memcached的技术,它通过一系列创新设计,如op项、OpenSHMEM代理、共享内存池、对称环形缓冲区等,提高了Memcached的性能和并发能力。本文将详细介绍SHMemCache的设计、实现和评估。
2. OpenSHMEM代理
2.1 op项
op项代表SHMemCache操作的一个实例,它具有类似内存的通信语义,与现有Memcached的面向连接通信有很大不同。op项由客户端使用一定大小的连续内存空间创建,包含命令类型、服务器名称、键/值长度和值等操作所需的所有信息。通过使用相同的数据结构,服务器、客户端和代理可以在SHMemCache框架中无缝交换和利用op项,避免了传统字符串或二进制消息传递所需的复杂消息拼接或分离。但预定义的op项结构有键/值空间的最大容量限制,对于超大消息,SHMemCache会调度多个op项,并在收到所有成员op项时进行重构。
2.2 服务器/客户端的透明网络
在SHMemCache中,客户端和服务器无需管理网络通信。它们只需将op项放置在与代理共享的相应共享内存段中,接收时从另一个共享内存段获取。代理负责将目标节点的主机名转换为PE ID,通过参考一个将所有参与主机名映射到相应PE ID的映射表来实现,该表由OpenSHMEM例程shmem broadcast()创建。这种透明网络不仅减少了服务器和客户端的工作量,还大大提高了SHMemCache执行的并发能力。
2.3 共享内存池
代理和服务器
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



