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

[EPIC] WAL 및 Tree, 인덱스시스템 구현 #158

Open
myyrakle opened this issue Aug 28, 2024 · 0 comments
Open

[EPIC] WAL 및 Tree, 인덱스시스템 구현 #158

myyrakle opened this issue Aug 28, 2024 · 0 comments
Assignees
Labels

Comments

@myyrakle
Copy link
Owner

myyrakle commented Aug 28, 2024

현황

  • 트랜잭션 없음. 기본 디렉터리에 나이브하게 그냥 폴더 하나씩 만들고, Row 하나당 파일 하나씩 만들고 있음
  • 인덱스 없음. 모든 스캔이 풀스캔임.

문제

  • write 도중에 뭔가 장애가 발생하면 데이터가 불완전하게 작성되거나, 일부 파일만 작성될 수 있음. 원자성 부재
  • 느림

방향

  1. 일단 write가 발생하면 트랜잭션 단위로 만들어서 WAL을 우선 쌓고, 트랜잭션이 완료되면 WAL을 최종 데이터에 serialize하게 반영해야 함 (원자적으로 수행할 수 있어야 함)
  2. 트랜잭션 도중에도 트랜잭션 WAL에 저장된 데이터를 select하거나 추가적으로 수정할 수 있게 구현해야함. (트랜잭션 내의 데이터와 트랜잭션 외부의 데이터를 동시에 참조할 수 있어야 함)
  3. 뭔가 장애로 인해 발생한 WAL을 주기적으로 청소해주거나 하는 데몬이 있어야 함
  4. Btree 기반으로 인덱스 시스템을 구현하고, 이를 통해 빠르게 인덱스 스캔을 할 수 있도록 구현해야함
  5. Btree 인덱스는 메모리로 로드해서 사용하되, 디스크에도 백업을 해둬야함 (원자적으로?)
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