照片存储的读操作
传递给一个读操作的参包含Haystack ID,照片的 Key, 尺寸以及 Cookie。办事器事先在缓存中依照照片的Key和所需文件的偏移进行查找。如果找到了它,并向haystack发出读取词图像的请求。依照上面说的,haystack的删除操作其实不更新它的索引记实,因此添加到内存中的索引可以包含以前删除的照片的内容。当阅读以前的删除的照片失败后,系统将在内存的索引中色绘制词图片的偏移量为0.
照片存储的删除操作
通知 Haystack 执行删除操作之后,内存中的索引缓存会被更新,将偏移量设置为0,暗示照片已被删除。
重新整理(压缩)
重新整理(压缩)是一种收受领受删除和重复的针(针使用相同的Key)的在线操作。它会通过复制针跳过任何重复或删除的条目成立一个新的haystack。一旦此操作完成它就归去替换失落内存中的文件和布局。
HTTP 办事器
Http 框架使用的是简单的基于开源的libevent库的 evhttp 办事器。使用多线程,每个线程都可以伶仃措置一个 HTTP 请求。因为我们的系统消耗年夜多是I/O操作,HTTP办事器的性能其实不很重要。
结束语
Haystack 是一个基于 HTTP 的对象存储,包含指向实体数据的指针,该架构消除文件系统元数据的开消,并实现将全部索引直接存储到缓存,以最小的 I/O 操作实现对比片的存储和读取。
本文编译自:标点符,原文地址。