분류 전체보기 38

[기타] TPCC++ - write skew 테스트 용 벤치마크

Serializable Isolation for Snapshot Databases(MICHAEL J. CAHILL, UWE ROHM, and ALAN D. FEKETE) 라는 아티클에 소개된 벤치마크다.SI에서 SSI로 발전에서 가장 큰 부분인 Write Skew를 검증하기 위해서 개발되었다. TPC-C는 OLTP 워크로드 테스트에 가장 대표적인 벤치마크라 할 수 있다. 하지만 이 TPC-C만으로는 write skew가 개선되었는지를 충분히 테스트하기엔 아쉬운 점이 많다.그래서 이 연구에서는 직렬성을 깨트릴 수 있는 'Credit Check'라는 새로운 트랜잭션을 추가하였다. Write Skew라는 문제는 결국 두 트랜잭션이 동시에 같은 값을 읽고 쓰려고 할 때 발생하는 문제다. (RW-dependecy..

DB 2025.02.05

[논문리뷰] Serializable Snapshot Isolation in PostgreSQL (VLDB '12)

MySQL, Oracle의 Locking 기법과는 좀 다른 Snapshot Isolation에 대해 간략하게 엿볼 수 있는 논문이다.특히 Serializability에 대해 고민해볼 수 있는 좋은 논문이라 생각한다. 나는 Write Skew와 SSI의 구현을 중심적으로 읽고 정리하였다.더 자세한 내용은 논문을 읽어보길 바란다. 논문이 잘 쓰여서 재밌게 읽을 수 있을 것 같다.  Snapshot Isolation (SI)Read가 트랜잭션 시작된 시점의 Committed Version 기준트랜잭션이 시작된 이후의 변경 사항을 볼 수 없음한 트랜잭션 안에서는 일관성 보장First-Writer-WinsPostgreSQL: MVCC 방식을 사용하여 구현Repeatable Read라 불림 장점Dirty Reads..

DB 2025.01.31

[논문리뷰] On Optimistic Methods for Concurrency Control (OCC)

대표적인 CC 기법으로는 Timestamp, OCC, MVCC가 있다. 그 중 OCC의 논문에 대해 리뷰를 진행해보겠다.추가로 만약 Database에 관심이 있다면 CMU의 앤디 파블로 교수의 Advanced Database Systems 강의를 꼭 수강해보길 바란다. 이 강의만 잘 들어도 DB에 대해 많은 공부가 된다.https://youtu.be/BShOt5gYiPs?si=rrOZJtUF2I_dsyvc  논문: https://dl.acm.org/doi/10.1145/319566.319567IntroductionNon-locking Concurrency Control트랜잭션 롤백에 의존충돌 발생 횟수가 적다고 가정PhaseRead읽기 작업: 제약 없이 실행 가능쓰기 작업: 로컬 복사본 생성 → 여기에 ..

카테고리 없음 2025.01.13

[기타] 서울시 청년 임차보증금 이자지원 사업 후기 - 대학원생, 근린생활시설

안녕하세요.서울시에서 진행하고 있는 청년 임차보증금 이자지원 사업에 대해 후기를 작성해보려 합니다.저는 대학원생 신분으로 근린생활시설(사무소)에 있는 주택을 대상으로 대출을 받았습니다.너무 정보가 없고 힘들었기 때문에... 다들 도움이 되시길 바라며 글을 써봅니다. 앞서서 말하자면 웬만하면 근생 말고 일반 주택으로 들어가시길 바랍니다.저는 이 집과 거리, 금액적인 조건이 너무 맘에 들어서 강행했지만 법적으로나 대출면으로 보나 안전하지 않은 집이라 생각합니다.   1. 청년 임차보증금 이자지원 사업이란?https://housing.seoul.go.kr/site/main/content/sh01_040901 사업개요 | 청년임차보증금 | 청년·신혼부부 지원 | 서울주거포털서울주거포털,청년 임차보증금 이자지원 ..

기타 2024.12.11

[알고리즘] 대표적인 DP 문제들에 대한 알고리즘과 수도코드 - 점화식 기초

면접 준비 용으로 대표적인 알고리즘 문제들을 풀어보려 한다.비전공자들을 대상으로 보는 면접이라 생각하고, 어려운 문제는 제외했다.문제가 길지 않고 간단하며, 정답 수도코드도 짧게 나올 수 있는 문제 위주로  1. 피보나치 수열문제: https://www.acmicpc.net/problem/2748코드:// 재귀int fibo(int n) { if(n==1) return 0; else if(n==2) return 1; else return (fibo(n-1) + fibo(n-2));}// 반복문int fibo2(int n) { int f[n]; f[0] = 0; f[1] = 1; if (n>1) { for(i in 2~n-1) { f[i] = f[i-1] +..

기타 2024.10.26

[선형대수] Rank에 따른 Ax=b의 해의 개수 구하기

이론적인 내용(가우스 소거법, RREF니 다 무시)은 제외하고 개념적인 내용만 이해해보려고 한다.수학 문제를 풀기 위한 이해가 아니라, 논리적으로 개념을 이해하기 위한 글. rank에 대한 자세한 설명은 이전 글을 참고.https://kongjino.tistory.com/33 [선형대수] Rank란? (수학적, 기하학적인 의미) - 왕초보 기준으로 이해하기데이터사이언스 공부를 하기 위해서 선형대수는 필수기 때문에 울며 겨자먹기로 공부 중이다. (수학 못하고 싫어해서...)선형대수를 처음 공부하고 수학을 못하는 나를 기준으로 이해한 점을 작kongjino.tistory.com   # 연립일차방정식의 해의 개수 구하기n차원 공간에서 이해하기 전에, 우리가 중학생 때 배웠던 2차원 상의 연립방정식의 해의 개수..

수학 2024.10.19

[선형대수] Rank란? (수학적, 기하학적인 의미) - 왕초보 기준으로 이해하기

데이터사이언스 공부를 하기 위해서 선형대수는 필수기 때문에 울며 겨자먹기로 공부 중이다. (수학 못하고 싫어해서...)선형대수를 처음 공부하고 수학을 못하는 나를 기준으로 이해한 점을 작성해본다.행렬, 매트릭스 등의 기본 개념은 안다고 가정한다.수학적 설명을 위한 글이 아닌 속성 이해를 위한 글이므로, 정확한 개념은 다른 글을 참고해주시길 바랍니다. 표기 (예쁘게 표기할 자신이 없어서 아래처럼 씁니다.)- Col: Column- [1 2 3 / 4 5 6]: 각 row를 의미, 즉 row1은 [123] row2는 [456]이라는 뜻- 대문자 알파벳은 행렬, 소문자 알파벳은 스칼라, v는 벡터를 의미합니다.- ==는 같다는 의미입니다. 변수++는 변수에 1을 더한다는 의미입니다.   # Rank란Colum..

수학 2024.10.19

[MySQL/InnoDB] Update와 Insert의 Locking, Blocking(대기) - 코드를 중심으로

MySQL 코드를 분석하면서 배운 점을 정리한 글입니다.학부생 수준의 이해를 기반으로 한 글이니, 참고용으로만 보시면 됩니다.웬만하면 공식 문서를 직접 보거나 코드를 확인해주시는 걸 추천드립니다. (일반 서버 개발자들을 위한 글이 아닙니다!! MySQL 연구를 위한 글입니다!! 개발에는 아무 도움이 안 되는 글입니다!!)  Serializable mode를 가정한 설명입니다.Lock 충돌을 확인하고, 충돌에 대해 blocking되어 대기 상태로 빠지는 부분을 위주로 공부하였습니다.   Update의 Locking업데이트의 경우 Locking이 좀 더 일반적이고 직관적으로 진행된다. 코드로는row_search_mvcc() -> sel_set_rec_lock() -> lock_clust_rec_read_ch..

DB 2024.09.30

[논문리뷰] Controlled Lock Violation (SIGMOD’13)

학부연구생을 시작하면서 처음 읽은 논문입니다. 그때 작성한 리뷰라 풋풋한 맛이 있는 것 같습니다. 전문적인 시선보다는 그냥 학생이 썼다 생각하고 봐주시길 바랍니다.Locking에 관심있는 사람이라면 꼭 읽어보길 추천드립니다.하지만 아무도 관심 없겠죠......    너무 길어서 노션으로 첨부합니다https://hjinu.notion.site/Controlled-Lock-Violation-71c9cadb29ce4fdc9fdab2ef39110a0e?pvs=4 Controlled Lock Violation | Notion정보hjinu.notion.site  참고https://dl.acm.org/doi/pdf/10.1145/2463676.2465325

DB 2024.09.30

[논문리뷰] Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking (SIGMOD ’21)

교수님께 공유하기 위해 작성한 매우 간단한 리뷰입니다.Locking 위주로 핵심 내용만 빠르게 잡았습니다.     [논문 핵심 내용]Bamboo 프로토콜: 트랜잭션이 특정 조건 아래에서 Lock을 일찍 해제할 수 있도록마지막 업데이트를 수행한 후 트랜잭션을 Retire 상태로 전환한다. Retire 상태에서는 다른 트랜잭션의 Lock 획득을 허용한다.트랜잭션이 완료되면 Lock을 해제한다.[Deadlock 관리 방법]각 트랜잭션은 시작될 때 고유한 Timestamp가 할당된다. Timestamp가 낮을수록(먼저 시작한 트랜잭션일수록) 우선순위가 높다.Wound-Wait 기법: T1이 Lock을 보유하고 있을 때 T2가 Lock을 요청한다면우선순위가 T1T1>T2: T2는 대기(wait)한다.    Loc..

DB 2024.09.30