From owner-freebsd-hackers Wed Aug 12 02:08:00 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id CAA24580 for freebsd-hackers-outgoing; Wed, 12 Aug 1998 02:08:00 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from omnix.net (omnix.net [194.183.217.130]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id CAA24568 for ; Wed, 12 Aug 1998 02:07:54 -0700 (PDT) (envelope-from didier@omnix.net) Received: from localhost (didier@localhost) by omnix.net (8.8.7/8.8.7) with SMTP id JAA02426; Wed, 12 Aug 1998 09:07:23 GMT (envelope-from didier@omnix.net) Date: Wed, 12 Aug 1998 11:07:23 +0200 (CEST) From: Didier Derny To: support@yard.de cc: hackers@FreeBSD.ORG Subject: network problem with FreeBSD/Yard (yardnetd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi, I've a strange problem with yard. A/ Symptoms/Investigation ------------------------- 1/ I was using yard with ESQL without yardnetd and everything worked fine. 2/ I started using DBI::YARD in perl (requires the use of yardnetd) then everything went wrong (I suppose that this problem is the same than for the odbc delay in september/october 1997). 3/ While using Yard from Perl on a very large and badly designed database, I'm only able to read 1 row /s even on a pentium II, with fasts disks. Everything was ok on the sql side, nothing in the logs except that Yard was extremely slow. 4/ I started to check everything in the Yard configuration to see if there was dome deadlock or lack of resources... Nothing! then I started to think that it was a network problem, so I checked everything on the BSD side (lo0). It worked fine. my conclusion was that yardnetd and perl/dbi were waiting each other due to a timeout somewhere. nothing in perl/dbi:yard. 5/ I started to check in the "demon book" "BSD 4.4 design and implementation" and discovered on pages 470/471 that the ACK could be delayed to avoid sending empty or almost empty packet. (the book was saying "bottom of page 471" that X11 was setting the TCP_NODELAY option to avoid this delay). 6/ I checked in freebsd (3.0 may) how I could disable this mechanism. I played with sysctl -a and discovered a ...ack_delayed=1 parameter and tried to put it to 0. (then everything worked fined with yard and the 8000 records database was (read/reorganized/reinserted) in a few seconds when it took hours before. 7/ I'm not using 3.0 at the office but 2.2.5 where this parameter is not present. so I made an awful hack replacing DELACK by ACKNOW in tcp_input.c and tcp_output.c. I got the same result and yard work. B/ Solution ? ------------- 1/ I suppose that a setsockopt(socket... TCP_NODELAY..) would have the same result for the yard application if it was inserted in the yard code ? 2/ what are the implication of setting ...ack_delayed=0 for the system ? 3/ What should I say to Yard to have this problem solved ? I hope that Yard will be able to sove this problem quickly, Yard is a very reliable and efficient database. Thanks for your help -- Didier Derny didier@omnix.net To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message