uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From feixiang <feixian...@gmail.com>
Subject "getEmptyCas()" block reason guess
Date Thu, 27 May 2010 05:24:34 GMT
   By multiple tests,I have a guess that why this method(getEmptyCas) is 
blocked.
   Because the latter AE(deployed in remote) doesn't remove CAS from 
CasPool in time ,the method doesn't get a free CAS is CasPool,then it
is blocked in a constant time(t seconds).The method check if there is
a free CAS every t seconds.
   However, the latter AE removes the CAS every t1 seconds. Time t is
quite longer than t1 that there is a free cas in CasPool,but the method
is still blocked.
  So it looks like that the multipler is always busy.
  Is the guess right?
  To solve the problem,I have 2 suggestions.We can improve the speed
of the latter AE.Or we can reduce the method's time of checking for a 
free cas in CasPool.
  Is that right?Could you tell me the relationship of casPool size and 
casMultiplier poolsize?

  My system is described as:
    The aggregate AE(assumed as A) contains 3 AEes.The second part assumed
 as B is a multiplier which contains a flow controller.B produce a new
 cas and drop the original cas.The casPool and casMultiplier poolsize
 are:

in A:
   casPool=30
   casMultiplier = 20
in B(There is one instance):
   casPool=5
   casMultiplier poolSize= 2 (or 10 you can set)
Other parts in A: casPool<10.
   GetEmptyCas() will block until a free CAS is available in the CasPool.
What does the CasPool mean?Is it casMultiplier pool? Or just the casPool in
reply queue?Could you describe the process that B analyzes a cas.Where does 
GetEmptyCas() get a free cas and Where does B send the new cas to? 
   The question seems very troublesome,I am very grateful if you give 
me a hand.Thank you.


Best regards.
feixiang
   


Mime
View raw message