[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: PATCH: DCOPServer hanging on non responding client.
From:       joerg habenicht <j.habenicht () stud ! uni-hannover ! de>
Date:       2001-01-30 8:30:45
[Download RAW message or body]

On Mon, 29 Jan 2001, Waldo Bastian wrote:

> On Monday 29 January 2001 00:06, joerg habenicht wrote:
> >
> > are some of them only for internal use ?
> 
> ?? What do you mean with "internal"? They are send between the dcop-client 
> and the dcop-server.

by "internal" i meant messages to be sent only between the transport
protocol layers and not the above laying users.


> 
> [snip]
> 
> 
> > Is the client able to process the old DCOP message entirely, when the
> > server fires a new message already ?
> 
> When the client has received a complete DCOP message he can process it.

well, I wanted to know, if the client can be interrupted by a second
message while processing the first one.

> 
> > with this, one can rely on the messges arriving "in order".
> 
> Yes, we don't want to change the order of events.

I don't want to change them, too.
But I wanted to know, whether my computer thinks in a different way and
changes the packets being sent.
(but it doesn't seem to be)


> 
> > And secondly, do messages get lost on the way between server and client ?
> > I don't think so, do they ?
> 
> No. That's the whole point of this exercise.

(see above)

> 
> > do we really rely on the data arriving "in order" ?
> 
> The underlying communication channel guarantees the order.

aaahhh :-)

> 
> > If so, we could use this, too. But for calculating the needed frames there
> > we need a bit more CPU power, 20-30 circles. It isn't much, but I like
> > ideas of lean, clean and smart protocols.
> 
> The idea is to fill the comunication channel as much as possible in order to 
> reduce the need to wait for ack's as much as possible. Waiting for ack's is 
> very expensive in terms of response time because it adds a full 
> round-trip-delay. A few CPU cycles is nothing compared to that. 


yes, but we could achive that by sending frame sequence numbers, too.

> > ?
> > I think of 64k being the max. frame length.
> > so the maximum outstanding data for sending a sequence would be half the
> > sequnce number, ie. 8bit sequence = 265/2 frames = 128*64kb outstanding
> > max.
> > please correct me being wrong.
> 
> You can't have more than 64Kb of outstanding data because you would exceed 
> the buffer capacity of your communication channel. That is exactly the 
> problem that we need to solve, preventing that the unprocessed data exceeds 
> the buffer capacity of the communication channel. What used to happen is that 

Well, I must have been unclear about this.
With "outstanding data" I meant that part, which had not been send to the
client. I'm totally aware of the 64kb restriction, that's why I send
those mails at all.

> the dcopserver blocked while waiting for the data to be processed resulting 
> in a complete lockup of the desktop. I have changed this, and now the 
> dcopserver doesn't block but throws away the connection when this situation 
> happens. In 99.9% of the cases this situation never occurs, but it 
> effectively limits the size of the data that can be send via a DCOP call to 
> somewhat less than 64Kb. 
> 
> Cheers,
> Waldo
> -- 
> bastian@kde.org | SuSE Labs KDE Developer | bastian@suse.com
> 


cu,
Joerg

-- 
THE full automatic planets host
:-)                            http://www.planetsserver.com

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GE/CS/IT d- s+:- a- C++ ULS+++>++++ P++ L+++>++++$ 
E W++ N+(+++) !o? !K? w--(---) !O(++) !M !PS !PE !Y? PGP+ 
t-- 5-- X-- tv+ b++ DI+() D-(+) G>+ e++>+++ h+(*) r% y? UF
------END GEEK CODE BLOCK------
"Man sollte das Leben nicht so ernst nehmen, 
 Du überlebt es sowieso nicht."

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic