मुझे लगता है कि अपेक्षित व्यवहार थोड़ा हटकर है। db_slow कमिट होने से पहले, टेबल की सभी पंक्तियाँ लॉक हो जाती हैं। इसके कमिट होने के बाद, दो पंक्तियाँ होती हैं। db_slow होने पर db_fast अनब्लॉक हो जाता है। इसलिए, व्यवहार है:
- db_slow:पंक्ति 1 चुनें और उसे लॉक करें
- db_slow:देखें कि यह केवल 1 पंक्ति है और प्रतीक्षा करें
- db_fast:पंक्ति 1 का चयन करने का प्रयास करें, देखें कि यह लॉक है, प्रतीक्षा करें
- db_slow:'2' वाली पंक्ति डालें
- db_slow:कमिट करें
- db_fast:अनब्लॉक किया गया और 2 पंक्तियों को पढ़ता है
- db_fast:कुछ नहीं करता
- फू के साथ समाप्त करें:1, 2