问题标签 [parity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scripting - 是否有内置冗余的反向增量备份解决方案(例如 par2)?
我正在设置一个家庭服务器,主要用于备份。我有大约 90GB 的个人数据必须以最可靠的方式备份,同时仍保留磁盘空间。我想拥有完整的文件历史记录,这样我就可以在任何特定日期返回任何文件。
由于数据的大小,不能选择完整的每周备份。相反,我正在寻找增量备份解决方案。但是,我知道一组增量备份中的单个损坏会使整个系列(超出某个点)无法恢复。因此,简单的增量备份不是一种选择。
我研究了许多解决这个问题的方法。首先,我将使用反向增量备份,以便最新版本的文件丢失的可能性最小(旧文件不那么重要)。其次,我想用某种冗余来保护增量和备份。Par2 奇偶校验数据似乎非常适合这项工作。简而言之,我正在寻找具有以下要求的备份解决方案:
- 反向增量(以节省磁盘空间并优先考虑最近的备份)
- 文件历史记录(一种更广泛的类别,包括反向增量)
- Par2 奇偶校验数据增量和备份数据
- 保留元数据
- 高效的带宽(节省带宽;无需为每个增量复制整个目录)。大多数增量备份解决方案都应该以这种方式工作。
这将(我相信)确保文件完整性和相对较小的备份大小。我已经查看了许多备份解决方案,但它们存在许多问题:
- Bacula - 简单的普通增量备份
- bup - 增量并实现 par2 但不是反向增量且不保留元数据
- 重复性 - 增量、压缩和加密,但不是反向增量
- dar - 增量和 par2 很容易添加,但不是反向增量和没有文件历史记录吗?
- rdiff-backup - 几乎可以满足我的需要,但它不支持 par2
到目前为止,我认为 rdiff-backup 似乎是最好的折衷方案,但它不支持 par2。我想我可以很容易地将 par2 支持添加到备份增量中,因为它们不会在每个备份中都被修改,但是其余的文件呢?我可以为备份中的所有文件递归地生成 par2 文件,但这会很慢且效率低下,而且我不得不担心备份和旧 par2 文件期间的损坏。特别是,我无法区分更改的文件和损坏的文件,我不知道如何检查此类错误或它们将如何影响备份历史记录。有谁知道更好的解决方案?有没有更好的方法来解决这个问题?
感谢您阅读我的困难以及您可以给我的任何意见。任何帮助将不胜感激。
php - 在php中生成奇偶校验位
我有一行数据,其中包含数字并按“-”拆分,如下所示:2012-421-020-120407 现在我想在我的 php 代码中在此字符串的末尾生成一个奇偶校验位(0 或 1) . 但我不知道该怎么做。
提前致谢
networking - 块校验字符 (BCC) 错误突发检测
免责声明:不是家庭作业!
问题
我一直在为我的网络课程阅读密件抄送错误检测,并且对某些幻灯片中的一个特定解释感到有些困惑。
给定信息
我们提供了以下解释:
- 设 n = 行长(本例中 n=8)
- 请记住,并非突发中的所有位都需要出错,只有第一个和最后一个
- BCC 处理 (n+1) 位突发(在这种情况下为 9 位突发)
问题
有人可以向我解释这是怎么回事/它是如何工作的吗?
示例问题
(在过去的论文中看到)例如给定上图,在一个块中可以可靠地检测到多少个突发比特?解释你的答案。
非常感谢任何帮助!
编辑:添加参考幻灯片
c - 从 8 位数据中去除 C 中的奇偶校验位,后跟 1 个奇偶校验位
我有一个包含 8 位数据的位缓冲区,后跟 1 个奇偶校验位。这种模式会重复。缓冲区当前存储为八位字节数组。
示例(p 是奇偶校验位):
0001 0001 p000 0100 0p00 0001 00p01 1100 ...
应该成为
0001 0001 0000 1000 0000 0100 0111 00 ...
基本上,我需要剥离每第九位才能获得数据位。我怎样才能做到这一点?
这与某个时候在这里提出的另一个问题有关。
这是在 32 位机器上,因此相关问题的解决方案可能不适用。最大可能位数为 45,即 5 个数据八位字节
这是我到目前为止所尝试的。我创建了一个“布尔”数组,并根据八位字节的位集将位添加到数组中。然后,我查看数组的每第九个索引并通过它。然后将剩余的数组向下移动一个索引。然后我只剩下数据位了。我在想可能有更好的方法来做到这一点。
c - 使用预处理器计算奇偶校验位(通过 ref 调用的奇偶校验功能样式)
考虑我想在编译时生成奇偶校验。奇偶校验计算给出了文字常量,并且使用任何体面的优化器,它本身都会归结为一个常量。现在看一下使用C预处理器进行的以下奇偶校验计算:
这将在编译时计算奇偶校验,但会产生大量的中间代码,扩展为表达式的 16 个实例,u16
其本身可以是例如任意复杂的表达式。问题是C预处理器无法评估中间表达式,并且在一般情况下只能扩展文本(您可以强制它在原位进行整数运算,但仅适用于琐碎的情况,或者使用千兆字节的#defines)。我发现 3 位的奇偶校验可以通过算术表达式一次生成:([0..7]*3+1)/4
. 这将 16 位奇偶校验减少到以下宏:
仅扩展u16
6 倍。是否有更便宜(就扩展数量而言)的方式,例如 4,5 等的直接公式?位平价?(x*k+d)/m
对于范围 > 3 位的可接受(非溢出)值 k、d、m的形式的线性表达式,我找不到解决方案。有谁有更聪明的预处理器奇偶校验计算捷径?
bit-manipulation - 我们是将奇偶校验位添加到位集的前面还是后面
我们是将奇偶校验位添加到位集的前面还是后面?用于检查一组二进制值的位,其计算方式是使集合中 1 的数量加上奇偶校验位应始终为偶数(或偶尔应始终为奇数)。
java - (问)java文件中的异或计算问题
我想在我的代码中执行 XOR 操作。但是我在输出上有奇怪的行为。有时结果是正确的,但有时不是。情况是这样的:我有一个已经分成两部分的文件,然后我在两个文件(源文件)上使用 xor 操作创建了一个奇偶校验文件。所以现在我有三个文件。然后我删除了其中一个源文件。我想在奇偶校验文件和关于丢失文件的剩余源文件之间的异或操作中检索丢失的文件。我正在使用哈希函数来检查输出是否正确。如果该函数只被调用一次,一切都很好,但是每当我有很多操作来检索其他文件上丢失的文件时,有时我的函数会产生错误的结果。当他们产生错误的结果时,它' s 总是生成相同的文件。但是,如果我将 thread.sleep 放置 1 秒,即使我有超过 1000 次操作,它们也总是会生成正确的结果。
有人可以帮我找出我的代码的哪一部分被破坏了吗?
谢谢你对我糟糕的英语感到抱歉。
c# - 如何计算纵向冗余校验 (LRC)?
我试过维基百科的例子:http ://en.wikipedia.org/wiki/Longitudinal_redundancy_check
这是 lrc (C#) 的代码:
它说结果是“EC”,但我得到“71”,我做错了什么?
谢谢。
networking - 奇偶校验错误检测,特定方案如何不起作用的 4 位示例
嘿,所以我要为下周的期中考试做一些修改,我有一个问题,我无法找到材料或理解如何回答。
我可以看到单个错误、双重或三重错误是如何发生的,但我不确定 4 位错误会是什么样子。
serial-port - 使用标记/空间奇偶校验和无奇偶校验有什么区别?
创建三种类型的奇偶校验位的目的是什么,它们都定义了一个奇偶校验位完全不使用的状态?
“如果奇偶校验位存在但未使用,则它可能被称为标记奇偶校验(当奇偶校验位始终为 1 时)或空间奇偶校验(该位始终为 0)” -维基百科