首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用git附件管理许多小(~5KB)文件

使用git附件管理许多小(~5KB)文件
EN

Stack Overflow用户
提问于 2015-11-02 06:52:44
回答 2查看 216关注 0票数 2

我已经使用git-附件来管理我的数据有一段时间了,我发现它非常令人满意。

然而,在处理我的神经成像数据时,git附件的性能相当欠缺。这类数据通常来自许多图像文件(5KB),例如每个参与者每个实验大约36.000个图像文件。您可以看到,即使只进行了几次实验,我的数据存储库也积累了上百万个文件。

在运行git annex syncgit annex get时,有没有办法缓解巨大的延迟?如果没有,有没有(大致)类似的软件可以让我管理多个神经影像数据存储库?

EN

回答 2

Stack Overflow用户

发布于 2015-11-24 03:41:49

大量的文件在多个层面上都是低效的;也许你可以改进神经成像软件?

如果这不是一个选项,您可以做几件事。第一种是将数据存储在SSD上。这些操作很慢,因为它们必须查询存储库中每个文件的状态,并且将它们放在SSD上会使每个磁盘的读取速度更快。

另一种方法是限制任何给定目录中的文件数量。您可能无法拆分来自单个实验的文件,但请确保您没有将来自多个实验的文件放在同一目录中。这是因为目录的访问时间通常与该目录中的文件数量成正比。

另一种方法是研究不同的文件系统或不同的文件系统配置;并不是所有的文件系统都适用于大目录。例如,在ext3/4上,您可以设置文件系统选项dir_index,以便它使用b树索引来加快对大型目录的访问速度。使用tune2fs程序对其进行设置。

最后一个绝望的选择可能是将所有这些小文件合并到归档中,例如tarball或zip文件。这可能会使使用它们变得复杂,但会极大地减少您必须处理的文件数量。您还可以通过脚本消除这带来的一些复杂性;例如,当您需要查看这些图像之一时,您的脚本可以将tarball提取到临时目录中,启动查看器,然后在退出时删除提取的文件。

票数 3
EN

Stack Overflow用户

发布于 2016-07-12 16:43:35

我同意db48x的观点。如果不能更改神经成像软件,您可以在每个实验中使用一个容器(大约180MB是一个合理的大小),并将其存储在git- container中。对于数据访问,您将此文件挂载为一个额外的文件系统,并在内存中进行回送。这应该会大大减少访问时间和git- access的负担。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33468157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档