Commit Graph

768 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
4b59be870e copy: speedup by making overlap the default
Since commit 62e2f5944b, aio prevents races on the length
of a transaction logfile.

Thefore, we can safely enable IO parallelism at writes fired off
by copy.

The old behaviour was a serious IO bottleneck.
2013-08-06 14:30:05 +02:00
Thomas Schoebel-Theuer
3f3a4c365a copy: fix / improve IO debugging 2013-08-06 13:09:55 +02:00
Thomas Schoebel-Theuer
94e1ac2ad0 all: remove internal URLs 2013-08-02 11:45:21 +02:00
Frank Liepold
820708e712 marsadm: command down includes disconnect
Fixes the following bug:
marsadm down does not disconnect the resource.
2013-07-29 16:30:10 +02:00
Frank Liepold
e3db28c4d7 marsadm: correct wrong condition for checking exclusive access
The fixed bug was introduced in commit:

marsadm: 'create-resource' --force no longer checks for exclusive access
2013-07-25 09:12:46 +02:00
Frank Liepold
2e441d0d11 marsadm: use lamport clock as mtime of symbolic links
Fixes the following bug:
Symbolic links which are created in userspace get the current time
as mtime.
2013-07-25 08:42:27 +02:00
Thomas Schoebel-Theuer
c877c43eff copy: limit IO parallelism via /proc 2013-07-22 09:15:53 +02:00
Thomas Schoebel-Theuer
0d8d637dee marsadm: 'create-resource' --force no longer checks for exclusive access 2013-07-22 08:44:03 +02:00
Thomas Schoebel-Theuer
72a2537c6d copy: make io_prio configurable via /proc 2013-07-22 08:44:03 +02:00
Thomas Schoebel-Theuer
08b27c548e all: add lamport clock to all messages 2013-07-22 08:44:03 +02:00
Thomas Schoebel-Theuer
105bc07b58 infra: lamport clock can never appear as stopped
In case CONFIG_HIGH_RES_TIMERS is not set (or when it does not work
as expected), the lamport clock could "stop" in some extremely
rare cases. Theoretically, a symlink update could be missed, or
two transaction log records could accidentally get the same
timestamp. We want any timestamps to be unique (at least on
the same host).

This patch ensures that true forward stepping always takes place,
even when the system clock fails (or at other problems).

For now, the dependency from CONFIG_HIGH_RES_TIMERS is left in Kconfig
as a precondition for MARS.

After some tests and some observational time, it could probably be removed
some day.
2013-07-22 08:44:03 +02:00
Frank Liepold
08d4f863ff marsadm: command secondary must not change primary link if executed on a secondary
Fixes the bug, that marsadm secondary sets the link <resource_dir>/primary
to (none) even if executed on a secondary host.
2013-07-22 08:44:03 +02:00
Frank Liepold
c474e17d88 light: improve info message 2013-07-22 08:44:03 +02:00
Thomas Schoebel-Theuer
ddf28af52d marsadm: fix 'invalidate' racing against replay 2013-07-22 08:44:03 +02:00
Thomas Schoebel-Theuer
22d4516d21 trans_logger: use kb as replay limiter units 2013-07-15 12:21:16 +02:00
Thomas Schoebel-Theuer
61e5d30757 copy: use kb as limiter units 2013-07-15 12:21:16 +02:00
Thomas Schoebel-Theuer
dae1218c50 infra: fix limiter underflow
Credits to Daniel Hermann for revealing this bug.
2013-07-15 12:21:16 +02:00
Daniel Hermann
5eae58a3a4 gen_config: allow options to be overridden by environment
From caa2cd968be140ed3e91eeb0d30e0c006b55e17a Mon Sep 17 00:00:00 2001
From: Daniel Hermann <daniel.hermann@1und1.de>
Date: Thu, 11 Jul 2013 11:45:16 +0200
Subject: [PATCH] gen_config: allow options to be overridden by environment
2013-07-15 09:20:53 +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
f75d402d0b doc: add mars-manual.{lyx,pdf} (work in progress) 2013-07-04 10:23:08 +02:00
Frank Liepold
d01389e171 tests: add test suite (work in progress) 2013-07-04 10:22:39 +02:00
Thomas Schoebel-Theuer
637ec3fc4e tools: new checking tool write-reboot.c
Use this for testing the power blackout safety.
2013-07-04 09:06:36 +02:00
Thomas Schoebel-Theuer
e6a39cf313 tools: add provisionary logfile import/export (HACKERS ONLY)
Use this for testing or for repair if you are extremely desperate.
This is not yet end-user friendly.
2013-07-04 09:06:36 +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
295b0f4ada marsadm: relax precondition for create-resource 2013-07-04 07:21:01 +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
e0d980223b marsadm: wait-cluster has-device waits for actual device appearance 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
269c53d565 marsadm: make 'wait-connect' an alias to 'wait-resource' 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer
228a464c8a marsadm: mark "verify" as forbidden
It would be dangerous since DRBD semantics are not implemented.
2013-07-04 07:21:00 +02:00