Menu

1 / 2

Chia sẽ câu hỏi pv backend dev

DEV Community: redis·Đạt Trương Thành·5 months ago
#MKO8rOB5
#dev#case#thanh#trong#database
Reading 0:00
15s threshold

Hôm trước mình vừa trải qua một buổi phỏng vấn vị trí Backend Developer Intern tại FPT Telecom. Và mình được tech lead hỏi 3 bài toán sau. Mình đưa ra được solution cho case 1, case 2 thì dự án mình chưa xử lý đến mức đó =)))), case 3 thì mình có dùng Redis nhưng không solve cho case này =))), nên cũng cook luôn

Nay mình viết bài này để chia sẽ đến mọi người 3 case này và solution của nó như sau:

Case 1: Xử lý Race Condition

Câu hỏi: Giả sử trong kho chỉ còn đúng 1 sản phẩm cuối cùng. Có 2 người dùng cùng lúc ấn nút thanh toán ở cùng 1 thời điểm thì điều gì sẽ xảy ra và làm sao để xử lý chuyện kho bị âm?

Và đây là cách mình giải quyết:

Lúc này mình đã nhớ đến quy tắc isolation và consistency trong ACID để xử lý transaction. Và mình đã dùng perssimistic locking trong database transaction để giải quyết.

Nói nôm na cho dễ hiểu, isolation giống như việc bạn đi mua đồ vậy.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.