update meta and changelog for 1.6.11
don't keep the lease_start in the store, always initialize it to the
current time such that a node will respect another master for at least
an entire lease_period when it wakes up.
update bs_bench for latest camltc changes + add rule to Makefile
sync store before closing tlog
remove redundant close of socket
Remove some unused code
Don't `reset` the `Batched_store` hashtable

Calling `Hashtbl.reset` to clear the cache used by `Batched_store`
results in lots of in-place mutation (looking at the implementation,
the call is dispatched to `Hashtbl.clear` due to the table size, which
modifies the underlying array entries one-by-one). This results in lots
of calls to `caml_modify`, which clearly shows up in profiling (5 to 6%
of runtime of a `set` benchmark goes into clearing the cache).

This commit changes the approach by not clearing the `Hashtbl.t`, but
using a mutable field in the `Batched_store` record instead, which is
replaced by a freshly allocated table. This results in some more strain
on the garbage collector, but clearly reduces the number of
`caml_modify` calls. As a result,
`Batched_store._apply_cache_to_local_store` goes from over 6% of runtime
to less than 0.4%.

Next to this, after the change a smaller table is allocated: instead of
pre-allocating a table of size `max_entries`, a smaller table is created
which can grow when necessary.
Merge pull request #452 from Incubaid/speedup-batched-store

Speedup batched store
Merlin file
ensure tlfs are synced before renaming them to their destination
Add a simple ring-buffer implementation

This commit adds a very simple ring-buffer implementation which will be
used by `Crash_logger` in a subsequent commit.

Not much functionality is implemented, only what's strictly necessary.
Rework and speed-up `Crash_logger`

During profiling it turned out quite some time (somewhere between 5 and
10%) was spent in `Crash_logger.add_to_crash_log`, which is a fairly
'hot' function.

These changes rework `Crash_logger` so `add_to_crash_log` becomes an
almost-no-op. It turns out after these changes the function is
completely inlined, and turned into an array assignment and an integer
field update!

There's a (minor) change in functionality: it's now possible the crash
logger contains more messages than its upper limit, but the overflow
should be minimal.

Overall, the changes boil down to the following:

- Use a `Ring_buffer` instead of `Lwt_sequence` to store log entries

  This removes the need to validate the number of memorized entries
  inside `add_to_crash_log` and keep a total count. It also removes the
  need to clean up the `Lwt_sequence` in this function. As a result, the
  function becomes really small and can (and seems to) be inlined at
  call sites, so the overhead of `add_to_crash_log` becomes only an
  array assignment and an integer update.

- Don't create single-item lists when unnecessary

  Prior to these changes, messages were logged on-by-one in the
  `Lwt_sequence`, but still passed as a list to `add_to_crash_log`. On
  the other hand, when a list of messages had to be passed, it was
  paired with `None` values as exception payload, which introduced
  unnecessary list traversals and allocations.

  This change adds some more constructors to differentiate between
  single-message payloads as well as lists of messages. This is somewhat
  ad-hoc, but reduces allocation rates.

  The logged entries are simplified a bit as well, not storing the log
  level as a string but keeping the `Lwt_log.level`, turning it into a
  string only when the entry needs to be rendered.
Merge pull request #451 from Incubaid/socket-close

remove redundant close of socket
Merge pull request #455 from Incubaid/speedup-crash-logger

Speedup crash logger
Regularly dump TCP_INFO statistics of outgoing connections

Backport from PR #401 to 1.7.

(cherry picked from commit b88bd91447cb143ae5a6a08ca54a9d5166314d6e)

Conflicts:
	src/libcutil.clib

Closes #401
bench make target is .PHONY
Merge pull request #449 from Incubaid/fix-bs-bench

update bs_bench for latest camltc changes + add rule to Makefile
Add ability to list files for which warning 4 is disabled

Since we'd like to enable the 'fragile pattern matches' warning, but
it's hard to get rid of it in some files (mostly pattern-matching on
`Unix.error`), we need a way to disable to corresponding warning for
these specific files.

This change adds the feature to `myocamlbuild.ml`, not whitelisting any
file for now.
add failing drop_master_while_maintenance
Merge pull request #458 from Incubaid/allow-fragile-pattern-matches

Add ability to list files for which warning 4 is disabled