전체 글291 [ Concurrency Control] Automatic Acquisition of locks 데이터 베이스 내부에서 lock-S을 알아서 얻는 역할을 해준다. 위와 같은 로직으로 read할 때 충돌연산을 피해 락을 가져오게 된다. write를 할 때는 다음과 같이 락을 얻는다. 위와 같은 역할은 lock manager로 구현되어 있다. 락 메니저의 역할은 다음과 같다 요청에 대한 응답 메세지를 주거나 데드락을 유발할 경우 롤백을 하게 한다. 락을 위해 트랜잭션을 기다리게 해준다. 락에 대한 요청들을 락 테이블에 관리한다. 해시 테이블 형태로 구현되어 있다. 락테이블은 다음과 같이 해쉬 테이블로 관리된다. request of lock, request of unlock에 따라 테이블의 데이터별 큐를 관리를 하게 된다. 만약 트랜잭션에 abort가 발생하게 되면 어떻게 모든 트랜잭션을 테이블에서 지울.. 2020. 5. 31. [Concurrency Control] 2PL ensure conflict serializability? Proof 2PL 이 serializabizable schedule을 보장하지 못한다고 가정해보자. precedence graph를 그려서 cycle이 생겨야한다. T0->T1-> ... -> Tn->T0 이라고 하자. ai는 Ti의 lock point라고 하자.(phase 1에서 2로 넘어가는 부분) 2PL은 lock을 얻는 단계와 lock을 푸는 단계로 나뉜다. lock lock lock unlock unlock 와 같은 방식이다. Ti Tj R(Q) unlock W(Q) ... unlock 와 같이 있으면 충돌연산이기 떄문에 Ti의 Q를 락 푸는 시점이 Tj의 Q를 락 푸는 시점보다 빠르다. 일반화 시키면 Ti->Tj이면 ai->aj인데 cycle이 있다고 했기 때문에 T0->T0 순서이기 때문에 .. 2020. 5. 31. [Concurrency Control] Overview subtopic -lock-based protocols -multiple granularity locking -deadlock -insert and delete opertaions -transaction isolation in sql 2020. 5. 31. [Function] Funtion create js에서 function을 만들어보자. 방식 1 function add(x,y) { return x+y; } c와 python을 섞어둔 모습같다. python과 같이 매개변수와 리턴값에 대한 타입을 안 적는다. 방식2 var sum = funtion add(x,y){ return x+y; }; 방식 2에서 } 뒤에 세미콜론을 써야한다. 방식 1과 2는 엄연히 구조가 다르다. 방식 1, 2의 구조 방식1 functionadd(x,y){ return x+y} 방식2 sum----> functionadd(x,y){return x+y} 방식2를 함수 표현식이라고 칭한다. 다른 디테일이 있지만 단순하게 사용하고 추후에 살펴보는 것이 헷갈리지 않고 좋다. 방식3 var sum= new Function('x', 'y.. 2020. 5. 31. 이전 1 ··· 38 39 40 41 42 43 44 ··· 73 다음