# race condition

Redis를 사용해 요청 횟수를 제한해 보자
배경) 특정 클라이언트에서 짧은 시간에 A기능만 과도한 요청 -> A 기능에 사용되는 DB에 많은 부하 발생 -> 이로 인해 A 기능 성능 저하 -> 특정 클라이언트의 과도한 요청으로 A 기능을 요청한 모든 클라이언트에게 응답 지연 발생 내용) "과도한 요청" -

[개발 일기] 싱글턴 클래스의 동기화 처리
이 포스팅부터 내가 회사를 다니면서 알게 되거나 느낀 것들을 끄적여 보려고 한다. 이번 주제는 싱글턴 클래스가 여러 곳에서 사용될 때 발생할 수 있는 race condition을 어떻게 해결할 것인지에 대해 적어보려고 한다.
TIL: Asynchronous, MicroTask, Race Condition, Dead-Lock
이름 때문에 매번 헷갈리는 동기와 비동기. 대체 어떤게 동시에 일어난다는 걸까?'요청과 결과가 동시에 일어나는 것'이 바로 동기(Synchronous)이다. 그렇다면 비동기는? 요청과 결과가 동시에 일어나지 않는 것이다.'call setTimeout' 이 실행하자마자
[운영체제] Synchronization (1) - Race Condition, Critical Section
두 개 이상 프로세스/스레드가 shared resource에 동시에 concurrent하게 접근함으로써 결과 값이 확정 되지가 않고, 그때 그때 실행할 때마다 조금씩 바뀌는 현상
동시성 문제 해결
pessimistic lockDB에 직접 락(lock)을 거는 방법Spring Jpa 에서 findById 대신에 @Lock 을 사용한 메서드를 사용하면 된다.제일 간편하나 Transaction이 필요하다.optimistic lockversion 처리를 하여 사용하는
Transaction 사용하기: #3 Django에서 transaction 과 동시성 처리
이번 포스트에서는 transaction을 사용했음에도, 데이터 무결성이 보장되지 않는 상태의 토이 프로젝트를 개선해볼 것이다. 토이 프로젝트 구조 토이프로젝트 구조는 2편에 설명하였던 것과 동일하다. project와 audio는 1:N 관계이다. 각각의 audio는
Fiber - 동시성프로그래밍
IO작업이 빈번한 웹서버와 같은 프로그램에서 단순히 멀티스레드방식으로 구현하면 race condition이 발생 할 수 있다. Fiber를 이용하면 개발자가 소프트웨어적으로 block을 하고 제어권을 다른 준비된 Fiber에게 넘기는 방식으로 race condition
Synchronized 키워드
멀티스레드 환경에서는 여러 스레드가 변경 가능한 공유 데이터를 동시에 수정하려 할 때 레이스 컨디션이 발생한다. 자바에서는 이러한 레이스 컨디션을 회피할 수 있도록 synchronized 기능을 제공한다. synchronized 키워드를 붙이면 해당 블록에는 오직 하나
Spring에서의 Race Condition을 synchronized로 해결할 수 있을까?
멀티 쓰레드 환경에서 Java는 Race Condition을 해결하기 위해 synchronized 키워드를 제공한다. synchronized 키워드가 붙은 메서드 블럭은 하나의 스레드만 접근할 수 있도록 하여 Race Condition이 발생하지 않도록 동작하게 한다.
Race Condition
Race Condition Definitions Race Condition이란 두 개 이상의 프로세스가 공통 자원을 Concurrently하게 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고
Race Condition, 세마포어, 뮤텍스
공유 자원과 임계구역 공유 자원(shared resource) 공유 자원(shared resource)은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다.공동으로 쓰기 때문에 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않
[프로세스 동기화] Peterson's Solution
프로세스의 동기화 이슈는 프로그래밍을 하면서 만나는 중요한 이슈다. 운영체제가 사용하는 프로세스 번호를 관리하는 전역변수 next_available_pid가 있다. 프로그램 실행 도중 프로세스A와 프로세스B가 생성되었다.두 프로세스는 우연히 비슷한 시기에 프로세스를 생
Django race condition 처리 방법
문제 특정 게시물의 조회수를 센다거나, 은행 계좌의 잔고를 관리하는 어플리케이션을 로직을 개발한다고 가정해보자. 이런 경우에 원래 모델의 값을 읽어서, +1 을 한다거나 특정 값을 더해서 새로운 값을 업데이트한다. Django에서 race condition을 고려하지
[django] get_or_create vs update_or_create
getorcreate vs updateorcreate 에 대하여

[운영 체제]Process Synchronization
공유 데이터(shared data)의 동시 접근(concurrent acecss)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다일관성(consistency)를 위해 협력프로세스간의 실행순서를 정해주는 메커니즘이 필요여러 프로세스들이 동시에 데이터

Things to Note Concurrent Programming
Concurrent Programming이 어려운 점은, 여러 작업흐름을 관리하면서, 공유데이터에 접근해야 한다는 점이다. 구체적으로 어떤 상황들을 마주할 수 있으며, 어떻게 해결할 수 있는지 알아보자.

[React][ESLint] useEffect - Race condition (Effect callbacks are synchronous to prevent race conditions. put the async funtion inside:)
https://darrengwon.tistory.com/275