Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Stress test
- 자바
- spring microservice
- cloud native
- nGrinder
- java
- 코틀린
- Spring
- 동기화
- Algorithm
- ansible
- 머신러닝
- kubernetes
- ingress
- 마이크로서비스
- MySQL
- 헬름
- cloud native java
- devops
- CRD
- 쿠버네티스
- 클라우드 네이티브 자바
- MSA
- decorator 패턴
- 클라우드 네이티브
- Kotlin
- Semaphore
- Microservice
- 익명클래스
- Adapter 패턴
Archives
- Today
- Total
목록Foundation/Programming (1)
카샤의 만개시기
Second Lost Updates Problem (두 번의 갱신 분실 문제)
동시성 프로그래밍을 할때 트랜잭션 처리는 반드시 고려해야 할 사항이다. 하지만 데이터베이스 트랜잭션 범위를 넘어가는 문제가 발생하는 경우도 있다. 예를 들어 사용자 A와 B가 동시에 동일한 위키백과 내용을 열람하고 이를 수정할때, A가 먼저 수정완료 버튼을 누르고 그 이후에 B가 수정완료 버튼을 누르는 경우가 있을 수 있다. 그렇게되면 먼저 완료 버튼을 누른 A의 수정사항은 사라지고 나중에 완료한 B의 수정사항만 남는 현상이 일어난다. 이를 Second Lost Updates Problem(두 번의 갱신 분실 문제)라고 한다. 이 문제를 해결하기 위해서는 3가지 선택 방법이 존재한다. 마지막 커밋 인정하기 위에서 설명한것과 같이 A의 수정사항은 무시하고 마지막에 커밋한 B의 내용만 인정하는 방법으로 가장..
Foundation/Programming
2019. 7. 9. 00:48