小编kee*_*lar的帖子

我应该什么时候在Cassandra进行清理?

卡桑德拉nodetool有一个叫做的命令cleanup:

清理[keyspace] [cf_name]

触发立即清除不再属于此节点的密钥.这对于主要压缩对磁盘空间使用的临时增加和磁盘I/O的增加而言所起的节点具有大致相同的影响.(可选)获取列族名称列表.

我的问题是:

  1. 具有不属于它的密钥的节点何时会?
  2. 我什么时候应该清理?
  3. 我应该定期清理(例如每周一次)吗?

database-administration cassandra nodetool

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

rvalue引用和函数的返回值

我是c ++ 11的新手,在阅读C++ 11 FAQ时遇到以下问题.

假设我们有一个函数f()返回一个类型的值X,那么我们有以下方法来存储它的返回值:

X a = f();    // copy assignment
X&& b = f();  // move assignment
Run Code Online (Sandbox Code Playgroud)

根据C++ FAQ,第二个避免了不必要的副本.

我的问题是:第二个总是接收函数调用返回值的首选方法吗?另外,auto c = f();相当于上述任务之一?谢谢.

c++ function move rvalue-reference c++11

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

Dijkstra 或 TSP

我正在开发一个网络应用程序来显示地图和某些点之间的路线。我想知道这些点之间的短路线。

现在我正在使用dijkstra 算法,但我被要求使用TSP

我希望第一个点和最后一个点是相同的,使用 dijkstra 我必须将最后一个点设置为相同,但使用 TSP 它会自动设置。

两者是相同的算法吗?只是经过修改还是不同的算法?

有什么网页可以查看TSP的伪代码吗?

routes dijkstra

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

使用Box-Muller变换生成具有任意sigma和mean的伪随机数

我正在尝试实现Box-Muller变换以生成具有高斯分布的伪随机数.显然,此方法仅生成带有sigma 1和mean 0的数字.如何使用它生成具有任意sigma的数字并表示?

language-agnostic random algorithm

3
推荐指数
2
解决办法
7566
查看次数

Cassandra:删除节点

我想从我的Cassandra集群中删除一个节点,并且正在关注这两个相关问题(此处此处)以及Cassandra文档.但我仍然不确定确切的过程.

我的第一个问题是:以下方法从Cassandra集群中删除节点是否正确?

  1. decommission 我想删除的节点.
  2. removetoken 我刚刚退役的节点.

如果上述过程是正确的,那么如何判断退役过程是否完成以便我可以继续进行第二步?或者在步骤1之后立即执行第2步是否安全?

此外,Cassandra文件说:

您可以将具有nodetool decommission的节点从群集中移出到活动节点,或者nodetool removetoken(到任何其他计算机)以删除死亡节点.这会将旧节点负责的范围分配给其他节点,并在那里复制适当的数据.如果使用退役,则数据将从退役节点流式传输.如果使用removetoken,则数据将从剩余的副本流中传输.

从要退役的节点中不会自动删除任何数据,因此如果要将节点重新置于环上不同令牌的服务中,则应手动删除该节点.

这是否意味着退役节点是死节点?此外,由于没有从被退役的节点中自动删除数据,如何确定何时从退役节点中删除数据是安全的(即,如何知道数据流何时完成?)

database-administration cassandra nodetool

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

为什么IdentityMapper会在org.apache.hadoop.mapreduce库中消失?

在较旧版本的hadoop库(即org.apache.hadoop.mapred.lib)中,有一个名为IdentityMapper的Mapper的基本实现,它实际上将所有键值对传递给Reducer.

但是,我发现在较新版本的hadoop库(org.apache.hadoop.mapreduce.lib)中,它没有任何名为IdentityMapper的类(Mapper的所有子类都可以在这里找到 ).

我可以知道IdentityMapper是更改其名称还是在新库中消失?

如果答案是第二个,我可以进一步了解IdentityMapper消失的原因吗?这是否意味着我们可以在没有Mapper的情况下链接多个Reducers?

java apache hadoop mapreduce

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

理解 std::move 和 unique_ptr

我是 c++11 的新手,并试图理解std::moveand 的含义unique_ptr并编写了以下代码,我以两种不同的方式std::move在 aunique_ptr上使用这些代码:

void unique_ptr_plain_move() {
  unique_ptr<int> intptr(new int(10));
  unique_ptr<int> intptr2;

  printf("*intptr = %d\n", *intptr);
  intptr2 = std::move(intptr);
  printf("*intptr2 = %d\n", *intptr2);
  // as expected, crash here as we have already moved intptr's ownership.
  printf("*intptr = %d\n", *intptr);
}

/////////////////////////////////////////////

void function_call_move(unique_ptr<int>&& intptr) {
  printf("[func] *intptr = %d\n", *intptr);
}

void unique_ptr_function_call_move() {
  unique_ptr<int> intptr(new int(10));

  printf("*intptr = %d\n", *intptr);
  function_call_move(std::move(intptr));
  // this does not crash, intptr still has the …
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers move c++11

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

理解移动构造函数,std :: move和析构函数

我是c ++ 11的新手,并编写了以下代码来了解其std::move工作原理:

#include <queue>
#include <stdio.h>

class X {
 public:
  X(int x) : x_(x) {}
  ~X() {
    printf("X(%d) has be released.\n", x_);
  }

  X(X&&) = default;
  X& operator = (X&&) = default;

  X(const X&) = delete;
  X& operator = (const X&) = delete;
 private:
  int x_;
};


int main() {
  std::queue<X> xqueue;
  for (int x = 0; x < 5; ++x) {
    xqueue.push(std::move(X(x)));
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,它会生成以下输出,表示每个的析构函数X(n)都被调用了两次:

X(0) has be released.
X(1) has be …
Run Code Online (Sandbox Code Playgroud)

c++ destructor move c++11

2
推荐指数
1
解决办法
461
查看次数

LevelDB(RocksDB)有哪些CAP类型?

在评估几个分布式系统的过程中,我遇到了CAP-Theorem.不幸的是,我找不到LevelDB的分类或更具体的RocksDB.

以下是实际问题:LevelDB/RocksDB是什么类型的帽子类型?为什么?

distributed leveldb cap-theorem rocksdb

2
推荐指数
1
解决办法
596
查看次数

RocksDB可以处理多个只读客户端吗?

我需要一个键值数据库,如redis或memcached,但不是在内存中而是在磁盘上.在填充数据库之后(我们定期并从头开始),我实际上只需要get操作,但是从许多不同的过程(因此Kyoto Cabinet和LevelDB对我不起作用).

我需要500万个密钥和~10-30gb数据,因此其他一些简单的数据库也不能正常工作.

我找不到有关RocksDB是否可以处理多个只读客户端的任何信息; 在我的操作系统上构建并不是直截了当所以我想在做之前先问一下.如果它不能,是否有任何数据库可以工作?最好用Ubuntu包和Python绑定;-).

我们现在只使用许多小文件,但它真的很糟糕,因为我们想要简单的备份,复制等.我也怀疑这可能会导致速度减慢,但这并不重要.

python key-value kyotocabinet leveldb rocksdb

2
推荐指数
1
解决办法
2441
查看次数