Hi Vu

Ack, legacy test done. No comments

Thanks
Lennart

> -----Original Message-----
> From: Vu Minh Nguyen [mailto:vu.m.ngu...@dektech.com.au]
> Sent: den 24 mars 2017 09:35
> To: Lennart Lund <lennart.l...@ericsson.com>; mahesh.va...@oracle.com;
> Canh Van Truong <canh.v.tru...@dektech.com.au>
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [PATCH 1 of 1] log: cache RFC5424 msgid when log stream is created
> [#2397]
> 
>  src/log/logd/lgs_dest.cc  |   4 +---
>  src/log/logd/lgs_dest.h   |   1 +
>  src/log/logd/lgs_evt.cc   |   1 +
>  src/log/logd/lgs_imm.cc   |  10 ++++++++++
>  src/log/logd/lgs_mbcsv.cc |   5 +++++
>  src/log/logd/lgs_stream.h |   1 +
>  6 files changed, 19 insertions(+), 3 deletions(-)
> 
> 
> MSGID currently is calculated whenever sending log record
> to UNIX_SOCKET type, it may impact more or less on performance.
> 
> This ticket is to cache the value at the time of log stream creation,
> and just refering to it whenever need that value.
> 
> diff --git a/src/log/logd/lgs_dest.cc b/src/log/logd/lgs_dest.cc
> --- a/src/log/logd/lgs_dest.cc
> +++ b/src/log/logd/lgs_dest.cc
> @@ -386,10 +386,8 @@ bool WriteToDestination(const RecordData
>    // Origin is FQDN = <hostname>[.<networkname>]
>    // hostname = where the log record comes from (not active node)
>    const std::string origin = std::string {data.hostname} + networkname;
> -  const std::string msgid = DestinationHandler::Instance().GenerateMsgId(
> -      data.name, data.isRtStream);
> 
> -  info.msgid      = msgid.c_str();
> +  info.msgid      = data.msgid;
>    info.log_record = data.logrec;
>    info.record_id  = data.recordId;
>    info.stream_dn  = data.name;
> diff --git a/src/log/logd/lgs_dest.h b/src/log/logd/lgs_dest.h
> --- a/src/log/logd/lgs_dest.h
> +++ b/src/log/logd/lgs_dest.h
> @@ -71,6 +71,7 @@ struct RecordData {
>    const char* hostname;
>    const char* networkname;
>    const char* appname;
> +  const char* msgid;
>    bool isRtStream;
>    uint32_t recordId;
>    uint16_t sev;
> diff --git a/src/log/logd/lgs_evt.cc b/src/log/logd/lgs_evt.cc
> --- a/src/log/logd/lgs_evt.cc
> +++ b/src/log/logd/lgs_evt.cc
> @@ -1401,6 +1401,7 @@ static uint32_t proc_write_log_async_msg
>    data.networkname = lgs_get_networkname().c_str();
>    data.appname = osaf_extended_name_borrow(
>        param->logRecord->logHeader.genericHdr.logSvcUsrName);
> +  data.msgid = stream->rfc5424MsgId.c_str();
>    data.isRtStream = stream->isRtStream;
>    data.recordId = stream->logRecordId;
>    data.sev = param->logRecord->logHeader.genericHdr.logSeverity;
> diff --git a/src/log/logd/lgs_imm.cc b/src/log/logd/lgs_imm.cc
> --- a/src/log/logd/lgs_imm.cc
> +++ b/src/log/logd/lgs_imm.cc
> @@ -2378,6 +2378,11 @@ static SaAisErrorT stream_create_and_con
>      osaf_abort(0);
>    }
> 
> +  // Generate & cache `MSGID` to `rfc5424MsgId` which later
> +  // used in RFC5424 protocol
> +  (*stream)->rfc5424MsgId =
> DestinationHandler::Instance().GenerateMsgId(
> +      (*stream)->name, (*stream)->isRtStream);
> +
>  done:
>    TRACE_LEAVE2("rc: %s", saf_error(rc));
>    return rc;
> @@ -2877,6 +2882,11 @@ static SaAisErrorT stream_create_and_con
>      }
>    }
> 
> +  // Generate & cache `MSGID` to `rfc5424MsgId` which later
> +  // used in RFC5424 protocol
> +  stream->rfc5424MsgId = DestinationHandler::Instance().GenerateMsgId(
> +      dn, stream->isRtStream);
> +
>  done:
>    TRACE_LEAVE2("rc: %s", saf_error(rc));
>    return rc;
> diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc
> --- a/src/log/logd/lgs_mbcsv.cc
> +++ b/src/log/logd/lgs_mbcsv.cc
> @@ -2043,6 +2043,11 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t
>          stream->stb_dest_names = "";
>          stream->dest_names.clear();
>        }
> +
> +      // Generate & cache `MSGID` to `rfc5424MsgId` which later
> +      // used in RFC5424 protocol
> +      stream->rfc5424MsgId =
> DestinationHandler::Instance().GenerateMsgId(
> +          stream->name, stream->isRtStream);
>      }
>    }
> 
> diff --git a/src/log/logd/lgs_stream.h b/src/log/logd/lgs_stream.h
> --- a/src/log/logd/lgs_stream.h
> +++ b/src/log/logd/lgs_stream.h
> @@ -52,6 +52,7 @@ typedef struct log_stream {
>    SaTimeT creationTimeStamp;
>    SaUint32T numOpeners;
>    SaUint64T filtered;     /* discarded by server due to filtering */
> +  std::string rfc5424MsgId;
>    /* --- end correspond to IMM Class --- */
> 
>    uint32_t streamId;      /* The unique stream id for this stream */

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to