Commit Graph

104 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
dae1218c50 infra: fix limiter underflow
Credits to Daniel Hermann for revealing this bug.
2013-07-15 12:21:16 +02:00
Thomas Schoebel-Theuer
d70a415b9a aio: fix dirty_head completion 2013-07-10 09:53:59 +02:00
Thomas Schoebel-Theuer
ea42d36a15 infra: check Kconfig prerequirements 2013-07-10 09:08:39 +02:00
Thomas Schoebel-Theuer
5103e7b46c aio: increase robustness of file descriptors 2013-07-10 07:16:19 +02:00
Thomas Schoebel-Theuer
c9bb358239 aio: improve debugging 2013-07-10 07:16:19 +02:00
Thomas Schoebel-Theuer
764d5ed7d8 infra: fix reference counter in lib_mapfree 2013-07-09 18:50:18 +02:00
Thomas Schoebel-Theuer
acd9b194aa light: add syncpos symlink
This is needed for detection of the real end of inconsistencies
after sync as finished. Consistency is only (re-)reached after
a certain amount of logfile data has been sucessfully applied.

This patch remembers the replaylink from the primary at the time
when the sync has finished.

When at least that amount of logfile data has been applied, we
are certain that now we are consistent.
2013-07-08 10:55:58 +02:00
Thomas Schoebel-Theuer
ad08afe074 light: use replay_tolerance only after failed replay attempt 2013-07-08 10:47:33 +02:00
Frank Liepold
f38c56d5ab light: primary is more tolerant against truncated logfile 2013-07-08 10:19:38 +02:00
Thomas Schoebel-Theuer
2351f54d6f light: fix regression caused by tolerance
On the secondaries, switchover between logfiles could hang
when _check_logging_status() used the tolerance, but
is_switchover_possible() refused to switch over.
2013-07-05 14:35:11 +02:00
Thomas Schoebel-Theuer
156d493192 light: improve tolerance flexibility 2013-07-05 14:08:12 +02:00
Thomas Schoebel-Theuer
9a160c26ab Kconfig: make MARS_SEPARATE_PORTS the default 2013-07-05 14:06:35 +02:00
Thomas Schoebel-Theuer
9a104deb19 lib_log: fix length correction in the headers, cleanup 2013-07-04 08:51:36 +02:00
Thomas Schoebel-Theuer
82e7f1b823 lib_log: move log_scan() to header file 2013-07-04 08:46:14 +02:00
Thomas Schoebel-Theuer
62e2f5944b aio: finally fix race on dirty area at the end 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
83b75845c3 aio: remove obsolete clever_sync 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
d4338032bb logger: make writeback more resilient 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
0f4cc33d15 logger: make replay_timeout configurable 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
45cac16cc1 infra: add grace freeing to mapfree
Avoid unnecessary LRUing of freeable buffers at the long term
(months) for better long-term performance.
2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
19f1a95a47 proc: allow some debugging even in production systems (default off) 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer
e33ddf63db light: fix wrong condition in logfile update 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
f3613177a2 aio: prefer fdatasync() over filemap_write_and_wait_range() 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
be20dd422d light: tolerate few incomplete log entries at the end when switching to primary 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
bfb6070d25 logger: add replay_tolerance 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
0ee23aa3ef light: prevent remote symlink updates when delete is in progress 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
1d955d9bed light: fix wrong target size of sync 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
3346daf959 light: allow remote deletion of directories 2013-06-29 21:15:18 +02:00
Thomas Schoebel-Theuer
c917bc239b all: update pre-patches 2013-06-29 21:15:17 +02:00
Thomas Schoebel-Theuer
58e6ae23ad light: workaround nasty race on kthread_stop() 2013-06-29 21:15:17 +02:00
Daniel Hermann
83b658467b sio: fix call to vfs_fsync() for newest rhel6 kernels
the number of arguments to vfs_fsync has changed in kernel 2.6.35.
The S_BIAS macro (removed at about the same time in 2.6.35) is used to
detect whether vfs_fsync must be called with 2 or 3 args. In RHEL6
kernels 2.6.32, the removal of S_BIAS was backported, but the change
in vfs_fsync was not. So a check for RHEL_MAJOR < 7 is used in
addition to S_BIAS to find the correct number of args for vfs_fsync
call.

Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-06-29 21:15:17 +02:00
Thomas Schoebel-Theuer
5b523f16f7 logger: avoid potential races between IO and symlink updates 2013-06-20 15:09:05 +02:00
Thomas Schoebel-Theuer
39ed143e27 logger: fix potential race on replay_end_pos
The variable should only be set from outside, e.g. mars_light.
This should also lead to more correct replay_code==2 results.
2013-06-20 15:09:05 +02:00
Thomas Schoebel-Theuer
fe54abb225 logger: update symlinks even at apply of incomplete logfiles 2013-06-20 15:08:48 +02:00
Thomas Schoebel-Theuer
21a5d4160c logger: disallow skipping of bad data
Be as conservative as possible.

Any copputed logfiles must be corrected in userspace.
2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer
2fee24fe49 light: report is_primary at the end of the round
The old code led to ain unnecessary delay of 1 round.
2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer
81ca278291 aio: fix race on file size
The old code used mf->mf_max for correcting the file size, but that
was wrong for multiple writes in flight.

A really correct solution would have to remember all in-flight writes
and compute their minimum IO position. Since that would be too
costly, we just use the old size before any writes have started.

This might be too conservative for extremely high load patterns
(possible starvation problem). For now, take this and check whether
we really need higher effort.
2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer
faa1c8d802 light: fix attach on locked device 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer
a0190b043d proc: add /proc/sys/mars/info 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer
7187462a6e marsadm: add global uuid to cluster 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer
cdd7b85417 infra: systematics of make_brick_all() switching, remove superfluos parameter 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer
62dd9c64dd light: fix logfile replication when trans_logger is not running 2013-06-03 09:05:47 +02:00
Thomas Schoebel-Theuer
bdb6aaef1f light: fix detach operation 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
59d706ba54 infra: replace brick_version by kill_round 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
bf7c0c9f3b infra: remove superfluous parameter is_server 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
dfe2dc5b1c infra: remove recursive button operations
All buttons should be switched step-by-step in future.
The previous patch should ensure that no harm can occur.
2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
726bbe17fc infra: don't switch off if predecessors are working 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
ce110eb52b infra: disallow forbidden brick states
Switch on only when all predecessor bricks are also on.
Failing to do so can result in fatal errors.
Similarly, switch only off if no successor exists any more.
2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
326ed48da2 light: remove superfluous timeout parameter
The concept was broken.
2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
e3c10d31a9 net: decrease trigger turnaround time 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
0e15b38457 marsadm: add new commands 'wait-{cluster,resource}' 2013-06-03 09:05:46 +02:00