Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
- Timestamp:
-
02/04/13 20:54:02 (11 years ago)
- Author:
-
wmoore
- Comment:
-
Josh / Chris / Carlos - any idea how tricky are the steps I've outlined above? How bad is the risk of 2 workers accessing the same stateful service etc?
Legend:
- Unmodified
- Added
- Removed
- Modified
-
-
Property
Status
changed from
new
to
accepted
-
initial
|
v6
|
|
7 | 7 | svc.close() |
8 | 8 | }}} |
9 | | idiom. In other words, no stateful service lives longer than a single web gateway method call. With Bio-Formats now backing many of the services (renderingengine, rawpixelsservice, etc), this means that each method call (getPlane(), renderJpeg()) is performing a full `setId`invocation. For some formats, this can take several seconds. |
| 9 | idiom. In other words, no stateful service lives longer than a single http requestl. With Bio-Formats now backing many of the services (renderingengine, rawpixelsservice, etc), this means that each method call (getPlane(), renderJpeg()) is performing a full `setId`invocation. For some formats, this can take several seconds. |
10 | 10 | |
11 | 11 | Melissa is working on reducing `setId` times, and eventually the Bio-Formats state can be cached server-side in order to further speed up the individual lookups, but there may still be the need for properly handling state from the web client. |
12 | 12 | |
13 | | A first step is likely to evaluate the user impact of the slow down (especially when several users are accessing the web simultaneously). |
| 13 | A first step is likely to evaluate the user impact of the slow down (especially when several users are accessing the web simultaneously). #10183 |
| 14 | |
| 15 | |
| 16 | If the Blitz Gateway is to re-use existing stateful services (E.g. rendering engine already initialised on a particular imageId) then we have to support several steps |
| 17 | - Once we have joined a session... |
| 18 | - Identify stateful services that exist on the server |
| 19 | - Determine whether any of these are initialised with the correct ImageId |
| 20 | - Recreate the client-side proxy |
| 21 | - Update the state (E.g. turn channels on/off etc) and get output (Render plane) |
| 22 | - Leave the service open. |
| 23 | - The server would need to purge or limit the number of these open stateful services. |
| 24 | |
| 25 | NB: If multiple web workers are simultaneously following the above steps, I imagine it's possible that they could both try to work with the same stateful service, causing all sorts of problems! |
1.3.13-PRO © 2008-2011
Agilo Software all
rights reserved
(this page was served in: 0.12618 sec.)