Hi all,
I'm looking for a good way to solve the following problem:
Clients connect to a machine, login and wait for messages. These messages (basically strings) are stored in a database with the appropriate client id. Each client request is forked by the main perl process. So each process should check for messages in the database (e.g. 5x per second).
When there are many clients connected, this causes a heavy load on the database. I am looking for a good solution for this.
The best I can come up with is this:
The main process which accepts clients forks another process which selects the unique client ids from the message database. This process signals the corresponding client process that there are messages waiting. After this, the corresponding process will also query the database to get the waiting messages.
This way, only one process actively queries the database.
The difficulty in this approach is the process setup and fork management. The main process knows it's childs and thus the connected client, but the database poller process does not.
Any ideas/suggestions/improvements?
Marcello
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.