Qfs common: fix files create date.
Meta server: fix status code conversion in chunk server reply path resulted in the status code sign reversal. It looks like that this mainly affected chunk allocation failure detection as the relevant failure detection condition is "less than zero", where in most (all?) of other places affected, the failure conditions are "not equal zero". The effect of the allocation failure mis-detection isn't detrimental, as the undetected chunk allocation manifests itself later on, as write id allocation failure. This bug reduces the failure tolerance in the cases where all chunk servers involved in allocation fail to allocate the chunk, as this would result in no replicas available for "re-allocation" leading to potential write failure if the file was created with no recovery. The bug also reduces failure tolerance in other cases as the initial allocation would result in allocation of less replicas than requested. Though probably most common case of the relevant chunk allocation failures would be "out of space", as the request timeout logic isn't affected by this bug, therefore the practical effect of this bug seems low, or, at best, moderate right now.
Meta server: change chunk allocation failure detection condition from "less than zero" to "not zero", as chunk server always returns 0 in the case if allocation completes successfully. Propagate chunk server chunk allocation failure status to the client, instead of replacing it with generic "chunk allocation failed" status code.
Chunk server: start on tiered allocation: implement basic tiered allocation logic; add the correspond fields to chunk allocation, and replication RPCs.
Merge branch 'master' into topic/tiered_storage
Merge branch 'master' into topic/tiered_storage
Merge branch 'master' into topic/tiered_storage
Chunk server: implement storage tiers configuration, by adding parameter "chunkServer.storageTierPrefixes", and interpret it as space separated pairs of chunk directory prefix followed by the corresponding tier. Allow to set / reconfigure storage tiers from the meta server.
Chunk server: set space available to -1 in chunk directory constructor to make SetStorageTiers() work on start up. Change SetStorageTiers() to make default tier assignment in the case if tiers prefixes is empty.
Chunk server: implement open non stable counter in chunk directory. The counter is intended to used with tiered allocations.
Chunk server: implement storage allocation tiers info, namely the number of chunks open for write, and the number of writable "drives".
Chunk server: implement storage tiers info to be used with the chunk server heartbeat / meta server hunk placement.
Chunk server: add storage tiers info to the chunk server heartbeat response.
Chunk server: fix storage tier formatting with stream insert operator by casting it to unsigned integer.
Chunk server: account chunk allocations in directory / device space available in between fs space available updates, in order to handle better devices with "small" total space, for example ram disks with few GB available.
Chunk server: remove trailing spaces.
Chunk server: fix storage tiers update in NotifyMetaChunksLost(), do not attempt to update tiers if directory is already marked not in use.
Merge branch 'master' into topic/tiered_storage
Merge branch 'master' into topic/tiered_storage
Meta server: implement storage tiers information passing with the chunk server heartbeat.