mds: pass finish context to MDlog::submit_entry()

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: add get_metablob() to log events

later commits will use it to get EMetaBlob and update EMetaBlob's
event sequence number.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: introduce sequence number for log events

Use the sequence number to index log segments. Later commit will defer
encoding/submitting log events to separate thread, log events' offsets
are unknown before they are encoded.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: print sequence number of log segment
mds: add thread to encode/submit log events

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: use mutex to protect log segment list

prevent race between creating new log segment and trimming old
segment.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: defer encoding/submitting log events to separate thread

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Merge pull request #2037 from ceph/wip-async-log

MDS: Encode log events in a separate thread from main execution.

This is a first small step in multi-threading the MDS daemon.

Reviewed-by: Greg Farnum <greg@inktank.com>