Advertisement
Guest User

SBUG UG GetMesh2 snippets

a guest
Sep 5th, 2013
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.05 KB | None | 0 0
  1. [22:08:52] Maestro Linden: all three RCs got monty's new project, which adds support for smarter asset fetching (which future viewers will use)
  2. [22:09:23] Maestro Linden: Monty had some details here: https://wiki.secondlife.com/wiki/Release_Notes/Second_Life_RC_BlueSteel/13#13.09.04.280593
  3. [22:10:23] Maestro Linden: GetMesh2 is like GetMesh, but pipelined
  4. [22:10:34] Maestro Linden: and it will use fewer connections
  5. [22:11:09] Maestro Linden: the throttling actions with 503 errors will mostly benefit high bandwidth, high-latency connections
  6. [22:12:26] Monty Linden: new RCs have a GetMesh2 cap that's mostly equivalent to GetMesh
  7. [22:12:36] Monty Linden: This is used to retrieve meshes.
  8. [22:12:49] Monty Linden: For reasons lost in time, viewers have been using far, far
  9. [22:12:58] Monty Linden: too many connections to do mesh downloads.
  10. [22:13:10] Monty Linden: 32 by default, extended over 500 by certain users
  11. [22:13:22] Monty Linden: completely unconstrained by certain debug/developer functions
  12. [22:13:40] Monty Linden: these have, umm, negatively impacted the experience for everyone.
  13. [22:13:54] Monty Linden: GetMesh2 is part of fixing this.
  14. [22:14:47] Monty Linden: On the server side, GetMesh2 now is serviced with
  15. [22:14:58] Monty Linden: keepalive connections and the viewer I'm currently using
  16. [22:15:00] Monty Linden: makes use of it.
  17. [22:15:35] Monty Linden: New texture console is going to have a line of status
  18. [22:15:43] Monty Linden: about mesh activities so you can see what it is doing.
  19. [22:16:06] Maestro Linden: Yuzuru, for GetMesh it's configurable viewer-side via 'MeshMaxConcurrentRequests' debug setting
  20. [22:16:13] Monty Linden: And there will be debug settings (Mesh2MaxConcurrentRequests or something like that)
  21. [22:16:36] Monty Linden: GetMesh2 is the cap/URL
  22. [22:16:56] Monty Linden: And there are other tools to monitor what viewers have been
  23. [22:16:57] Monty Linden: doing.
  24. [22:17:17] Monty Linden: You can kick up a 'netstat' command and filter for port 12046 activity to see what is happening
  25. [22:17:32] Monty Linden: on a viewer machine. It can be quite shocking when you
  26. [22:17:37] Monty Linden: TP to a mesh rich region.
  27. [22:17:50] Monty Linden: Or if you use certain features in the develop menu.
  28. [22:18:06] Monty Linden: One other interesting change is that some 503 responses
  29. [22:18:24] Monty Linden: from our web services may include a 'Retry-After' header with a delta value (simple seconds).
  30. [22:18:47] Monty Linden: Indicating a time at which it will be likely, but not guaranteed, for
  31. [22:18:51] Monty Linden: a new request to succeed.
  32. [22:19:11] Monty Linden: This applies to any request via cap subject to throttling including
  33. [22:19:13] Monty Linden: http-in.
  34. [22:19:27] Monty Linden: Though that's typically not the throttle of interest there.
  35. [22:20:10] Monty Linden: Rex: old and new viewers both did the downloads in a
  36. [22:20:25] Monty Linden: separate thread but there is a lot of mutex locking in the code.
  37. [22:20:33] Monty Linden: New viewer will have some interesting comments for those
  38. [22:20:37] Monty Linden: who want to read.
  39. [22:21:00] Monty Linden: I believe there are less stalls with the new code which cleaned up much but we'll see.
  40. [22:21:30] Monty Linden: The extreme cases can't even get in to services, they'll simply reset when they try to connect.
  41. [22:21:51] Monty Linden: Other connections will result in 503s and a connection closed by the server.
  42. [22:22:15] Monty Linden: Problem is that the original viewer coded a retry-as-fast-as-possible
  43. [22:22:22] Monty Linden: policy which made things worse.
  44. [22:22:30] Monty Linden: There is a pathological mesh case:
  45. [22:22:41] Monty Linden: retries happen so fast that *all* are 503'd and you never
  46. [22:22:46] Monty Linden: see any mesh progress.
  47. [22:22:55] Monty Linden: I'm curious if anyone here has experienced this.
  48. [22:23:01] Monty Linden: I can reproduce it fairly easily.
  49. [22:26:00] Monty Linden: the viewer is looking good and I'm trying to get it out
  50. [22:26:02] Maestro Linden: We should be clear that the viewer which respects Retry-After or uses the new GetMesh2 capability is not yet available. I believe the plan is to have a project viewer at some point?
  51. [22:26:03] Monty Linden: as quickly as possible.
  52. [22:26:16] Monty Linden: Also trying to get a better technical description out describing
  53. [22:26:23] Monty Linden: what I've done and what I'd like to do.
  54. [22:26:46] Monty Linden: All of this is preparation for HTTP pipelining which should be a very nice
  55. [22:27:02] Monty Linden: change, especially for high-ping-time locations (yuzuru).
  56. [22:27:35] Monty Linden: what maestro said, project viewer or maybe straight to RC
  57. [22:27:37] Monty Linden: not certain yet.
  58. [22:28:36] Monty Linden: that's the main thing
  59. [22:29:03] Monty Linden: are transmitted with 'chunked' encoding
  60. [22:29:13] Monty Linden: the value of this is that it provides redundant length information
  61. [22:29:22] Monty Linden: for reseponse data which allows libcurl and the viewer code
  62. [22:29:26] Maestro Linden: Ardy: Hm, 'motions' sounds like an avatar animation issue
  63. [22:29:31] Monty Linden: to validate that it really received a full response.
  64. [22:29:43] Monty Linden: If someone has a bad ISP or a bad network driver, they
  65. [22:29:51] Monty Linden: may see error messages indicating short data.
  66. [22:30:23] Monty Linden: (partial file transfer, or range header invalid)
  67. [22:30:37] Monty Linden: we'd like to hear about these but they likely indicate a
  68. [22:30:44] Monty Linden: weakness in the networking path.
  69. [22:32:13] Monty Linden: Rex, if actual data received on closed connection is shorter than that declared in content-length, you have a short response.
  70. [22:32:27] Monty Linden: Ditto if a connection closes in the middle of a chunk without completing the chunk.
  71. [22:32:37] Monty Linden: In fact, we have a jira where this happens.
  72. [22:33:23] Monty Linden: that's basically my story
  73. [22:34:00] Monty Linden: Anything inserting a RST into the stream will do it.
  74. [22:34:18] Monty Linden: Have seen bad HTTP caches that react badly to Range headers.
  75. [22:34:41] Monty Linden: It's a network. Things go wrong.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement