alarms version 2: move database cleanup from webadmin to service

It no longer makes sense that the cleanup of
old alarms be done from inside the webadmin servlet. This
option should be part of the alarm server.

The configuration properties have been shifted over to alarm.properties,
and the query utilities have been relocated to dcache core.

Target: master
Require-book: yes
Require-notes: yes
Acked-by: Karsten
chimera: fix NPE on '.(parent)()' for root inode

Acked-by: Albert Rossi
Acked-by: Dmitry Litvintsev
Target: master, 2.10, 2.9, 2.8, 2.7, 2.6
Require-book: no
Require-notes: no
pool: Fix xrootd vector read limits

Fixes a bug that caused problems with ROOT 6: dCache provided
too large limits for the readv_ior_max and readv_iov_max
properties.

Target: trunk
Request: 2.10
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Ticket: http://rt.dcache.org/Ticket/Display.html?id=8461
Require-notes: ues
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7313/
info: Generate NAS by links rather than access

Info generates Normalized Access Storages - a non-overlapping grouping of pools
that share some properties.

In the past, how pools were grouped was based on which storage and dcache units
could do what kind of operation on the pool. Pools with the same access such
access properties were put into the same NAS. This did however result in NAS
that were rather difficult to understand: They had weird names that encoded the
access rules, and the list of links for the NAS did not apply to all pools in
the NAS. Also, the definition ignored link groups, which meant that pools
belonging to different link groups could be put into the same NAS if they
otherwise shared the same access properties.

This patch updates the NAS generator. It now groups those pools that are
accessible through the same set of links. NAS names are now an ordered list of
link names, which makes the relation ship to the pool manager configuration
much more obvious. The links of a NAS provide access to all the pools in the
NAS.

To the reviewer (Paul in particular): Please double check the updated unit
tests.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7305/
srm: Fall back to synchronous saving in case of overload

Requests are stored asynchronously in the database to avoid that the
save affects request processing. When the database cannot keep up, such
as may happen during an inrush of bulk bring-online requests, saves
to the database are dropped. A code comment claims that this only
affects monitoring, however the effect of SRM restarts, both as observed
by the client and wrt clean-up of upload directories. It also affects
debugging as information on past requests will be incomplete (something
one may be particularly interested in after an overload situation).

Saves are naturally classified into major and minor saves: Those that
merely log state transitions and those that contain updates to the
information about a request.

This patch changes the logic so that only minor updates are dropped. Major
updates are stored synchronously in case the asynchronous save queue
is full. This creates natural back pressure by slowing down request
processing.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7310/
hsm: Increase concurrency in nearline storage interface

When receving many HSM requests at once (in particular stage), the strict
synchronization in the nearline storage interface causes these requests to
serialize. In particular for stage requests this may be a problem, as the
replica entries are created in this phase.

This patch increases the concurrency in the nearline storage interface.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Albert Rossi <arossi@fnal.gov>
Patch: https://rb.dcache.org/r/7183/
commons: fix TimeUtils nanos to duration string conversion

Ached-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no
commons: add TimeUtils#unitStringOf()

to provide short string form for a given time unit.

Ached-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no