描述
镜像是软件遗产存档,独立于软件遗产计划。最小镜像由两部分组成:
图形存储(通常是swh.存储),其中包含存档的Merkle DAG结构,除了这个源代码文件的实际内容(AKA blob),
对象存储(通常是swh.obj存储),其中包含与存档的源代码文件相对应的所有blob。
然而,可用的镜像也需要其他人能够访问。因此,a适当的镜子还应允许:
镜像最初通过使用数据进行填充并保持最新来自软件遗产基于卡夫卡杂志并检索来自的blob对象(文件内容)软件遗产 对象存储器.
注释
不需要使用软件遗产软件堆栈。其他技术,包括不同的存储方法,可以是已使用。但我们将在本文档中重点介绍镜像的情况使用软件遗产软件堆栈。
请参阅承载镜像要求的完整描述托管镜像。
镜像图形存储
图形的复制基于日志,使用卡夫卡作为事件流媒体平台。
在软件遗产方面,对档案进行的每一次添加都包括添加了数据模型对象。新对象也被序列化作为一个消息包字节字符串,用作添加到专门用于对象类型的Kafka主题。
卡夫卡的主要主题软件遗产 数据模型是:
swh.日志.objects.content
swh.journal.objects.directory目录
swh.日志.objects.extid
swh.日志.objects.metadata_authority
swh.日志.objects.metadata_fetcher
swh.日志.objects.origin_visit_status
swh.日志.objects.origin_visit
swh.日志.objects.origin
swh.journal.objects.raw_extrinsic元数据
swh.日志.objects.release
swh.日志.对象.修订
swh.日志.objects.skipped_content
swh.journal.objects.snapshot(日志对象快照)
为了建立图的镜像,需要部署支持堆栈的检索所有这些主题并可靠地存储其内容。例如aKafka集群配置为托管的主要Kafka代理的副本软件遗产会做这项工作(尽管它本身不是很有用)。
可以使用设置更有用的镜像存储组件,使用名为重放器由提供swh.storage.replay软件
模块。
镜像对象存储
文件内容(Blob)为不直接存储在swh.日志.objects.contentKafka主题,它只包含有关例如各种加密哈希。一个单独的组件位于负责从存档中复制blob对象并将其存储在本地对象存储实例。
一个单独的swh-期刊客户端应订阅swh.日志.objects.content获取blob对象流的主题标识符,然后从主Software Heritage中检索相应的blob对象存储,并将其存储在本地对象存储中。
中提供了此组件的参考实现内容回放程序.