二进制增量存储

2024-05-08

我正在寻找一种二进制增量存储解决方案来版本化大型二进制文件(数字音频工作站文件)

使用 DAW 文件时,与用于存储原始数据(波形)的大量数据相比,大多数更改(尤其是在混音结束时)都非常小。

如果我们的 DAW 文件有一个版本控制系统,让我们可以回滚到旧版本,那就太棒了。

系统只会保存每个版本的二进制文件之间的差异(diff)。这将为我们提供从当前版本更改为先前版本的指令列表,而无需存储每个版本的完整文件。

当前是否有任何版本控制系统可以执行此操作?我读过 SVN 使用二进制差异来节省存储库中的空间...但我也读到它实际上并没有对二进制文件仅这样做文本文件...不确定。有任何想法吗?

我现在的行动计划是继续研究现有的工具,如果不存在,则熟悉 c/c++ 读取二进制数据并自己创建工具。


我无法评论通过网络提交大文件时可能存在的可靠性或连接问题(一篇引用的帖子暗示了问题)。但这里有一些您可能会觉得有用(或没有用)的经验数据。

我今天一直在做一些测试,研究磁盘寻道时间,因此手头有一个相当好的测试用例。我发现你的问题很有趣,所以我对我正在使用/修改的文件进行了快速测试。我创建了一个本地 Subversion 存储库,并向其中添加了两个二进制文件(大小如下所示),然后在对文件进行更改后提交了几次。较小的二进制文件 (.85 GB) 每次只是将数据添加到其末尾。较大的文件 (2.2GB) 包含表示由“随机”整数数据组成的 b 树的数据。在提交之间对该文件的更新涉及添加大约 4000 个新的随机值,因此修改的节点会在整个文件中均匀分布。

以下是原始文件大小以及提交后本地 Subversion 存储库中所有文件的大小/数量:

file1    851,271,675  
file2  2,205,798,400 

1,892,512,437 bytes in 32 files and 32 dirs

第二次提交后:

file1    851,287,155  
file2  2,207,569,920  

1,894,211,472 bytes in 34 files and 32 dirs

第三次提交后:

file1    851,308,845  
file2  2,210,174,976  

1,897,510,389 bytes in 36 files and 32 dirs

提交有点冗长。我没有仔细注意,因为我正在做其他工作,但我认为每一项可能需要 10 分钟。检查具体修订版大约需要 5 分钟。我不会根据我的结果以某种方式提出建议。我只能说它似乎工作正常并且没有发生错误。文件差异似乎运行良好(对于这些文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制增量存储 的相关文章

  • 在源代码管理中维护存储过程

    你们如何维护存储过程 由于一些不同的原因 我想保留它们的版本 本周末我还将设置 Cruisecontrol net 和 nant 来自动化构建 我正在考虑编写一些代码 为我的开发数据库中的所有表 sprocs udf xml 模式生成创建脚
  • 如何使用 hibernate JPA 2 以二进制形式存储 uuid

    我有一个关于通过休眠持久化 JPA2 在数据库中以二进制形式存储字符串uuid的问题 我现在正在使用这段代码 private UUID id Id Type type uuid char GeneratedValue generator s
  • 为什么 -INT_MIN = INT_MIN 在有符号的二进制补码表示中?

    我仍然没有找到为什么最低的有符号负数没有等效的有符号正数的原因 为简单起见 我的意思是 3 位二进制数 100 是 4 但我们不能有符号格式的正 4 因为我们不能 它溢出了 那么我们如何知道补码 1000 是 4 1000 0000 是 1
  • 是否有将二进制数据打包成 UTF-16 字符串的标准技术?

    在 NET中 我有任意二进制数据存储在byte 例如图像 现在 我需要将该数据存储在string 旧 API 的 注释 字段 有没有标准技术packing将此二进制数据转换为string 我所说的 打包 是指对于任何相当大且随机的数据集 字
  • 替代位置基础系统(十六进制、八进制、二进制)如何工作?如何将它们转换为十进制?

    我以前在编程课上没有学过这一点 但现在我需要知道它 有哪些学习这些数字以及如何转换它们的好资源 我几乎会像记住乘法表一样记住这些 在我们日常的十进制系统中 基数或radix http en wikipedia org wiki Radix
  • 不同GIT版本的GIT合并结果不同

    在不同的 GIT 版本上运行 merge 命令我们得到不同的结果 命令是 git merge no ff origin master codeline Results 版本2 1 4 gt 合并成功 版本1 7 1 gt 同一提交上的同一合
  • 在 Java 中加载和缓存图像的最佳方法是什么?

    我有超过一千个 16 x 16 像素图块图像的大量集合 我在 Java 中制作的游戏需要这些图像 在不耗尽 JVM 可用内存的情况下存储切片的最佳方法是什么 我认为生成 1000 BufferedImages 可能并不明智 保持图像准备就绪
  • 测试由于浮点限制而导致的舍入误差

    我最近了解到浮点的主要限制之一 事实上 某些数字无法以二进制正确表示 因此可能给出的答案对于您的目的来说不够准确 知道round 2 675 2 and round 2 665 2 两者相等2 67我尝试编写一些代码来给出具有此属性的数字列
  • SQL版本控制方法

    SO 有几个关于 SQL 版本控制的问题 网上有很多资源 但我找不到完全涵盖我想要做的事情的东西 首先 我在这里谈论一个方法论 我熟悉各种源代码控制应用程序 也熟悉 Red Gate 的 SQL Compare 等工具 并且我知道如何编写应
  • “Git 推送非快进更新被拒绝”是什么意思?

    我正在使用 Git 来管理我的两台计算机和我的开发 我尝试将更改提交到 GitHub 但收到此错误 无法将一些参考推送到
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • 单元测试类是否应该与其余代码一起置于版本控制之下?

    如果我为开发项目创建测试套件 这些类是否应该与项目代码的其余部分一起受版本控制 是的 没有理由不将它们置于源代码管理中 如果测试发生变化怎么办 如果接口发生变化 需要测试更改怎么办
  • Android 11 上的新 BlobStoreManager 读写

    我以前使用外部存储来存储我想在应用程序之间共享的特定数据 没有任何内容提供者 主机 File folder new File Environment getExternalStorageDirectory FOLDER NAME File
  • 使用 IE11 的工作程序使用 multipart/form-data 发送二进制数据

    我正在尝试发送multipart form data来自 IE 的工作人员 我已经使用 Chrome Firefox Safari 完成了此操作formData对象 不支持IE 我需要一个手动的 我发送的二进制数据是 crypto js 加
  • Maven 中不同配置文件的不同 SCM

    在我的项目中 我们必须使用 maben build number 插件来构造 jar 的最终名称 为此我们使用 SCN 的修订版 因此我们需要 SCM 但是我们在无法直接访问的受控环境和本地测试环境上有两个 SVN 因此对于我们的 poup
  • 除法和乘法 2 的幂

    我在一篇论文中读到 数字除以 2 的幂并乘以 2 的幂是一个微不足道的过程 我在互联网上搜索了很多解释 但没有得到它 任何人都可以用简单的语言解释一下这实际上意味着什么 从位操作的角度来看 这是微不足道的 乘以2相当于左移1位 除法相当于右
  • TFS 2017 - 如何构建/交付仅更改的文件?

    我正在使用 TFS 2017 关于标题 我找到了一个术语 增量构建 但是 我找不到在哪里设置它 我尝试在 构建参数 p IncrementalBuild true 中添加增量参数 但总是收到错误 表明这是错误的参数 是否可以仅交付 或构建并
  • 将bitbucket发布到数字海洋

    我本质上是试图使用 bitbucket 来理解 git 的概念 我一直在通过修改本地帐户和 bitbucket 帐户之间的文件来练习版本控制 事实证明这很有帮助 现在我正在尝试弄清楚如何将文件从 bitbucket 或者我猜是 GitHub
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首

随机推荐

  • 使用现有的自定义库从 HttpHandler 访问 Ninject Kernel.Get()

    我有一个 ASP Net Webforms 应用程序 它使用 Ninject 2 2 0 0 我有一个继承自 Microsoft Web ImageHandler 类的 HTTPHandler 在其中我需要访问我创建的服务类的实例 因为我无
  • 指定的可执行文件不是该操作系统平台的有效应用程序。

    我不断收到错误消息System ComponentModel Win32Exception The specified executable is not a valid application for this OS platform 当
  • 适当支持不区分大小写的映射

    我想实现一个不区分大小写的哈希映射 这个问题本身并不新鲜 但我想添加额外的功能 但不知道要采取什么总体方向 我希望客户能够做这样的事情 boolean preserve case true Map
  • 如何将现有的窗体添加到 vb6 项目中?

    我的 vb6 项目中有一个表单 Search frm 我想添加具有不同名称 SearchNew frm 的相同表单 我复制了表单 Search frm 并重命名为 SearchNew frm 并尝试添加到项目中 但它给我一个错误 Searc
  • django 管理站点导航侧边栏搞砸了

    我最近在我的项目中添加了一个包并做了一个pip freeze gt requirements txt然后 然后我做了pip install r requirements txt到我的本地 它添加了一个侧边栏 I did a pip inst
  • 当派生类中重写该方法时,如何使用派生类 Object 调用基类方法?

    class A public void m1 System out println hi base class class B extends A public void m1 System out println hi derived p
  • Jboss 7战争部署失败

    Jboss 7 war 部署失败 我在日志中收到以下错误消息 ERROR org jboss as server deployment scanner DeploymentScanner threads 1 JBAS015052 Did n
  • 区块链是分布式数据库吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 大多数文章都将区块链视为分布式数据库 这是否意味着我们可以在区块链中存储任何类型的数据 例如音频 视频 pdf 将区块链视为相对较慢
  • 如何在 dijkstra 算法中以 O(log n ) 时间更新优先级队列中的键?

    过去一周我一直在研究 dijkstra 算法 我在 java 中有正确的运行代码 它使用数组来计算标准 findMin 函数 该函数为您提供距离最小的顶点 显然它是 O n 现在我希望使用优先级队列 最小堆 来实现它 我的思考过程是 whi
  • PHP邮件发送附件但附件为空

    基本上 我正在尝试通过 PHPMail 发送 PDF 电子邮件已发送 我在 Outlook 中完美收到 问题是附件已损坏并且无法打开 我什至尝试发送 HTML 但也是空的 我尝试在论坛中进行研究 尝试了几个 工作代码 其他人让它与此代码一起
  • 从 iframe 中打开 iframe fancybox,以便它在父级中打开

    我可以让它工作 从 iframe 中打开一个 fancybox IMAGE a href Open something a 我遇到的问题是我需要打开一个 fancybox IFRAME 示例代码或任何想法将不胜感激 Thanks 简单来说
  • 计时器显示负的已用时间

    我正在使用一个非常简单的代码来计算每个循环的时间for陈述 它看起来像这样 import time for item in list of files Start timing this loop start time clock Do a
  • __device__ __constant__ 常量

    有什么区别吗 在 CUDA 程序中定义设备常量的最佳方法是什么 在 C 主机 设备程序中 如果我想将常量定义在设备常量内存中 我可以这样做 device constant float a 5 constant float a 5 问题 1
  • 未捕获的类型错误:属性...不是函数 - 页面加载后

    我正在使用对外部 API 的跨域 Ajax 请求 有时它会失败 并显示控制台消息 Uncaught TypeError Property photos of object object DOMWindow is not a function
  • 自定义绘制的 UITableViewCell 中的可访问性

    当您进行自定义绘图时 UITableViewCells 滚动速度会显着提高 但是辅助功能会中断 应该如何向这样的单元添加辅助功能支持 老问题了 但 iOS 已经内置了对这种辅助功能的支持 看看UIAccessibilityContainer
  • 页面刷新后如何注销用户?

    我正在跟进谷歌的指南 https developers google com identity sign in web sign in sign out a user注销用户 考虑到gapi auth2刷新页面后将是未定义的 我正在做 if
  • 运行Java程序时出错

    我正在尝试使用 netbeans 运行我的 java 程序 但收到此错误 有什么建议吗 Exception in thread AWT EventQueue 0 java lang NullPointerException at javax
  • 如何使用 mongo-go-driver 有效地将 bson 转换为 json?

    我想将 bson 转换为mongo go 驱动程序 https github com mongodb mongo go driver有效地转换为 json 我应该小心处理NaN 因为json Marshal失败如果NaN存在于数据中 例如
  • ListView.hasWindowFocus==true 但子视图 hasWindowFocus==false

    有时我注意到 对于 View v v hasWindowFocus false View v getParent hasWindowFocus true 如果我正确理解文档 情况就不应该如此 v getParent 是 ListView 的
  • 二进制增量存储

    我正在寻找一种二进制增量存储解决方案来版本化大型二进制文件 数字音频工作站文件 使用 DAW 文件时 与用于存储原始数据 波形 的大量数据相比 大多数更改 尤其是在混音结束时 都非常小 如果我们的 DAW 文件有一个版本控制系统 让我们可以