Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: EE 3.0.0
    • Fix Version/s: None
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush, ICEmobile

      Description


      It is useful to gather the timing of a variety of network events so that default timeout values can be determined.

        Activity

        Hide
        Ted Goddard added a comment -

        The following metrics should be gathered with millisecond timestamps and browserID:

        • listen connect
        • listen response
        • push initiated to client
        • cloud push sent
        • park
        • unpark

        The metrics logging should be clearly marked so that it can be filtered after the session for analysis.

        Show
        Ted Goddard added a comment - The following metrics should be gathered with millisecond timestamps and browserID: listen connect listen response push initiated to client cloud push sent park unpark The metrics logging should be clearly marked so that it can be filtered after the session for analysis.
        Hide
        Ted Goddard added a comment -

        An interesting feature would allow for the capture of these metrics in the session so that they could be displayed dynamically to the user. Since ICEpush does not normally require a session, the session capture could be optional, such as via a ThreadLocal "TraceContext" (if the TraceContext is not null, current metrics would be stored there).

        Show
        Ted Goddard added a comment - An interesting feature would allow for the capture of these metrics in the session so that they could be displayed dynamically to the user. Since ICEpush does not normally require a session, the session capture could be optional, such as via a ThreadLocal "TraceContext" (if the TraceContext is not null, current metrics would be stored there).
        Hide
        Ted Goddard added a comment -

        An effective adaptive strategy for the reconnection timeout would be to average the recent reconnection time with the previous timeout. Any reconnect that failed to occur in double this time would cause a switchover to cloud push. This would avoid keeping a large history of timing values for each client. (Note that the reconnection timeout is maintained per client, however).

        Show
        Ted Goddard added a comment - An effective adaptive strategy for the reconnection timeout would be to average the recent reconnection time with the previous timeout. Any reconnect that failed to occur in double this time would cause a switchover to cloud push. This would avoid keeping a large history of timing values for each client. (Note that the reconnection timeout is maintained per client, however).
        Hide
        Ted Goddard added a comment -

        A simple implementation for the most important metric for the recent Cloud Push behaviour has been checked in.
        This is accessible by enabling FINE level logging on org.icepush.servlet.ThreadBlockingAdaptingServlet.

        For instance for an iPhone on a 3G connection:

        Feb 29, 2012 5:45:15 PM org.icepush.servlet.ThreadBlockingAdaptingServlet service
        FINE: ICEpush metric: Reconnect latency for 3gz8lpclt : 5552

        The scheme for additional metric logging should be to include "ICEpush metric" in the log entry. This particular metric is calculated and uses stored data, contrary to the description above. If a particular metric is sufficiently important, it need not be implemented simply as a timestamp.

        Show
        Ted Goddard added a comment - A simple implementation for the most important metric for the recent Cloud Push behaviour has been checked in. This is accessible by enabling FINE level logging on org.icepush.servlet.ThreadBlockingAdaptingServlet. For instance for an iPhone on a 3G connection: Feb 29, 2012 5:45:15 PM org.icepush.servlet.ThreadBlockingAdaptingServlet service FINE: ICEpush metric: Reconnect latency for 3gz8lpclt : 5552 The scheme for additional metric logging should be to include "ICEpush metric" in the log entry. This particular metric is calculated and uses stored data, contrary to the description above. If a particular metric is sufficiently important, it need not be implemented simply as a timestamp.
        Hide
        Ted Goddard added a comment -

        The most critical metric has been implemented and I will proceed with some analysis with different browsers and different network conditions. The other metrics may be useful, but should be considered lower priority.

        Show
        Ted Goddard added a comment - The most critical metric has been implemented and I will proceed with some analysis with different browsers and different network conditions. The other metrics may be useful, but should be considered lower priority.
        Hide
        Ted Goddard added a comment -

        For a laptop browser with wifi/residential internet, the reconnect time to labs.icesoft.com was typically 100ms (ranging from 86 to 158):

        FINE: ICEpush metric: Reconnect latency for 1gz8lh8qy : 99

        For the same laptop connected via "personal hotspot" over cellular the reconnect time was typically 1500ms (ranging from 590 to 5911).

        For the same laptop connected via "personal hotspot" over cellular 3G the reconnect time was typically 1500ms (ranging from 402 to 5435).

        The time to fetch a short HTML page over wifi/residential (including process startup and TCP connection establishment):
        time curl http://labs.icesoft.com:8080/

        0.183 s

        The time to fetch a short HTML page over 3G (including process startup and TCP connection establishment) (ranging from 0.3s to 2.7s):

        0.553 s

        Show
        Ted Goddard added a comment - For a laptop browser with wifi/residential internet, the reconnect time to labs.icesoft.com was typically 100ms (ranging from 86 to 158): FINE: ICEpush metric: Reconnect latency for 1gz8lh8qy : 99 For the same laptop connected via "personal hotspot" over cellular the reconnect time was typically 1500ms (ranging from 590 to 5911). For the same laptop connected via "personal hotspot" over cellular 3G the reconnect time was typically 1500ms (ranging from 402 to 5435). The time to fetch a short HTML page over wifi/residential (including process startup and TCP connection establishment): time curl http://labs.icesoft.com:8080/ 0.183 s The time to fetch a short HTML page over 3G (including process startup and TCP connection establishment) (ranging from 0.3s to 2.7s): 0.553 s

          People

          • Assignee:
            Steve Maryka
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: