At 10:17 AM 20/07/2000 -0400, Jeff Sonstein wrote:
>okay
>so I have a tentative packaging scheme
>which seems to compile and run properly...
>you can find a test version
>which is "up" *most* of the time at:
>
>   http://mercury.it.rit.edu/~jeffs/vnet/
>
>and now I think it is time to kill off the main problem
>which seems to be preventing VNet from "scaling up"...
>the "chat lag" problem we have encountered
>during "break the server parties"
>
>====================
>
>symptom description:
>

---<snip>---

>-----
>
>possible solutions I've been thinking of:
>
>+========================================+
>| A) unified message queue for all users |
>+========================================+
>
>1) incoming message processing thread:
>
>an incoming message is deposited in the unified message queue
>*along with* a Vector of all the users
>to whom the message should be retransmitted
>[remember that "chat spatialization"
>  means everyone doesn't get every message]
>
>2) each user thread:
>
>walks through message queue looking for first message
>which has that user ID attached to it...
>if it finds one before the end of the queue
>   then retransmit it to the user
>   and remove the user ID from that message in the queue
>   if no more user IDs attached to that message in the queue
>     then remove that message from the queue
>
>3) at user logoff or crashout each user thread:
>
>walks through message queue looking for any messages
>which have that user ID attached to them...
>if it finds any
>   remove the user ID from the message in the queue
>   if no more user IDs attached to that message in the queue
>     remove the message from the queue
>
>+=========================================+
>| B) separate message queue for each user |
>+=========================================+
>
>1) incoming message processing thread:
>a message is deposited in each target-client's message queue
>[one per logged on user]
>
>2) each user thread:
>checks it's own message queue
>and removes messages after retransmission
>
>3) at user logoff or crashout each user thread:
>kills off it's own message queue
>
>---------------
>
>any comments from anyone??
>[pleasepleaseplease]  <g>

:-)

Hmmm... either of these sounds good to me.

What does VNet currently do? I must admit I have not looked closely at this 
part of the code. It feels like it does B or something like it... however 
the fact that all the users have their messages clog up at the same time 
make me wonder if it is using a single, unified queue already.

Best wishes,

         - Miriam



>jeffs
>
>--
>Jeff Sonstein
>Assistant Professor
>Department of Information Technology
>Rochester Institute of Technology
>----------------------------------------
>                   http://ariadne.iz.net/
>              http://www.it.rit.edu/~jxs/
>   http://ariadne.iz.net/~jeffs/jeffs.asc
>----------------------------------------
>There are no bugs,
>there are just undocumented features

         How I wish I could enumerate PI easily
          3. 1  4   1   5       9      2   6
---------=---------=---------=---------=---------=---------=------
http://werple.net.au/~miriam
http://web.access.net.au/miriam
http://ariadne.iz.net/~miriam
Virtual Reality Association  http://www.vr.org.au
AWABA - free kids' world  http://www.awaba.com

Reply via email to