전체 글104 동시성 이슈 - 분산 데이터베이스 동시성 제어 Index1. 동시성 이슈란 무엇인가?2. 자바에서 동시성 이슈 해결3. 데이터베이스 동시성 제어4. 분산 데이터베이스 동시성 제어 분산 데이터베이스 동시성 제어데이터베이스가 2대 이상 있거나 NoSQL과 서로 다른 DBMS을 사용하는 상황일때, 비관적락이나 낙관적락으로 해결할 수 없는 상황이 많다. 이런 분산데이터베이스 혹은 분산환경에서 CAP 이론이 적용된다. CAP 이론이란?Consistency(일관성) : 모든 노드가 동일한 시점에 동일한 데이터를 볼 수 있다. 즉, 데이터베이스 2대가 select 문을 날렸을 때 같은 데이터를 보는 것이다.Availability(가용성) : 모든 요청에 대해 항상 같은 응답을 제공한다. 쿼리를 날렸으면 응답이 와야한다.Partition Tolerance(파티션 .. 2024. 12. 11. 동시성 이슈 - 데이터베이스 동시성 제어 Index1. 동시성 이슈란 무엇인가?2. 자바에서 동시성 이슈 해결3. 데이터베이스 동시성 제어4. 분산 데이터베이스 동시성 제어 데이터베이스 동시성 제어데이터베이스에서 트랜잭션을 하나씩 순차적으로 실행하면 동시성 문제가 발생하지 않는다. 그러나 이 방법은 성능 저하를 초래한다.현실적으로 여러 서버에서 네트워크를 통해 다수의 트랜잭션이 동시에 데이터 베이스에 접근한다.따라서 동시성 문제를 해결하는 다른 방법이 필요하다. 트랜잭션 간 충돌이 발생할 수 있는 조건1. 서로 다른 트랜잭션에서 수행되는 연산일 것2. 같은 데이터를 사용할 것3. 최소 하나가 쓰기 연산일 것 위 세 가지 조건을 모두 만족할 때 "충돌 가능성"이 있다고 판단한다. Confliction Equivalent충돌 가능성이 있는 임계 영.. 2024. 12. 11. 동시성 이슈 - 자바에서 동시성 이슈 해결 Index1. 동시성 이슈란 무엇인가?2. 자바에서 동시성 이슈 해결3. 데이터베이스 동시성 제어4. 분산 데이터베이스 동시성 제어자바에서 동시성 이슈 해결자바에서 하나의 프로세스는 메모리를 점유하고 있고, 그 프로세스 내의 여러 스레드가 자원을 공유한다.공유되는 자원은 주로 힙 영역에 존재하는 객체와 static 변수 값이다. public class Counter { public int count = 0; // 임계영역 public void increment(){ count++; }}public class CounterTest { public static void main(String[] args) { Counter counter = new C.. 2024. 12. 11. 동시성 이슈 개념 Index1. 동시성 이슈란 무엇인가?2. 자바에서 동시성 이슈 해결3. 데이터베이스 동시성 제어4. 분산 데이터베이스 동시성 제어 - 동시성 이슈란 무엇인가?동시에 여러 개의 스레드, 프로세스 또는 작업이 공유된 자원에 접근하여 수정하는 과정에서 발생하는 문제들이다.동시성 이슈는 크게 세가지 조건이 충족될 때 발생할 수 있다. 1. 공유 자원에 접근2. 동기화 없이 접근3. 적어도 하나의 스레드가 자원을 변경 동시성 이슈를 방지하기 위해서는 위 세가지 조건 중 하나를 끊으면 된다. 보통은 동기화를 통해 이 문제를 해결한다.자바의 synchronized, lock 키워드나 데이터베이스의 락을 활용해 제어하는 경우가 많다. * 공유 자원이란 무엇인가?공유자원은 여러 프로세스나 스레드가 동시에 접근할 수 있.. 2024. 12. 11. 이전 1 2 3 4 5 6 7 ··· 26 다음