summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/nsr-server/src/etcd-sim.c
Commit message (Collapse)AuthorAgeFilesLines
* nsr: change leader-election code to use new etcd_lockJeff Darcy2014-03-051-0/+34
| | | | | | | | | This is certainy much simpler (therefore easier to maintain) and should be more robust as well. Tested with both real and simulated versions of the etcd API. Change-Id: Ic67de7f87455fcd9aeb1354714698f9562b7e4a7 Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
* etcd-sim: fix stdio-buffering problemJeff Darcy2014-01-291-38/+68
| | | | | | | | | | | | | | Leader election was not working because processes were continuing to read their own cached copies of the data file contents, not seeing each others' changes. Fflush is not sufficient to ensure that data propagates from one process to another. Even ensuring that it gets to disk requires an fsync as well (which we weren't doing). The only viable solution is to *reopen* the data file with an empty buffer. This also makes it easier to ensure correct locking across the whole file, instead of just from the previous seek position to EOF. Change-Id: I165d55afd5804dc3f579ea7e55c56da5066ae6c1 Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
* cluster/nsr-server: fix etcd-sim date handlingJeff Darcy2014-01-221-66/+59
| | | | | | | | | | | There was just no particularly good reason to be doing all of those conversions for comparison on the same machine, and it was actually causing failures on a test machine where strptime was sporadically creating a structure where the "hours" field was off by one. Also added missing functions to allow unit testing, fixed some headers and indentation, etc. Change-Id: I3b1a80365d72bdb5afb0119a8e6505e2bc47a94f Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
* nsr : Fix "special" recon logging functions.Anuradha2014-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | Combining two patches together. http://review.gluster.org/#/c/6538/4, author : Jeff Darcy and http://review.gluster.org/#/c/6748/2, author : Anuradha Talur. (1) Put logs into /var/log instead of /tmp. (2) Added debug-level check. (3) Added function/line information. (4) Fixed many instances of missing symbol GF_LOG_ERR. Removing spurious newlines will have to wait until a subsequent patch. Keeping this one up to date is tedious enough. Changed the logging directory of reconciliation logs to /var/log/nsr-logs. Change-Id: I8ffd901537d77329eddbd17b380c1611607927d6 Credits: Jeff Darcy <jdarcy@redhat.com> Signed-off-by: Anuradha <atalur@redhat.com>
* Fix precondition handling.Jeff Darcy2014-01-141-5/+6
| | | | | | | Without this, nsr.t was hanging because of stalled leader election. Change-Id: Ia87f582956e0a61f1d2e1fe792aca1d885f20af3 Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
* Changes to NSR reconciliation code.Raghavan P2014-01-081-0/+222
Following is list of changes: 1) Simulation of etcd using a file as a registry protected using locks. 2) Implement notifications for child up and child down. 3) Join a new brick into quorum. 4) add support for proper fencing and draining of IO required for reconciliaiton 5) misc changes and addressed review comments. Change-Id: Iddd1137ad6205252ed03301888bb1e83fa2221e0 Signed-off-by: Raghavan P <rpichai@redhat.com>