Up the transfer timeout of small meshes to 120S. This matches

Fri, 27 Sep 2013 17:22:31 -0400

author
Monty Brandenberg <monty@lindenlab.com>
date
Fri, 27 Sep 2013 17:22:31 -0400
changeset 40731
61f491773403
parent 40730
cb203df9d1b2
child 40732
17bbce4fb7bb

Up the transfer timeout of small meshes to 120S. This matches
the change made for MAINT-2347. Large transfers are still
10 minutes. Add/update to-do list and add some more info to
the FAQ in the Readme.

indra/llcorehttp/README.Linden file | annotate | diff | revisions
indra/llcorehttp/_httpinternal.h file | annotate | diff | revisions
indra/newview/llmeshrepository.cpp file | annotate | diff | revisions
     1.1 --- a/indra/llcorehttp/README.Linden	Tue Sep 24 14:49:26 2013 -0400
     1.2 +++ b/indra/llcorehttp/README.Linden	Fri Sep 27 17:22:31 2013 -0400
     1.3 @@ -653,4 +653,19 @@
     1.4  
     1.5      Q2.  How's that data sharing with refcounts working for you?
     1.6  
     1.7 -    A2.  Meh.
     1.8 +    A2.  Meh.  It does reduce memory churn and the frequency at which
     1.9 +    free blocks must be moved between threads.  But it's also a design
    1.10 +    for static configuration and dynamic reconfiguration (not
    1.11 +    requiring a restart) is favored.  Creating new options for every
    1.12 +    request isn't too bad, it a sequence of "new, fill, request,
    1.13 +    release" for each requested operation.  That in contrast to doing
    1.14 +    the "new, fill, release" at startup.  The bad comes in getting at
    1.15 +    the source data.  One rule in this work was "no new thread
    1.16 +    problems."  And one source for those is pulling setting values out
    1.17 +    of gSettings in threads.  None of that is thread safe though we
    1.18 +    tend to get away with it.
    1.19 +
    1.20 +    Q3.  What needs to be done?
    1.21 +
    1.22 +    A3.  There's a To-Do list in _httpinternal.h.  It has both large
    1.23 +    and small projects here if someone would like to try changes.
     2.1 --- a/indra/llcorehttp/_httpinternal.h	Tue Sep 24 14:49:26 2013 -0400
     2.2 +++ b/indra/llcorehttp/_httpinternal.h	Fri Sep 27 17:22:31 2013 -0400
     2.3 @@ -66,6 +66,12 @@
     2.4  //   This won't help in the face of the router problems we've looked
     2.5  //   at, however.  Detect starvation due to UDP activity and provide
     2.6  //   feedback to it.
     2.7 +// - Change the transfer timeout scheme.  We're less interested in
     2.8 +//   absolute time, in most cases, than in continuous progress.
     2.9 +// - Many of the policy class settings are currently applied to the
    2.10 +//   entire class.  Some, like connection limits, would be better
    2.11 +//   applied to each destination target making multiple targets
    2.12 +//   independent.
    2.13  //
    2.14  // Integration to-do list
    2.15  // - LLTextureFetch still needs a major refactor.  The use of
    2.16 @@ -75,7 +81,6 @@
    2.17  //   the main source file.
    2.18  // - Expand areas of usage eventually leading to the removal of LLCurl.
    2.19  //   Rough order of expansion:
    2.20 -//   .  Mesh fetch [Underway]
    2.21  //   .  Avatar names
    2.22  //   .  Group membership lists
    2.23  //   .  Caps access in general
     3.1 --- a/indra/newview/llmeshrepository.cpp	Tue Sep 24 14:49:26 2013 -0400
     3.2 +++ b/indra/newview/llmeshrepository.cpp	Fri Sep 27 17:22:31 2013 -0400
     3.3 @@ -351,7 +351,7 @@
     3.4  const S32 REQUEST2_LOW_WATER_MIN = 16;
     3.5  const S32 REQUEST2_LOW_WATER_MAX = 40;
     3.6  const U32 LARGE_MESH_FETCH_THRESHOLD = 1U << 21;		// Size at which requests goes to narrow/slow queue
     3.7 -const long SMALL_MESH_XFER_TIMEOUT = 60L;				// Seconds to complete xfer, small mesh downloads
     3.8 +const long SMALL_MESH_XFER_TIMEOUT = 120L;				// Seconds to complete xfer, small mesh downloads
     3.9  const long LARGE_MESH_XFER_TIMEOUT = 600L;				// Seconds to complete xfer, large downloads
    3.10  
    3.11  // Maximum mesh version to support.  Three least significant digits are reserved for the minor version, 

mercurial