LiteFS - SQLite를 위한 오픈소스 분산 파일 시스템을 소개합니다
해당 웹페이지에서는 아래와 같이 소개하고 있고요..
Fly.io runs apps close to users around the world, by taking containers and upgrading them to full-fledged virtual machines running on our own hardware around the world. We're also building an open-source distributed file system for SQLite called LiteFS which is pretty cool too. Give us a whirl and get up and running quickly.
Full-stack developers are sleeping on SQLite, a database most devs think more suited to unit tests than production loads. That's true enough for some apps. Most web apps are read-heavy, though, and we can use that to our advantage. With the right tooling, SQLite makes for faster, simpler web apps.
....(중략)...
LiteFS: Where We're Going We Don't Need Database Servers
At least, not as such.
LiteFS extends the idea of Litestream with fine-grained transactional control. Where Litestream simply copies the raw SQLite WAL file, LiteFS can inspect and ship individual transactions, which span pages, and are the true unit of change in a SQL database.
SQLite imposes on us a constraint that makes this transactional control harder: SQLite is baked into the apps that use it. If you build something that changes the SQLite library itself, you're not building tooling; you're building a new database. And we're not interested in getting people to switch to a new flavor of SQLite.
There's two options for intercepting the file system API in SQLite:
Use the Virtual File System (VFS) abstraction in SQLite.
Build a FUSE file system.
한마디로 LiteFS는 SQLite를 위한 오픈소스 분산 파일 시스템이라고 머릿속에 넣어두시면 됩니다.
샘플은 아래 깃허브에 있고요..
LiteFS의 특징을 간단하게 정리하자면 아래와 같습니다.
- SQLite의 풀스택 활용에 올인하고 있는 Fly io의 새로운 프로젝트
- 세분화된 트랜잭션 제어를 통해서 Litestream의 아이디어를 확장
- Litestream은 WAL 파일을 단순 복제하지만, LiteFS는 각각의 트랜잭션 단위로 조사 및 적용
- SQLite의 파일시스템 API를 인터셉트 하는 방법은 두가지 : VFS 추상화 사용 vs. FUSE 파일 시스템 작성
- LiteFS는 더 어려운 FUSE 파일시스템 생성하는 방식을 채택
- VFS는 사용하기 위한 사전 단계가 있어서, 누군가 DB를 사용하려고 하면 VFS를 먼저 로드해야함
- FUSE는 이런 사용성 문제의 대부분을 해결함
- 가용성을 증대하기 위해 클러스터의 프라이머리 노드를 임대(Hashicorp 의 Consul을 이용)
- 분산 복제 방식을 사용
- 앞으로 준비중인 기능들
- WAL모드 지원
- Write Forwading
- S3 Replication
- Encryption
그외에 자세한 내용에 대해서 궁금하시면 아래 웹페이지를 방문해보시길 추천드립니다.
오늘의 블로그는 여기까지고요..
항상믿고 봐주셔서 감사합니다.
'좋아하는 것_매직IT > 96.IT 핫이슈' 카테고리의 다른 글
GCP, AWS, Azure의 ARM 기반 서버들 성능 비교를 소개합니다. (apisix.apache.org) (0) | 2022.09.27 |
---|---|
C++20, How Hard Could It Be 를 소개합니다. (docs.google.com) (0) | 2022.09.27 |
EU Open Web Search 프로젝트를 소개합니다 (openwebsearch.eu) (0) | 2022.09.26 |
Linkify - 다양한 것들을 링크로 만들어 주는 JS 플러그인을 소개합니다 (linkify.js.org) (0) | 2022.09.26 |
Tigris - 실시간 웹사이트 & 앱을 위한 스케일러블 백엔드를 소개합니다. (github.com/tigrisdata) (2) | 2022.09.25 |