일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DFS
- 완전탐색
- Algorithm
- BFS
- nosql
- Docker
- Data structure
- It
- redis
- 프로그래머스
- 트랜잭션
- 데이터베이스
- 트러블슈팅
- HTML
- spring
- jpa
- 자료구조
- 알고리즘
- mysql
- websocket
- 백준
- CSS
- javascript
- 운영체제
- OS
- 영속성 컨텍스트
- db
- java
- PYTHON
- CS
- Today
- Total
목록락 (2)
If at first you don't succeed, try again
* 개요저번 글에 lock에 대해 개념과 실습을 진행했었다. [DB] Lock의 개념 및 테스트이번 글에서는 비관적 락과 낙관적 락에 대해 정리할 예정이다.예시는 좋아요 수와 관련하여 들도록 하겠다! * 비관적 락(Pessimistic Lock)비관적 락은 데이터 접근 시에 항상 충돌이 발생할 가능성이 있다고 가정한다.(비관적 관점)데이터를 보호하기 위해 항상 락을 걸어 다른 트랜잭션 접근을 방지한다.다른 트랜잭션은 락이 해제될 때까지 대기하는데, 락을 오래 점유하면 성능 저하 또는 deadlock으로 인한 장애가 발생한다.지난 글에서 살펴봤던 record lock은 비관적 락에 해당한다.비관적 락을 구현할 수 있는 방법은 크게 2가지로 나뉜다. * 비관적 락 - 방법 11. 트랜잭션 시작transact..

* 개요좋아요 수와 관련해서 개발 공부를 진행하다가 동시성 문제에 대해 고민을 하게 되었다.동시성 문제를 처리하는 것에는 다양한 방법이 있는데, 이 중 락(lock)에 대해 공부한 것을 정리하고자 한다. * Record LockRecord(=Row) : 테이블의 행 데이터Lock(잠금) : 여러 프로세스 또는 스레드가 자원에 동시에 접근하는 경쟁 상태를 방지하기 위해 제한을 거는 것Record Lock(=Row Lock) : 레코드에 락을 거는 것, 동일한 레코드를 동시에 조회 또는 수정할 때 데이터의 무결성을 보장하고 경쟁 상태를 방지하고자 하는 것 * Record Lock 테스트lock 테스트를 위한 lock_test 테이블을 만들고, (id = 1234, content = 'test') 레코드를 삽..