트랜잭션 고립과 관련된 문제들(issues) 중에 "second lost updates problem"이라는 것이 있습니다. Hibernate in Action의 원문을 그대로 인용하면 내용은 다음과 같습니다.
Second lost updates problem— This is a special case of an unrepeatable read. Imagine that two concurrent transactions both read a row, one writes to it and commits, and then the second writes to it and commits. The changes made by the first writer are lost. This problem is also known as last write wins.
내용은 간단하여 마지막에 갱신(update)하는 쪽이 유효하게 되고, 첫번째 갱신한 내용은 유실된다는 얘기입니다. 그런데, 왜 second lost updates problem이라고 하는 걸까요? 이 문장은 아무리 해석을 해 봐도, 첫 번째 갱신이 유실되는게 아니라, 두 번째 갱신을 잃게 된다고 해석될 수 밖에 없습니다. 김용환님의 "자바 ORM 표준 JPA 프로그래밍"에서는 한글로 "두 번의 갱신 문제"라고 의미가 잘 되게 의역하고 있습니다.
왜 그런지 궁금하여 검색을 꽤 해 봤지만 정확한 답을 찾을 수는 없었습니다. 다만, 다음과 같은 내용을 알 수 있었는데, 저자들의 Hibernate in Action의 후속작이라고 할 수 있는 Java Persistence with Hibernates 2판에서는 "second lost updates problem"이라고 하지 않고 의미가 잘 들어나게 "last commit wins problem"라고 기술하고 있습니다. 해당 책에는 second lost updates라는 표현은 어디에도 나오지 않습니다.
이를 볼 때 다음과 같이 몇가지 가정을 해 볼 수 있을 거 같습니다.
- "Second lost updates problem"이라는 말은 hibernates in action에서 처음 시작된 것이 아닌가 하는 생각이 듭니다. 그런데, 오타나 다른 의도로 second를 사용했는데 정정되지 않고 계속 사용된 게 아닌가 싶습니다. 개념이야 책 이전부터 있어왔던 문제겠지만 해당 내용을 지칭하는 말이 "Second lost updates problem"이라면 검색 시 어원 등이 쉽게 나와야 하는데 그렇지 않습니다. 이렇게 생각해 볼 수 있는 또 하나의 근거로 https://forum.hibernate.org/viewtopic.php?p=2226458와 같은 글도 찾을 수 있었습니다. 이 글의 하단에 보면 질문한 사람이 관련된 내용을 많이 찾을 수 없었는지, 보다 많은 정보 검색을 위해 "Second lost updates problem"의 다른 이름을 묻는 내용이 나오고 있습니다.
- second가 붙은 이유가 책의 Isolation Issues 부분에 열거되는 항목 첫번째에 lost update가 있어서 lost update와 관련된 두 번째 문제라는 의미로 쓴 게 아닌가 하는 생각이 듭니다.
- Isolation Issues 부분에 열거되는 항목 중 이 항목의 바로 위 항목이 "unrepeatable read"이고 upreatable read와 관련된 두 번째 문제가 "Second lost updates problem"인데, unrepeatable read의 두 번째 문제라는 의미로 second가 잘 못 된 위치에 들어간 게 아닌가 하는 생각이 듭니다.
모두 다 가정일 뿐이고, 혹시나해서 Hibernates In Action의 출판후 교정 내용(errata)이 있나 찾아봤지만 출판된지가 오래돼서 그런지 찾을 수가 없었습니다.
두 번의 갱신 문제에 대한 영어를 표기할 때는 second lost updates problem을 표기한다면 last commit wins problem을 같이 표기해 주거나 후자를 주로 쓰는게 혼동이 없어 좋을 거 같다는 생각이 듭니다.
여담인데, 필자들에게 문의하려고 연락처(이메일 주소)를 검색해 봤지만 찾을 수가 없어서, 아쉽게도 직접 물어 보지는 못했습니다.
'알쓸신잡' 카테고리의 다른 글
open weights 의미 (2) | 2024.10.30 |
---|