Comment by gmueckl

7 years ago

What possibilities are there for a write to fail that the database server cannot react to? I am under the impression that a write error like this would be reported as a failure to run the statement and the application is responsible for handling that.

The box turning off, the disk interface failing, and/or the link to the database failing in mid instruction.

Same as SQS.

  • All of those would result in a write failure from the application's perspective, which is fine, and must be accounted for regardless (e.g. retry, two phase commit, log an error, whatever).

  • But you have to explicitly delete the message from SQS, right? You'd only delete after confirming you processed the message, right? So if you die mid-instruction in processing a message, the message just re-appears in the SQS queue after the visibility timeout.

  • Also the FS might report the data as written but its actually in a write cache and will be lost if the plug is pulled.

    • Not an issue if you follow th e recommendations in the PostgeSQL documentation. The way to comfigure write caches is described there.