데이터가 있는 곳
사용자가 정한 GitHub 저장소입니다. Plaintext라면 파일을 그대로 review할 수 있습니다.
GitHub 기반 서버리스 RDB
GitDB는 extension, static app, agent, 작은 tool이 table, SQL식 조회, transaction, index, 선택적 암호화를 GitHub commit 위에서 쓰게 해줍니다.
사용자가 정한 GitHub 저장소입니다. Plaintext라면 파일을 그대로 review할 수 있습니다.
Table, row, index, select, join, delete, transaction 같은 작은 RDB 동작입니다.
GitHub API 왕복과 Git commit 시간이 듭니다. hot OLTP보다 저빈도 앱 데이터에 맞습니다.
동작 방식
앱은 GitDB API를 호출합니다. GitDB는 데이터베이스 상태를 GitHub에 씁니다. 열릴 때는 커밋된 파일을 읽고 table 상태를 복구합니다.
row를 넣고, index로 조회하고, table을 join하고, transaction으로 묶습니다.
GitDB는 데이터베이스를 manifest, log, index, snapshot 파일로 직렬화합니다.
저장은 Git tree 생성과 non-force ref update로 이루어집니다.
Manifest가 가리키는 log와 snapshot만 읽어 database state를 다시 만듭니다.
선택지가 명확한 곳
GitDB는 일반 SQL 서버를 흉내 낸 대체물이 아닙니다. GitHub를 데이터 저장소로 쓰는 작은 RDB runtime입니다.
벤치마크
벤치마크 데이터를 불러오는 중입니다.
| 모드 | 작업 | 데이터셋 | 반환/변경 row | 시간 |
|---|
| 시나리오 | writes/s | write | query/join | reopen |
|---|