How complex is the configuration and how much data?

Usually you would use an external data store in this sort of situation which 
processes would query for configuration.

> On 18 May 2021, at 6:33 pm, Howie Lung <[email protected]> wrote:
> 
> Apology for the problem ambiguous, the problem that I want to solve is about 
> data consistency.
> 
> As mentioned, my environment has five processes (each process contains one 
> thread). My application has a property that is stored in memory and the data 
> is by reading a configuration file. According to the behavior of multiple 
> processes, every process maintains a different property. Hence, the property 
> is changed on process A, but the property on process B will not.
> 
> I have two requirements,  revising the configuration fine and reloading the 
> property on all processes. According to the two requirements, I have a draft 
> of implementation as below:
> At first, send an HTTP request to an arbitrary process that can revise the 
> configuration file and reload the property. After that, the process sends 
> HTTP requests to another process for asking them to reload. 
> 
> However, the process scheduler seems is not the round-robin which causes the 
> property is not consistent. In my opinion, the solution is not the best 
> method because it is suffered from data inconsistency.
> 
> Thank you for your prompt reply,
> Howie
> Graham Dumpleton 在 2021年5月18日 星期二上午11:28:35 [UTC+8] 的信中寫道:
> Is there a specific problem you are trying to solve by wanting to override 
> how it works?
> 
> There is no scheduler to speak of that you can override.
> 
> What happens is that each of the daemon process when using daemon mode uses a 
> cross process mutex lock on being able to accept the next connection. A 
> process will only attempt to acquire the cross process mutex lock if they 
> have a spare thread available ready to handle a request.
> 
> This mechanism ensures you don't end up with the greedy acceptor problem 
> where a process accepts connections it isn't in a position to handle 
> immediately, but also avoids the thundering heard problem.
> 
> Since the cross process mutex lock only comes into play for the accept phase 
> of a handling the connection and is then released, even though that same 
> process may still have idle threads in its thread pool, it is more likely 
> that a different process which is more ready gets the lock the next time. The 
> result of this is that acceptance of requests should be relatively balanced 
> across the processes.
> 
> That you are even asking suggests you think you have a problem where you need 
> more control. If your overall application handles various workloads (via 
> request handlers), there are perhaps better ways of dealing with it by 
> partitioning the URL namespace and directing requests to different daemon 
> process groups, each configured differently for that subset of requests 
> directed to it.
> 
> So as already asked, if you can explain what the problem is that you think 
> you have, I can perhaps suggest more appropriate ways of dealing with it.
> 
> Graham
> 
> 
>> On 17 May 2021, at 10:02 pm, 龍世豪 <[email protected] 
>> <applewebdata://1ABF2ECD-6F73-4770-A963-E698961F51FD>> wrote:
>> 
> 
>> Dear Dumpleton,
>> 
>> I have some questions about mod_wsgi. Could you help me to understand the 
>> concept of the module, thanks!
>> 
>> I enable the multiple process (five processes) to run the WSGI application. 
>> When it receives an HTTP request then a process will execute the 
>> application. Which process scheduler (e.g. round-robin, FIFO, ...) is used, 
>> and how the  mod_wsgi choose the next process? And can I change the process 
>> scheduler by configuration?
>> 
>> Best wishes,
>> Howie
>> 
> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <applewebdata://1ABF2ECD-6F73-4770-A963-E698961F51FD>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/modwsgi/CADWas%3DgSFgfsnnSq7fCUeg-wjb%3D1RiWD0Nknyapm1Wb2AquFHw%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/modwsgi/CADWas%3DgSFgfsnnSq7fCUeg-wjb%3D1RiWD0Nknyapm1Wb2AquFHw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/modwsgi/60aa339f-82f2-491b-b78f-5435b1d88e35n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/modwsgi/60aa339f-82f2-491b-b78f-5435b1d88e35n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/modwsgi/6BA1BC8D-BF5E-4115-9F8D-C423F6CD0A93%40gmail.com.

Reply via email to