Is it possible to raise a Serializable Isolation Violation in Redshift using only Insert and Select statements?

Viewed 397

Just a bit of background: Our software is performing simple, but quite rapid rapid (+/- 1 per second at peak, at times concurrently), INSERT and SELECT statements against a particular Redshift table. Sometimes, one of these statements, usually an INSERT statement (maybe always?), will throw a Serializable Isolation Violation. No joins or anything complicated, just inserting a single record, and selecting groups of records based on a filter.

My question: How is it possible to raise a Serializable Isolation Violation in Redshift using only Insert and Select statements?

From my understanding of how Serializable Isolation is intended to work, only things like UPDATE and DELETE statements should break serializability. I have read the documentation over and over and over again, but it doesn't provide any useful examples for really understanding the principles at hand. I figure that maybe I am understanding SI incorrectly. Can somebody explain (hopefully with an example) how this principle works?

An alternate title for this question could also be: "Explain Like I'm 5: Serialization Isolation," as it is quite possible that I am asking the wrong question entirely.

1 Answers
Related