(1부) DB MVCC 개념 설명합니다 ! MVCC가 각각의 isolation level에서 어떻게 동작하는지도 MySQL & postgreSQL 예제와 함께 설명합니다

  Рет қаралды 7,434

쉬운코드

쉬운코드

Күн бұрын

Пікірлер: 37
@ez.
@ez. 2 жыл бұрын
코멘트 하나 남깁니다 * 오늘날 대부분의 RDBMS가 concurrency control을 위해 사용하는 기법인 MVCC 설명하는 영상입니다 - 1부 영상 : kzbin.info/www/bejne/rZq5p4mXo65mppY (현재 영상) - 2부 영상 : kzbin.info/www/bejne/Y5ytZJmupqugp6M
@asciicode8151
@asciicode8151 Жыл бұрын
ㅋㅋㅋㅋㅋㅋㅋ 마지막 끝날 때, 순간 환청 들리는 줄 알고 깜짝 놀랐어요 ㅋㅋㅋㅋ 신선하네요 ㅋㅋㅋㅋ (근데, 약간 웃겨요 ㅋㅋㅋ)
@ez.
@ez. Жыл бұрын
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 뭔가 인상깊었다면 성공입니다 ㅋㅋㅋㅋ
@sunkyoungjin7744
@sunkyoungjin7744 Жыл бұрын
배경음악이 없어도 다음 강의는 항상 기대되는데 더 비장한 마음가짐을 갖게되네요 ㅎㅎ 오늘 강의도 감사합니다! 차근차근 알려주셔서 도움이 많이돼요~~
@ez.
@ez. Жыл бұрын
bgm이 비장하긴 했죠 ㅎㅎㅎ 많은 도움을 드릴 수 있어서 저도 뿌듯합니다 :)
@minjoon1324
@minjoon1324 9 ай бұрын
진짜 매번 지리고갑니다 감사합니다
@ndkebedhidwnb11
@ndkebedhidwnb11 10 ай бұрын
유익한 강의 감사합니다!
@jiwon3373
@jiwon3373 Жыл бұрын
이런 귀한 영상을 무료로 볼 수 있다니 감사합니다🎉
@ez.
@ez. Жыл бұрын
헤헤 한국에 훌륭한 개발자 분들이 많이 나오는데 조금이라도 도움이 됐으면 좋겠네요 :) 👍
@참치마요-t9l
@참치마요-t9l Жыл бұрын
귀한 강의 감사합니다 !
@ez.
@ez. Жыл бұрын
좋게 봐주셔서 감사합니다 :)
@UJUNGKIM-n1y
@UJUNGKIM-n1y Жыл бұрын
감사합니다
@gogumaMalangyi
@gogumaMalangyi Жыл бұрын
쉬운코드... 그 사람의 강의요.? 손에 땀을 쥐게 만드는 스릴러 영화와 같았어요. ☆☆☆☆☆
@ez.
@ez. Жыл бұрын
ㅋㅋㅋㅋㅋㅋㅋ 심장이 두근두근하쥬?ㅎㅎ
@chris170841
@chris170841 Жыл бұрын
정말 감사합니다 ㅠㅠ
@ez.
@ez. Жыл бұрын
저도 댓글 감사합니다 :)
@정민교-j5f
@정민교-j5f Жыл бұрын
안녕하세요 쉬운코드님 질문이 있습니다. PostgreSQL은 repeatable read level에서 먼저 update한 트랜잭션이 commit되면 나중 트랜잭션은 rollback하는 규칙이 있다고 말씀하셨는데요 만약 txA가 x에 대해 먼저 update하였지만 commit은 하지 않았고 그 후에 txB가 x에 대해 update를 하고 commit하면 이 동작은 어떻게 되는지 알려주실 수 있으실까요? -------- 아 commit하지 않으면 애초에 lock도 반환을 하지 않으니 txB가 x에 대한 write-lock을 취득할 수 없으니 txB는 update를 실행조차 못하겠군요 이게 맞을까요?
@jhrmih6388
@jhrmih6388 Жыл бұрын
편집점 기가 막힙니다ㅋㅋㅋ
@ez.
@ez. Жыл бұрын
ㅋㅋㅋㅋㅋ 2부로 안 갈 수가 없죠
@dddd9379
@dddd9379 Жыл бұрын
안녕하세요 정보컴퓨터 임용에 큰 도움을 받고 있습니다. 혹시 참고서적이 어떤건지 알수 있을까요? 제가 보는 책음 너무 간단하게 나와있어서요~
@ez.
@ez. Жыл бұрын
안녕하세요~ 영상을 유익하게 봐주셔서 감사합니다 :) 참고 서적이라면 대학교 때 배웠던 교과서인데요, 사실 이 교과서 뿐만 아니라 구글링을 통해 각종 문서와 DBMS 메뉴얼과 위키 백과 등등을 다양하게 참고한 후에 정리한 내용이라서 참고 서적을 말씀드리기 조금 애매하네요 ㅠ
@ASA9129
@ASA9129 2 жыл бұрын
9:35초에 격리수준이 serializable일때 mysql은 lock 기반으로 동작, postgresql은 ssi기법으로 동작한다는걸 뒤에 말씀해 주신다 했는데 2부에서 연관된 설명이 나올까요?
@ez.
@ez. 2 жыл бұрын
네 맞습니다 :) 2부 영상이 곧 올라갈 예정인데요 거기서 다루게 됩니다 그런데 예제를 통해서 자세히 다루지는 않고요, 간결하게 설명합니다
@ASA9129
@ASA9129 2 жыл бұрын
네 알겠습니다. 영상 잘 보고 있습니다
@ez.
@ez. 2 жыл бұрын
항상 애청해 주셔서 감사합니다 :)
@김현우-p6p8c
@김현우-p6p8c Жыл бұрын
안녕하세요 ! 영상 잘 보고 있습니다,, 1,2 편, lock을 모두 보고 왔는데 궁금한 점이 생겼습니다,, MVCC는 locking 매커니즘을 해결하기 위해서 MVCC가 등장했다고 알고 있습니다. 그런데 설명 중에서 write를 할 때 lock 을 사용하는데, 이때 lock이랑 MVCC가 등장하게 된 이유인 lock 매커니즘과 어떤 차이가 있는건가요,,? 제가 어느 부분에서 혼동하고 있는지를 잘 모르겠어요,,ㅠㅠ 쉬운코드님 DB 정주행 중입니다. 질 좋은 강의 올려주셔서 감사합니다 ~
@ez.
@ez. Жыл бұрын
영상 유익하게 봐주셔서 감사합니다 :) DB 정주행도 정말 감사해요 👍 질문에 답변을 드리자면, 락의 장점도 있기 때문에, MVCC가 락 매커니즘을 완전히 대체하는 것이 아니라 락 매커니즘의 일부를 보완했다고 보시면 될 것 같아요. 그래서 MVCC라도 여전히 락을 쓰는 부분이 있습니다 (특히 write lock) MVCC가 락 매커니즘에서 주로 보완했던 부분은 write-read의 경우거나 read-write의 경우입니다 락 매커니즘에서는 이 두 경우에 대해서 나중에 실행된 트랜잭션이 락을 쥐기 위해서 기다려야 했는데, MVCC는 이걸 개선해서 기다릴 필요 없이 동작할 수 있도록 한 것이죠 반면에, 한쪽 트랜잭션이 write 할 때 다른 쪽 트랜잭션이 같은 데이터에 write 하는 것이 락 매커니즘에서는 불가능한데, 이 방식이 MVCC에서도 동일하게 동작합니다 (그래야 rollback 시에 문제 없이 롤백 될 수 있습니다) 참고로, 엄밀히 말씀드리면 이론적으로 MVCC는 락을 전혀 쓰지 않아도 동작할 수 있지만, 오늘날의 대부분의 RDBMS는 MVCC를 구현할 때 락을 혼용해서 쓴다고 이해하시면 될 것 같아요~
@김현우-p6p8c
@김현우-p6p8c Жыл бұрын
@@ez. 캬.. 감사합니다 MVCC는 락을 대체하는게 아니라 보완하는 경우이다. MVCC와 락 매커니즘의 차이는 read-write, write-read에서 발생하고 write-wirte인 경우에는 rollback 시에 문제 없이 롤백하기 위해서 동일하게 동작한다. 이해 바로 되버렸습니다~~ 감사합니다 ! 떡상하세여 쉬운코드님
@ez.
@ez. Жыл бұрын
@@김현우-p6p8c 감사합니다!!!👍
@강예원-w5p
@강예원-w5p Жыл бұрын
안녕하세요. 좋은 영상 감사합니다. MySQL과 MongoDB에 대해 비교하면서 공부중인데 해결되지 않는 궁금증이 있습니다. MongoDB도 MVCC를 지원한다고 하는데 RDB와 유사하게 작동하나요? MongoDB의 경우 어떤 방식으로 작동하는지 궁금합니다.
@ez.
@ez. Жыл бұрын
안녕하세요 :) 예상하기로는 mongoDB도 비슷할것 같은데요~ 정확한 동작은 저도 mongoDB 문서를 확인해야할 것 같아요
@강예원-w5p
@강예원-w5p Жыл бұрын
@@ez. 감사합니다. 영상 너무 잘 보고 있어요😄
@ez.
@ez. Жыл бұрын
@@강예원-w5p 헤헤 항상 애청해 주셔서 정말 정말 감사해요 :) 👍
@한준규-c2q
@한준규-c2q Жыл бұрын
이름에서 따오듯 새로운 버전을 만들어서 따로 관리하는 방법이군요! 그리고 lock 기법을 함께 활용한다 이런 느낌으로 이해하면 될까요 ?
@ez.
@ez. Жыл бұрын
넵 일반적으로는 MVCC가 적용되면 read할 때는 기본적으로는 락 없이 동작하고 write할 때는 락으로 동작한다고 이해하시면 될 것 같습니다~
@한준규-c2q
@한준규-c2q Жыл бұрын
@@ez. 감사합니다 :)
@CosmicPy
@CosmicPy Жыл бұрын
MVCC 모델에서는 lock 기반 동시성 제어 방식과 달리 두 트랜잭션이 동시에 write하는 상황만 제어한다. 이 때문에 동시성 수준이 높아지게 된다. MVCC 모델에서는 커밋된 데이터만 읽는다는 특징이 있다. REPEATABLE READ의 경우 RDBMS 종류에 따라 동작 방식이 다르다. 트랜잭션이 시작한 시점을 기준으로 데이터를 읽거나, 해당 데이터에 대한 최초의 질의가 시작한 시점을 기준으로 데이터를 읽는 경우도 있다. PostgreSQL의 경우 Update에 참여하는 모든 트랜잭션이 REPEATABLE READ를 사용할 경우 LOST UPDATE문제를 해결할 수 있다. 이미 커밋된 데이터를 참조하는 트랜잭션이 롤백되기 때문이다. MySQL의 경우 REPEATABLE READ + LOCKING READ를 수행해야 LOST UPDATE 문제를 해결할 수 있다. (2부)
Бенчик, пора купаться! 🛁 #бенчик #арти #симбочка
00:34
Симбочка Пимпочка
Рет қаралды 3,5 МЛН
Creepy facial features that only the upper class have
7:55
라인만드는 의사 DR.권병소
Рет қаралды 19 М.
01. 테이블은 어떻게 찾아낼까?
3:15
RealGrid
Рет қаралды 2,7 М.
PostgreSQL Internals in Action: MVCC
16:06
Denis Magda
Рет қаралды 1 М.