标签: redundancy

为 Subversion 存储库创建冗余?

创建冗余 subversion 存储库的最佳方法是什么?

我有一个 subversion 存储库(通过 apache2 和 WebDAV 链接),并希望在发生中断时在不同的服务器上创建一个镜像存储库,但我不确定继续的最佳方式。

我认为提交后脚本可用于传播更改,但我不确定这是否是最佳方法,任何人都有任何意见

svn redundancy repository

5
推荐指数
0
解决办法
3285
查看次数

C# 中的冗余、可靠性和容错 - 哪里可以找到示例?

我想学习如何在 .net 中创建真正强大的应用程序 - 具有容错能力并且能够承受意外情况的应用程序。我在哪里可以找到有关此主题的文献/指南?到目前为止,我的运气并不好。

c# redundancy reliability

5
推荐指数
1
解决办法
4080
查看次数

如何使用 Hibernate 中的增量管理多对多关系的版本历史记录?

我们正在开发一个系统,一个人可以将文档发送给另一个人,一个文档可以有多个附件,如下所示。

Document {
       Set<Attachment> attachments;
}
Run Code Online (Sandbox Code Playgroud)

如果 X 向 Y 发送文档 (Doc1,Ver1) 并且 Y 编辑该文档,那么我们必须创建该文档的新版本 (Doc1,Ver2),以便 X 发送框不会反映 Y 所做的更改。

在我们的系统中,将有数百万个文档,其中每个文档可以有数百个附件。此外,一个文件可以在一段时间内通过 n 个人。

我们应该能够获取任何文档版本以及它当时的附件列表,所以我必须维护文档的版本,所以我立即想到的表结构是下面的。

Document - id primary key, ver_id primary key
Attachment - id, doc_id foreign key, doc_ver_id foreign key
Run Code Online (Sandbox Code Playgroud)

但是这种结构的问题是,如果 X 向 Y 发送一个带有 100 个附件的文档,而 Y 做了一些小的修改,那么我必须创建一个新版本并复制新版本的所有附件,其中大部分是相同的与之前的版本一样,由于我们将拥有数百万个文档,并且每个文档将通过 n 人,因此该模型将导致非常庞大的附件表,其中包含大量冗余数据。

所以我们想到了另一种附件结构,如下所示。

Document - id primary key, ver_id primary key
Attachment - id, doc_id, attached_ver_id, detached_version_id
Run Code Online (Sandbox Code Playgroud)

但是我无法使用这种结构为 Document 创建休眠实体,所以我的问题是,是否有任何其他表结构可以更好地以较少的冗余解决此问题,并且是否可以为上表创建休眠映射结构体。

redundancy database-design hibernate version hibernate-mapping

5
推荐指数
1
解决办法
580
查看次数

冗余编码?

这是一个计算机科学/信息理论问题,而不是一个简单的编程问题,所以如果有人知道一个更好的网站发布这个,请告诉我.

假设我有一个N位数据,将在M个消息中冗余发送,其中至少M-1个消息将被成功接收.我对以每个消息更少的比特编码N比特数据的不同方式感兴趣.(这类似于RAID但是在更小的级别,其中N = 8或16或32)

示例:假设N = 16且M = 4.那么我可以使用以下算法:

1st and 3rd message: send "0" + bits 0-7
2nd and 4th message: send "1" + bits 8-15
Run Code Online (Sandbox Code Playgroud)

如果我能保证4个消息中的3个消息将通过,则每个组中至少有一条消息将通过.因此,我可以用9位或更少的位来完成这项工作,可能有一种方法可以用更少的总位来做到这一点,但我不知道如何.

是否有一些简单的编码/解码算法来做这种事情?这个问题有名字吗?(如果我知道它叫什么,我可以谷歌吧!)

注意:在我的特定情况下,消息要么正确到达,要么根本没有到达(没有消息到达有错误).

(编辑:将第二部分移到另一个问题)

encoding redundancy information-theory

4
推荐指数
2
解决办法
1484
查看次数

Clang 3.1 + libc ++编译错误

我已经~/alt在Ubuntu 12.04上使用GCC-4.6成功构建并安装(在前缀下)LLVM-Clang主干(2012年4月23日),并使用此Clang-build成功使用libc ++.当我想使用它时,我必须提供两种-lc++,-libstdc++如下所示

/home/per/alt/bin/clang -x c++ -I/home/per/alt/include/v1 -L/home/per/alt/lib -std=gnu++0x -g -Wall ~/f.cpp -lm -lc++ -lstdc++ -lpthread -o f
Run Code Online (Sandbox Code Playgroud)

编译f.cpp包含

#include <iostream>

using std::cout;
using std::endl;

int main(int argc, const char * argv[]) {
    cout << "sxx" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我省略,-lstdc++我会收到链接错误

/home/per/alt/include/v1/ostream:989: error: undefined reference to '__cxa_begin_catch'
/home/per/alt/include/v1/ostream:993: error: undefined reference to '__cxa_end_catch'
/home/per/alt/include/v1/ostream:993: error: undefined reference to '__cxa_end_catch'
/tmp/f-4l9mgl.o(.eh_frame+0xd3): error: undefined reference to '__gxx_personality_v0'
clang: error: linker command …
Run Code Online (Sandbox Code Playgroud)

c++ redundancy gcc clang c++-standard-library

4
推荐指数
1
解决办法
4246
查看次数

Vowpal Wabbit交互冗余

我很好奇大众通过-q参数创建交互术语的方式.

为了说明的目的,我使用这个玩具数据,称为cats.vm:

1 |a black |b small  green |c numvar1:1.62 numvar2:342 |d cat |e numvar3:554
1 |a white |b large yellow |c numvar1:1.212 numvar2:562 |d cat |e numvar3:632
-1 |a black |b small green |c numvar1:12.03 numvar2:321 |d hamster |e numvar3:754
1 |a white |b large green |c numvar1:5.8 numvar2:782 |d dog |e numvar3:234
-1 |a black |b small yellow |c numvar1:2.322 numvar2:488 |d dog |e numvar3:265
1 |a black |b large yellow |c numvar1:3.99 numvar2:882 |d hamster |e numvar3:543 …
Run Code Online (Sandbox Code Playgroud)

redundancy quadratic feature-selection vowpalwabbit

4
推荐指数
1
解决办法
940
查看次数

从列表中删除重复的元素

我有一个listcharacter vectorS:

my.list <- list(e1 = c("a","b","c","k"),e2 = c("b","d","e"),e3 = c("t","d","g","a","f"))
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个function对于任何character横跨出现不止一次listvectorS(在每vector一个character只能出现一次),将只保留第一次亮相.

因此,此示例的结果列表将是:

res.list <- list(e1 = c("a","b","c","k"),e2 = c("d","e"),e3 = c("t","g","f"))
Run Code Online (Sandbox Code Playgroud)

注意,可以消除整个vector中的list整数,使得结果list中的元素数量不一定必须等于输入list.

redundancy r list

4
推荐指数
1
解决办法
1730
查看次数

使用里德所罗门完全恢复数据

我正在测试此存储库中的 Reed Solomon 算法,以便在外部发生变化时恢复信息。

假设:

m = bits per symbol
k = data
r = redundance 
n = bits per block = r + k = 2^m - 1
t = error correction = (n - k) / 2
Run Code Online (Sandbox Code Playgroud)

我可以使用以下参数编码和恢复信息:

m = 8
n = 255
r = 135
k = 120
t = 67
Run Code Online (Sandbox Code Playgroud)

并且完美运行,我可以恢复 67 个错误。

我的假设是:

  • 只有数据会被破坏,没有冗余。
  • 要获得完全恢复 n = 3 * k --> r = 2 * k。
  • 那么 n = 255 所以在这种情况下 r …

c++ redundancy error-correction reed-solomon

4
推荐指数
1
解决办法
230
查看次数

我应该选择代码重复还是与 api 服务整合 - JS

我正在开发一个大型 CMS 系统,其中特定模块及其子模块利用相同的后端 API。除了“文档类型”之外,每个子模块的端点完全相同。

所以遵循这样的模式:

api/path/v1/{文档类型}

api/path/v1/{document-type}/{id}

api/path/v1/{document-type}/{id}/versions

随着时间的推移,使用这个 API 的模块数量不断增加,我留下了许多实现 7 CRUD 方法的冗余 api 服务:

getAllXs() {...}
getX(id) {...}
getXVersion(id, versionId) {...}

etc...
Run Code Online (Sandbox Code Playgroud)

使用看起来像这样的单个方法

getAllXs() {
    let endpoint = BASE.URL + ENDPOINTS.X;
    let config = ...
    return http.get(endpoint, config)
        .then(response => response.data);
        .catch(...);

}
Run Code Online (Sandbox Code Playgroud)

其中 X 将是特定文档类型的名称。

我决定做一个单一的服务并做这样的事情:

const BASE_URL = window.config.baseUrl + Const.API_ENDPOINT;
const ENDPOINTS = {
  "W": "/v1/W/",
  "X": "/v1/X/",
  "Y": "/v1/Y/",
  "Z": "/v1/Z/",
}

getAllDocuments(docType, config={}) {
  let endpoint = BASE_URL + ENDPOINTS[docType];
  return http.get(endpoint, config) …
Run Code Online (Sandbox Code Playgroud)

javascript architecture api redundancy design-patterns

4
推荐指数
1
解决办法
122
查看次数

为什么c#中的Random构造函数在方法的最后指定Seed参数?

在这里检查了.Net的Random类的源代码.令我惊讶的是最后一行

  public Random(int Seed) {
    int ii;
    int mj, mk;

    //Initialize our Seed array.
    //This algorithm comes from Numerical Recipes in C (2nd Ed.)
    int subtraction = (Seed == Int32.MinValue) ? Int32.MaxValue : Math.Abs(Seed);
    mj = MSEED - subtraction;
    SeedArray[55]=mj;
    mk=1;
    for (int i=1; i<55; i++) {  //Apparently the range [1..55] is special (Knuth) and so we're wasting the 0'th position.
      ii = (21*i)%55;
      SeedArray[ii]=mk;
      mk = mj - mk;
      if (mk<0) mk+=MBIG;
      mj=SeedArray[ii];
    }
    for (int k=1; …
Run Code Online (Sandbox Code Playgroud)

c# random redundancy assignment-operator

3
推荐指数
1
解决办法
117
查看次数