Should I start with implementing one the options proposed?
which one would you prefer?

On Sun, Nov 20, 2011 at 16:57, Maxim Solodovnik <[email protected]>wrote:

> Hello Sebastian,
>
> I haven't test so much clients, I have no server with big number of
> attendees.
> To resolve the issue I can write a method in clientListManager which will
> accept Set<IConnection> as a parameter and return all roomClients with ids
> passed in one request.
>
> Or if you feel this would be performance degradation I can move RoomClient
> out of database.
> It was necessary bacause in old designs RoomPolls has references to
> RoomClient, currently it references Users, so it might me easily removed
> from the DB and will affect nothing.
>
>
> On Sun, Nov 20, 2011 at 16:46, [email protected] <
> [email protected]> wrote:
>
>> Hi Maxim,
>>
>> I would like to discuss a design problem of the new architecture to store
>> the RoomClients in the database.
>>
>> Did you see that when iterating through the connections for example in
>> the method:
>>
>> http://code.google.com/p/openmeetings/source/browse/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java#2504
>>
>> You request on each connection, everytime you iterate throuhg a SINGLE
>> SELECT on the database to get the roomclient ?!
>> Meaning if you have 200 people in a conference room you make 200 single
>> select statements on the database, and as that happens for example for each
>> time the green dod in video-views starts or stops to blink, or each time
>> the users sends a new whiteboard event ...actually everytime you sync
>> ANYTHING to your participants the server will iterate through all session
>> objects and then does now a SINGLE query for each connection getting the
>> corresponding RoomClient from the DB.
>>
>> Did you ever test the effect when having lets say 500 participants
>> online, and 150 in a single room and now you send a whiteboard event, how
>> long does it take?! I mean we make a real-time application? This
>> implementation does not scale at all. That was the reason why the
>> RoomClient was a static variable of type HashMap and not in the database.
>> To be able to access it really FAST. Red5 does something similar for
>> "sharedObjects" it stores them in the session (using ehCache I think).
>>
>> However, there is really need for immediatelly change in that part,
>> making a single selct ON EACH CONNECTION => this will not fly!
>>
>> Can you please propose some concept on that, so we discuss this together
>> and then implement it.
>>
>>
>> Sebastian
>>
>> --
>> Sebastian Wagner
>> http://www.openmeetings.de
>> http://www.webbase-design.de
>> http://www.wagner-sebastian.com
>> [email protected]
>>
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
WBR
Maxim aka solomax

-- 
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to