본문 바로가기

학습 기록 (Learning Logs)

(315)
concurrenct problem 공통 질문    발표 자료는 추후에 정리해서 올리겠습니다.오늘은 별도의 내용을 가지고 발표하겠습니다.
noSQL 공통 질문  출처: https://www.youtube.com/watch?v=sqVByJ5tbNA  1. RDB의 단점- 스키마(컬럼) 추가기존에 데이터를 다시 써야한다db 부담이 된다  - 정규화장점:- data 중복을 최소화한다단점- 데이터를 조회할때 join을 많이 해야한다.- read 응답 시간이 늦어진다.- join을 여러개 하면 cpu를 많이 사용한다  - Scale up요청이 많아지면, 성능 좋은 컴퓨터로 바꾼다 - replication 사용한대의 쓰기, 여러개의 읽기 서버 다수를 만든다.  - Scale out 유연하지 않다database server를 추가해서 해결하는 방법write 트래픽이 많다면, 성능이 낮아진다 - 어떻게 해결할까?1. 샤딩샤딩을 하면 데이터를 옮겨야한다.서비스가 운..
mvcc 공통 질문  출처: https://www.youtube.com/watch?v=wiVvVanI3p4   동시성을 해결하려고 했을때 처리량이 낮음   자신만 알고 있는 공간에 write를 한다고 하자  1. mvcc는 commit된 데이터만 읽는다   2. Recoverability를 위해 commit후 write unlock을 해야한다  3. isolation level 따라 데이터를 다르게 읽는다1) read commited - commit되면 최신 데이터로 읽는다(mysql, postgreSQL)   2) repeatable read
lock 공통 질문   출처: https://www.youtube.com/watch?v=0PScmeO3Fig     write lock == exclusive lock- write 불가능- read 불가능transation2는 기다린다 transaction1이 write lock 해제해야 접근 가능하다  transaction2는 write lock 을 획득한다  write lock 일때 read도 기다린다  read lock == shared lock- read 가능- write 불가능 transaction1은 read lock으로 잠근다 lock 호환성lock 예제 1(읽기, 쓰기)- transaction2가 먼저 시작 read lock 이 먼저 실행되서 write는 기다린다   lock 예제 2(읽기, 읽기)..
database 공통 질문
transaction 공통 질문   출처:https://www.youtube.com/watch?v=sLJ8ypeHGlMtransaction?- 단일한 논리적인 작업 단위(a single logical unit of work)- 논리적인 이유로 여러 sql문을 단일 작업으로 묶어서, 나눠질 수 없도록 만듦- transaction 내부에서 일부만 성공, 일부는 실패하는 경우는 발생하지 않는다   j가 h에게 20만원 이체 하기이렇게 분리하게 되면 왼쪽거가 실패하면, 또는 오른쪽만 실패하면 데이터의 정합성이 깨진다 따라서 두개가 성공해야 한다는 단일 작업으로 묶어준다 transaction 사용 패턴  1. 트랜잭션 적용: start transaction  2. 트랜잭션 중에 롤백Auto commit   auto commit 비활..
isolation level 공통 질문데이터 불일치 문제 발생1. Dirty read2. Non-repeatable read || Fuzzy read3. Phantom readANSI SQL에서 정의된 격리 수준 4단계1. READ UNCOMMITTED2. READ COMMITTED3. REPEATABLE READ4. SERIALIZABLE기존 논문 비판1. Dirty Write2. Lost Update3. Read skew4. Write skew5. dirty read 다른 예제6. Phantom read 다른 예제추가 격리 수준snapshot isolation실무에서 isolation level1. mysql2. oracle3. sql server4. postgreSQL   출처:https://www.youtube.com/wat..
SQLite 공통 질문  SQLite파일 기반의 경량 관계형 데이터베이스 관리 시스템(RDBMS)자체적으로 실행 가능한 "임베디드(Embedded) 데이터베이스"**입니다.서버가 필요 없으며, 애플리케이션에 직접 통합할 수 있습니다.특징1. 파일 기반 데이터베이스데이터는 하나의 단일 파일(.sqlite, .db 등)에 저장됨.파일 이동만으로도 데이터베이스 백업 및 복사가 가능함.2. 서버가 필요 없는 임베디드 데이터베이스PostgreSQL, MySQL과 달리 클라이언트-서버 아키텍처가 아님.애플리케이션 내부에서 직접 데이터베이스를 실행할 수 있음.별도의 설정 없이 실행 가능(Zero Configuration).3. 경량(Lightweight)바이너리 크기가 매우 작음 (약 500KB ~ 1MB)메모리 사용량이 적음 ..