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]

Reply via email to