C
ChUIMonster
Guest
In this case "buffer" is a synonym for "block". The message is telling you that a shared memory connection was killed while it held a latch on a block. The database will see that and realize that the latch will never be released and that, therefore, everyone who wants that resource will queue forever. Since the information about how to reverse that changes being protected by the latch was only held in the memory of the process that was killed there is no way to safely unlock the resource. The only feasible solution is to shutdown. Why would a mere extract need to lock blocks? 1) You want consistent reads. It wouldn't be very good if the record was being updated by someone while you read it (you can see how that "works" if you connect -RO... every now and then your session will crash with some very scary messages...) 2) Progress needs to keep track of access for LRU purposes and also makes adjustments to the LRU chain dues to reads -- these operations all need to be protected by latches.
Continue reading...
Continue reading...