From: Scott Marlowe <smarlowe@g2switchworks.com>
To: Kevin Grittner <Kevin.Grittner@wicourts.gov>
Cc: pgsql-admin@postgresql.org
Subject: Re: ERROR: could not read block
Date: Mon, 14 Nov 2005 17:43:47 -0600
Message-ID: <1132011827.3582.18.camel@state.g2switchworks.com> (raw)
In-Reply-To: <4378C76502000025000006AE@gwmta.wicourts.gov>
References: <4378C76502000025000006AE@gwmta.wicourts.gov>
On Mon, 2005-11-14 at 17:20, Kevin Grittner wrote:
> A programmer ran a query to fix some data against two "identical"
> databases -- one on Linux and one on Windows. They are both 8.1.0,
> running on dual hyperthreaded Xeons, with data on RAID5. The Linux
> update went fine. The Windows attempt give this:
>
> dtr=> UPDATE
> dtr-> "DbTranRepository"
> dtr-> SET "userId" = UPPER("userId")
> dtr-> WHERE (
> dtr(> ("userId" <> UPPER("userId")) AND
> dtr(> ("timestampValue" BETWEEN '2005-10-28' AND '2005-11-15'));
> ERROR: could not read block 649847 of relation 1663/16385/16483:
> Invalid argument
When a block is unreadable, this means that the OS is experiencing a
read error from the hard drive.
This is not necessarily related to the OS you are running so much as the
hardware you are running on top of.
If you were running on top of a RAID 1+0 or RAID 5 array, such an error
would likely never have happened, since it would have been detected by
the controller, and either the bad block would be mapped out or the
drive would be kicked out of the array and you'd get a system alert
telling you you had a bad drive in your array.
All Databases expect to run on "perfect" hardware. If the hardware gets
a read error, the database is NOT going to know what to do to fix it.
So, right now, it's not Linux 1, Windows 0, it's The box you're running
Linux on 1, the box you're running Windows on 0.
You've got a drive with a bad block.
Are you running on quality hardware (ECC memory, Server class SCSI
drives, battery backed cache hardware RAID array, etc...) or just
whatever was laying about unused. If you're not running your database
on quality hardware, you can't expect reliable results from your
testing, because what you're going to see are the hardware issues
showing up, not the database issues.
That said. PostgreSQL has been running on unix or some flavor of it
since its inception. It's been running on Windows in native mode for
about a year now. I'd say Liunx is going to be a better choice for
production for a while.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: smarlowe@g2switchworks.com, Kevin.Grittner@wicourts.gov
Subject: Re: ERROR: could not read block
In-Reply-To: <1132011827.3582.18.camel@state.g2switchworks.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox