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.

Changes between Initial Version and Version 6 of Ticket #10178


Ignore:
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
  • Ticket #10178

    • Property Status changed from new to accepted
  • Ticket #10178 – Description

    initial v6  
    77      svc.close() 
    88}}} 
    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. 
     9idiom. 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. 
    1010 
    1111Melissa 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. 
    1212 
    13 A first step is likely to evaluate the user impact of the slow down (especially when several users are accessing the web simultaneously). 
     13A 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 
     16If 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 
     25NB: 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.)

We're Hiring!