Hi devs,
Suppose two requests come to Axis2/C sequentially. Say the first
request is served by one apache process and the next request is served
by another process. Then problem is you cannot access the previous
requests configuration context from your next request because each
process has it's own configuration context. We recently solved this
problem using shared memory. But as should be expected this is
extremely inefficient.
Yes, it is about 10 times slower than non-shared memory implementation.
The other and more effiecient solution is using a database that could
be shared among your processes. Sandesha2/C uses this approach.
We have to test the performance of this to decide whether it is worth
doing. I guess the performance will be higher than shared memory
implementation. Only problem is how to solve concurrency issue, without
global mutex.
To solve concurrency issues when using this approach we can use
Apache2 golbal mutex which could be used when accessing global
resources like system files and databases.
Shared memory implementation is very slow because of global mutex :).
So, if we introduce it here, then again we are going to have same issue
as in shared memory implementation. Can't we have database level
concurrency protection to solve this?
Shall we have a comparision of database implementation Vs shared memory
- with and without global mutex to see whether it is worth doing?
Regards,
Shankar.
But the problem is how we could pass this global mutext from Axis2
apache module to be accessible from other parts of the code, for
example from a Axis2/C module. We currently pass Apache2 pools through
axis2_env_t environment. How about using the same in passing this as
well?
thanks,
Damitha
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]