Schrödinger's Cat and RCU (Well, Structured Procrastination, Actually)
davecb writes "Paul E. McKenney, one of the Linux RCU implementors, addresses the problem of synchronization using structured deferral on, what else, Mr Schrödinger's famous cat. Courtesy of deferral/procrastination, the cat can be both alive and dead at the same time. 'In this example, Schrödinger would like to construct an in-memory database to keep track of the animals in his zoo. Births would of course result in insertions into this database, while deaths would result in deletions. The database is also queried by those interested in the health and welfare of Schrödinger's animals. Schrödinger has numerous short-lived animals such as mice, resulting in high update rates. In addition, there is a surprising level of interest in the health of Schrödinger's cat, so much so that Schrödinger sometimes wonders whether his mice are responsible for most of these queries. Regardless of their source, the database must handle the large volume of cat-related queries without suffering from excessive levels of contention. Both accesses and updates are typically quite short, involving accessing or mutating an in-memory data structure, and therefore synchronization overhead cannot be ignored.'"
I feel like this submission was generated by SCIgen.
sysadmins and parents of newborns get the same amount of sleep.
I know! Let's explain the workings of a deterministic computational system using analogies to quantum mechanics! Everyone find quantum mechanics clear and intuitive.
Problem: how to package your paper so you get that all-expenses paid invite to the conference in Nice, France, and get a crowded lecture hall when it's your turn to present.
Mr. McKenney's first attempt, "In-Memory Data Store Consistency in the presence of Heavy Concurrent Loads", failed miserably. But he didn't stop there.
Slashdot Translation: It's similar to how an article exists in a superposition of both interesting and uninteresting at the same time, so long as no one reads it. Rather than RTFA and collapse the superposition, we can simply read the quantumly entangled comments to determine the degree of interest in accordance with our groupthink.
He can be both ignorant and knowledgeable at same time until measured.
And if in an entangled pair of students one just copies notes off other, measuring one of them will immediately collapse the wave function of another.
... would feel about the fact that his cat became a household name to illustrate quantum weirdness.
After all he created that thought experiment to mock the Copenhagen Interpretation. He was severely unhappy with the latter, and argued against it in his article on the meaning of wave mechanics.
Having implemented some RCU code in projects myself, I think I might be of help translating.
The whole reference to Schrodinger's cat is in relation to the state of a list when multiple readers are moving across it while multiple writers are deleting elements (or killing cats). Some readers may see the cat as dead, and some alive. We say that readers may not agree. This is for RCU - the competing sychronization primitive Hazard Pointers ensures all readers agree, but this feature is rarely a requirement for most data structures.
And still have not determined it's state.
You are being MICROattacked, from various angles, in a SOFT manner.
Key of the problem is that we can not know whether the cat is dead or alive without looking at it. Poor cat. But could we maybe determine the dead/alive state of the cat indirectly? For example by looking at the death rates of the mice? After all, when the cat is alive mice will die. So by just looking at the death rate of mice we can tell the cat is alive or dead, without looking at the cat directly. And as we never look at the cat directly it will remain dead and alive forever, without being forced in one of its quantum states "dead" or "alive". And in the meantime we actually know whether the cat is alive or dead, without the cat itself knowing. Meaning it can live forever.
Makes sense? No more than the submission to me... Oh well.
It's Professor Schrödinger for you, not Mr. Schrödinger.
Just no.
While births indeed should mean insertions in to the database, deaths should not be deletions. They should be updating the Living flag to 'N' and populating the Date of Death and Cause of Death fields.
They're going to want reports and stats not just on the current living animals. I didn't RTFA ('natch) but if they missed that requirement, what else have they overlooked?
RTFA anyone?