Page 2 of 2 FirstFirst 1 2
Results 16 to 23 of 23

Thread: A question about ChatRoom in Connections Issue #2

  1. #16
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    Quote Originally Posted by marc
    I'm not sure I understand the question. All calls can block if the server doesn't respond, this is nothing specific to Glacier2. The same would happen if you would call the server directly. To avoid this, you typically set timeouts.
    I means that if one Server behind Glacier2 runs very slowly, then other Servers will be affected in some circumstance.

    Please have a look at the attach file first. This is my explanation:
    Suppose there are many threads in each Client sending requests to different Servers (Server1/Server2) simultaneously We know that in Glacier2, there is a RequestQueue1 corresponding to Client1, and that all requests from Client1 are cached in RequestQueue1.

    Suppose there are 3 requests in RequestQueue1 now: request-a(to Server1) , request-b(to Server2) , request-c(to Server2) . If Server1 runs very slowly for some reason and has no time to receive requests on the wire, the AMI call (request-a) to Server1 in RequestQueue1 will be blocked and other requests (request-b/reqeust-c) to other Servers(Server2) will have to wait. That is, the slowing Server1 has a bad effect on other Servers(Server2). It’s very terrible.

    Now every Client has a corresponding RequestQueue in Glacier2 and all requests to different Servers from the same Client are mixed in a RequestQueue. I think that this is the core of problem. Maybe if we put all requests to the same Server from different Clients in a RequestQueue instead of putting all requests to different Servers from the same Client in a RequestQueue can solve the problem.
    Attached Files Attached Files
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

  2. #17
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    Now every Client has a corresponding RequestQueue in Glacier2 and all requests to different Servers from the same Client are mixed in a RequestQueue. I think that this is the core of problem. Maybe if we put all requests to the same Server from different Clients in a RequestQueue instead of putting all requests to different Servers from the same Client in a RequestQueue can solve the problem.
    Maybe the best solution is set a timeout to the AMI calls in the RequestQueue. If any AMI call times out, just put the request at the bottom in the RequestQueue and retry it next time. Maybe 2 new properties can control this:
    Glacier2.AMI.timeout=xxx
    Glacier2.AMI.retrys=yyy
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

  3. #18
    matthew's Avatar
    matthew is offline ZeroC Staff
    Name: Matthew Newhook
    Organization: ZeroC, Inc.
    Project: Internet Communications Engine
    Join Date
    Feb 2003
    Location
    NL, Canada
    Posts
    1,458
    What you say is technically correct, its not a scenario that Glacier2 is designed to protect against. Glacier2 isn't meant to protect clients from misbehaving servers, it is meant to protect servers against misbehaving clients. In real world applications client can be expected to misbehave for a whole host of reasons. Servers in a protected environment should be well behaved. If they are not, then they should be fixed.

    Best Regards, Matthew

  4. #19
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    Quote Originally Posted by matthew
    What you say is technically correct, its not a scenario that Glacier2 is designed to protect against. Glacier2 isn't meant to protect clients from misbehaving servers, it is meant to protect servers against misbehaving clients. In real world applications client can be expected to misbehave for a whole host of reasons. Servers in a protected environment should be well behaved. If they are not, then they should be fixed.

    Best Regards, Matthew
    I don't agree with you.
    There are all kinds of servers behind Glacier2. It's very normal that some runs very fast while some runs slowly because they may do more things in a request than other servers do. Both of them are not misbehaving servers.
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

  5. #20
    matthew's Avatar
    matthew is offline ZeroC Staff
    Name: Matthew Newhook
    Organization: ZeroC, Inc.
    Project: Internet Communications Engine
    Join Date
    Feb 2003
    Location
    NL, Canada
    Posts
    1,458
    If the server cannot keep up with the client then its misbehaving and you should either deploy more of them, or architect them differently. In our view it is not the job of Glacier2 to protect the client against this situation.

    Regards, Matthew

  6. #21
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    Quote Originally Posted by matthew
    If the server cannot keep up with the client then its misbehaving and you should either deploy more of them, or architect them differently. In our view it is not the job of Glacier2 to protect the client against this situation.

    Regards, Matthew
    I am sorry, but I still can not agree with you and I can not convince you either. What I can do is holding on my opition.
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

  7. #22
    matthew's Avatar
    matthew is offline ZeroC Staff
    Name: Matthew Newhook
    Organization: ZeroC, Inc.
    Project: Internet Communications Engine
    Join Date
    Feb 2003
    Location
    NL, Canada
    Posts
    1,458
    There are lots of solutions to your issue
    - Since you have the source to Glacier2 itself so you may make whatever changes you feel are necessary.
    - If you don't want to modify Glacier2, then you can write a custom service to handle the back end message queuing for the slow servers.

    Best Regards, Matthew

  8. #23
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    Quote Originally Posted by matthew
    There are lots of solutions to your issue
    - Since you have the source to Glacier2 itself so you may make whatever changes you feel are necessary.
    - If you don't want to modify Glacier2, then you can write a custom service to handle the back end message queuing for the slow servers.

    Best Regards, Matthew
    Thank you, Matthew. I am just a fan of ICE and up to now I haven't yet use ICE in my projects because I knew Ice until last year's autumn. I am now just reading ICE's documents and source code and raising my questions and I hope these can be helpful to ICE.
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Connections Issue #7
    By marc in forum Announcements
    Replies: 0
    Last Post: 10-03-2005, 11:32 AM
  2. Connections Issue #6
    By marc in forum Announcements
    Replies: 0
    Last Post: 09-05-2005, 01:31 PM
  3. Connections Issue #5
    By marc in forum Announcements
    Replies: 0
    Last Post: 08-02-2005, 10:33 AM
  4. Connections Issue #4
    By marc in forum Announcements
    Replies: 0
    Last Post: 07-01-2005, 07:01 AM
  5. Connections Issue #3
    By marc in forum Announcements
    Replies: 0
    Last Post: 06-01-2005, 03:26 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •