본문 바로가기

동시성 처리3

분산환경 동시성 처리 2 - redisson 활용 https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있다. JVM 진영에서는 객체의 상태 변수도 race condition 이 발pius712.tistory.com https://pius712.tistory.com/26 분산환경 동시성 처리 2 - redis SETNX 사용https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있pius712.t.. 2024. 5. 17.
분산환경 동시성 처리 2 - redis SETNX 사용 https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있다. JVM 진영에서는 객체의 상태 변수도 race condition 이 발pius712.tistory.com 위 포스팅에서는 database 기능을 통해서 동시성 처리 예제를 만들어 보았다.이번 포스팅에서는 redis 를 활용하여 동시성 제어를 해보려고한다.이번 포스팅에서는 redis 자체에 대해서는 깊게 다루지 않으려고 한다.선착순과는 다른점참고로, 이전 포스팅과 이번 포스팅의 사례는 선착순 시스템의 경우에는 적절하지 않을 수 있다.왜냐하면, 기본적으로 이전 포스팅에.. 2024. 5. 17.
분산환경 동시성 처리 1 - db 사용 동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있다. JVM 진영에서는 객체의 상태 변수도 race condition 이 발생할 수 있는데, 이번에는 데이터베이스를 중점적으로 다뤄볼 예정이다.데이터베이스에서 발생하는 race condition 의 경우, JVM 언어가 아닌 nodejs 같은 싱글스레드 기반의 언어에서도 발생할 수 있다. 그 이유는 데이터베이스 자체가 멀티스레드로 동작하기 때문이다.동시성이 발생하는 이유는 하나의 공유 자원에 대해 여러 개의 연산이 원자적(atomic) 으로 동작하지 않기 때문이다.아래의 예시처럼 t1 스레드와 t2 스레드가 food 의 개수를 감소하는 로직을 다룬다고 했을 때,.. 2024. 5. 17.