Hi Minh,
Only minor comment on this patch.
saNtfDispatch() does not talk to the server directly, but client is 
being recovered inside it. I think it should be moved to "Affected API 
list".

Thanks,
Praveen

On 23-Dec-15 9:32 AM, Minh Hon Chau wrote:
>   osaf/services/saf/ntfsv/README.HYDRA |  110 
> +++++++++++++++++++++++++++++++++++
>   1 files changed, 110 insertions(+), 0 deletions(-)
>
>
> Add description regarding general solution and API implementation for
> cloud resilience support in NTF
>
> diff --git a/osaf/services/saf/ntfsv/README.HYDRA 
> b/osaf/services/saf/ntfsv/README.HYDRA
> new file mode 100644
> --- /dev/null
> +++ b/osaf/services/saf/ntfsv/README.HYDRA
> @@ -0,0 +1,110 @@
> +SCs outage support in NTF
> +===============================
> +https://sourceforge.net/p/opensaf/tickets/1180/
> +
> +General
> +-------
> +
> +As support of cloud deployment use case which both SCs possibly are brought 
> down,
> +the NTF service does not have to provide its full functionality during SCs 
> outage
> +but it must responsively maintain the interface toward NTF client. It's 
> aimed to
> +make the NTF client not being aware of SCs outage, some APIs provided to 
> client
> +are just temporarily unavailable. Finally, NTF functionality as well as all 
> NTF
> +APIs can resume operationally after one of SCs comes up. This requires the 
> NTF
> +client incorporates to implement retry mechanism, which has already been
> +documented in NTF Programmer Guide (4.5).
> +
> +Solution
> +--------
> +
> +The proposed solution must have the following implementation:
> +1. NTF Agent must return SA_AIS_ERR_TRY_AGAIN during SCs outage in most of 
> APIs
> +required to communicate with NTF server.
> +
> +2. Once SC comes up (also known as NTF server is started), NTF Agent will 
> silently
> +register to NTF server all information had been known between NTF client and 
> NTF
> +server, which are:
> +    2.1 Register client id for all producers, subscribers, readers
> +        NTF Agent sends NTFSV_INITIALIZE_REQ to obtain the new client id. 
> This new
> +             client id will also be used to recover subscriber and reader.
> +    2.2 Register subscription plus associated filters for all subscribers
> +        The messages NTFSV_SUBSCRIBE_REQ/NTFSV_SUBSCRIBE_RSP can be reused 
> to send
> +        to NTF server.
> +    2.3 Register reader plus associated filters for all readers
> +        The messages 
> NTFSV_READER_INITIALIZE_REQ_2/NTFSV_READER_INITIALIZE_RSP can
> +        be reused to send to NTF server.
> +    As these registrations are done successfully, the producers can continue 
> sending
> +notifications, subscribers can receive notification callbacks, readers can 
> read
> +notifications satisfied filter criteria.
> +
> +3. As NTF server is started, it will restore all notifications written in 
> persistent
> +storage. The storage has not been decided yet, it could rely on IMM PBE, or 
> it
> +introduces new persistent file managed by NTF server. In anyhow NTF server 
> shall be
> +modified to load/save notification records.
> +
> +Affected APIs and behaviours
> +----------------------------
> +
> +Once NTF Agent detects the NTF server down completely, all client_hdl are 
> set as
> +invalid
> +1. saNtfInitialize
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable (No Active due to
> +   fail-over) or completely down.
> +
> +2. saNtfFinalize
> +   If NTF server is unavailable, return SA_AIS_ERR_TRY_AGAIN.
> +   If NTF server is down, silently clean up client handle and return 
> SA_AIS_OK.
> +
> +3. saNtfNotificationSend
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable or completely 
> down.
> +   If NTF server is up, register all invalid clients.
> +   If client registration is done, notification can continuously be sent.
> +
> +4. saNtfNotificationSubscribe
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable or completely 
> down.
> +   If NTF server is up, register all invalid clients.
> +   If client registration is done, client can successfully subscribe for 
> notification.
> +
> +5. saNtfNotificationUnsubscribe
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable.
> +   If NTF server is down, silently clean up subscriber information then 
> return
> +   SA_AIS_OK.
> +   If NTF server is up and client is invalid, silently clean up subscriber, 
> also
> +   register all invalid clients and return SA_AIS_OK if all operations 
> succeed.
> +
> +6. saNtfNotificationReadInitialize
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable or completely 
> down.
> +   If NTF server is up, register all invalid clients.
> +   If client registration is done, client can successfully initialize a new 
> reader
> +
> +7. saNtfNotificationReadNext
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable or completely 
> down.
> +   If NTF server is up but client handle is invalidated, register all 
> clients and
> +   initialize the reader again. The parameter notification in 
> saNtfNotificationReadNext
> +   can be considered as the last notification successfully been read, from 
> which
> +   NTF Agent can use to find the next notification that the client wishes. 
> However,
> +   this continuous read is not supported since notifications are not 
> preserved
> +   after SC outage.
> +
> +8. saNtfNotificationReadFinalize
> +   Return SA_AIS_ERR_TRY_AGAIN if NTF server is unavailable.
> +   If NTF server is down, silently clean up reader information then return 
> SA_AIS_OK
> +   If NTF server is up and client is invalid, silently clean up reader, also 
> register
> +   all invalid clients and return SA_AIS_OK if all operations succeed.
> +
> +9. Callbacks
> +   Once NTF Agent detects that the NTF Server is up after period of outage, 
> NTF Agent
> +   silently registers all invalid clients and subscribe for notification if 
> the client
> +   is a subscriber.
> +
> +Non-affected APIs and explanations
> +----------------------------------
> +The following APIs do not require communication with NTF server, also the 
> information
> +these APIs manipulate are cached locally in NTF Agent. Therefore they can be 
> performed
> +normally despite of NTF server state.
> +
> +1. Notification allocation APIs for Producer
> +2. Filter allocation APIs for Consumer
> +3. saNtfNotificationFree, saNtfNotificationFilterFree
> +4. saNtfPtrValGet, saNtfArrayValGet
> +5. saNtfDispatch, saNtfSelectionObjectGet
>

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to