X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 932E3D6E94 for ; Mon, 21 Nov 2005 19:24:24 -0400 (AST) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 92572-02 for ; Mon, 21 Nov 2005 23:24:26 +0000 (GMT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from floppy.pyrenet.fr (news.pyrenet.fr [194.116.145.2]) by svr1.postgresql.org (Postfix) with ESMTP id 1FD97DA7ED for ; Mon, 21 Nov 2005 19:24:21 -0400 (AST) Received: by floppy.pyrenet.fr (Postfix, from userid 106) id C725931059; Tue, 22 Nov 2005 00:24:19 +0100 (MET) From: "Qingqing Zhou" X-Newsgroups: pgsql.hackers Subject: Re: [ADMIN] ERROR: could not read block Date: Mon, 21 Nov 2005 18:24:39 -0500 Organization: Hub.Org Networking Services Lines: 32 Message-ID: References: <6BCB9D8A16AC4241919521715F4D8BCE92E86E@algol.sollentuna.se> X-Complaints-To: usenet@news.hub.org X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Original To: pgsql-hackers@postgresql.org X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, score=0 required=5 tests=[none] X-Spam-Score: 0 X-Spam-Level: X-Archive-Number: 200511/1110 X-Sequence-Number: 76392 ""Magnus Hagander"" wrote > > The way I read it, a delay should help. It's basically running out of > kernel buffers, and we just delay, somebody else (another process, or an > IRQ handler, or whatever) should get finished with their I/O, free up > the buffer, and let us have it. Looking around a bit I see several > references that you should retry on it, but nothing in the API docs. > I do think it's probably a good idea to do a short delay before retrying > - at least to yield the CPU for one slice. That would greatly increase > the probability of someone else finishing their I/O... > More I read on the second thread: " NTBackupread and NTBackupwrite both use buffered I/O. This means that Windows NT caches the I/O that is performed against the stream. It is also the only API that will back up the metadata of a file. This cache is pulled from limited resources: namely, pool and nonpaged pool. Because of this, extremely large numbers of files or files that are very large may cause the pool resources to run low. " So does it imply that if we use unbuffered I/O in Windows system will elminate this problem? If so, just add FILE_FLAG_NO_BUFFERING when we open data file will solve the problem -- but this change in fact very invasive, because it will make the strategy of server I/O optimization totally different from *nix. Regards, Qingqing