Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20230128] WAL(Write-Ahead Log) #272

Open
JuHyun419 opened this issue Jan 28, 2023 · 0 comments
Open

[20230128] WAL(Write-Ahead Log) #272

JuHyun419 opened this issue Jan 28, 2023 · 0 comments
Labels

Comments

@JuHyun419
Copy link
Owner

JuHyun419 commented Jan 28, 2023

WAL(Write-Ahead Log)

  • WAL은 DB의 특징인 ACID 중 원자성(Atomicity), 일관성(Consistency)을 보장하는 기술
    • 트랜잭션이 발생하기 전 로그를 미리 기록하고, 데이터가 쌓이면 Flush를 통해 DB의 Disk에 DATA BLOCK 형태로 Write 한다.
    • 이러한 로그를 통해 누가 조회를 하든 동일한 데이터를 보장하는 일관성(Consistency), 원자성(Atomicity)을 보장한다.
  • 따라서 쿼리의 데이터가 로그 파일에 순차적으로 남아있기 때문에 장애가 발생했을 때 활용이 가능하다.

추가적으로 ..

  • 데이터베이스에 저장된 데이터를 디스크에서 읽을 때 접근 방식은 순차 I/O, 랜덤 I/O가 존재함
    • 순차 I/O: Sequential Access
    • 랜덤 I/O: Random Access
    • 순차 접근이 랜덤 접근보다 매우 빠른데, 디스크의 헤드를 접근하는 차이 때문 ..
    • 결국 데이터베이스 성능또한 랜덤I/O 자체를 줄이는 것이라 볼 수 있음
    • 랜덤 I/O를 줄인다? -> 쿼리를 처리하는 데 꼭 필요한 데이터만 읽도록 쿼리를 개선하는 것
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant