Been playing with a 3-node lab test of M3. Wondering if there's any way to force the datanodes to re-replicate data after a disk/node failure. Also curious how this is scheduled, and if the schedule can be changed.

In a similar vein, curious how/when data blocks are scrubbed, and if that process can be manually started.

Thanks!

asked 11 Feb, 10:26

peppert's gravatar image

peppert
5729
accept rate: 0%


On a disk failure, the system re-replicates automatically. On a node-failure, the system waits for about 1 hour (to see if the node comes back). If the node doesn't come back, the data is re-replicated gently (10% at a time).

But if two nodes fail, then the data whose repl factor has dropped to 1 will be re-replicated immediately (since the data is considered to be dangerously under-replicated).

Note that all of the above thresholds are controllable via various params in the system (please see the documentation at http://mapr.com/doc).

link

answered 17 Feb, 23:45

MC%20Srivas's gravatar image

MC Srivas ♦♦
1.9k215
accept rate: 39%

One way to force re-replication is to increase the minimum replication of that that volume so that it is equal to the replication factor of that volume. Then, once you write to that volume or take a snapshot, re-replication should begin.

link

answered 16 Feb, 10:48

steven's gravatar image

steven
2722
accept rate: 25%

I've tried both of the above, and it doesn't seem to immediately begin, including taking 2 nodes of the 6 node cluster immediately offline. Instead, it begins after 15 minutes or so. It doesn't sound like there's a specific way to encourage the cluster to resolve.

Does anyone have any idea how often the scrub runs across datanodes to verify checksums of all blocks? Where is that set? The documentation isn't entirely clear on either of these points.

link

answered 18 Feb, 08:34

peppert's gravatar image

peppert
5729
accept rate: 0%

1

It should be in 5 minutes, not 15 minutes. A container that is idle is not re-replicated immediately (the system simply waits for the servers to return). But if your program happens to start writing in any of the containers with repl=1, it will re-replicate immediately.

(18 Feb, 12:25) MC Srivas ♦♦

If you crash the CLDB, it waits for 15 minutes after coming up to decide that servers are indeed down and containers need to be re-replicated. This is to give a chance for nodes to report to CLDB and for things to stabilize before we start re-replicating. Perhaps you are seeing that.

The parameter "cldb.replication.manager.start.mins" is set to 15 mins by default, and can be changed to trigger re-replication sooner.

(20 Feb, 07:24) MC Srivas ♦♦
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×7
×1
×1

Asked: 11 Feb, 10:26

Seen: 193 times

Last updated: 20 Feb, 07:24

powered by OSQA