- SQLite 데이터베이스를 클라우드 스토리지에 저장한 뒤, DB전체를 다운 받지 않고도, 읽고 쓰는 것을 가능케 하는 시스템
- 현재 Azure BLob Storage 와 Google Cloud Storage 지원
- Block Cache VFS 모듈을 이용: Daemonless 모드(Reade/Write)와 Daemon 모드(Read-Only)로 동작
GN⁺ 가 요약한 내용
- "클라우드 지원 SQLite" (CBS) 시스템은 데이터베이스를 클라우드 저장소 계정에 저장하고 전체 데이터베이스를 다운로드하지 않고 저장소 클라이언트가 액세스할 수 있게 합니다.
- 여러 클라이언트가 동시에 데이터베이스에 액세스할 수 있지만 한 클라이언트만 데이터베이스에 쓸 수 있습니다.
- CBS는 현재 Azure Blob Storage와 Google Cloud Storage를 지원하며 다른 클라우드 저장소 시스템을 지원할 수도 있습니다.
- SQLite 데이터베이스는 고정 크기 블록으로 나누어져 클라우드 저장소 시스템에 저장됩니다.
- 이 시스템은 클라우드 저장소 컨테이너 관리를 위한 기본 요소, 원격 데이터베이스에 대한 로컬 액세스를 제공하는 데몬 프로세스, 클라우드 데이터베이스에 액세스하기 위한 VFS 모듈로 구성됩니다.
- CBS를 사용하려면 애플리케이션은 필요한 C 파일과 헤더 파일을 빌드하고 링크해야 하며 libcurl과 openssl에 링크해야 합니다.
- 시스템은 자동화된 테스트 스위트를 사용하여 테스트할 수 있습니다.
- 데이터베이스는 명령줄 도구를 사용하여 클라우드 저장소 계정에 업로드할 수 있습니다.
- 클라우드 저장소에 저장된 데이터베이스에 액세스하려면 VFS를 생성하고 컨테이너를 연결하고 데이터베이스 핸들을 열고 SQL 스크립트를 실행해야 합니다.
- 시스템은 새로운 클라우드 저장소 시스템을 지원하고 가상 테이블을 구현하기 위한 API를 제공합니다.
- 이 기사에서는 클라우드 저장소 시스템에서 안전한 컨테이너의 사용에 대해 논의합니다.
- 컨테이너는 안전하게 또는 불안전하게 연결할 수 있으며, 안전한 연결은 AES OFB 암호화를 사용하여 데이터를 암호화합니다.
- 로컬 클라이언트는 데몬 프로세스로부터 암호화 키를 얻기 위해 유효한 클라우드 저장소 자격 증명이 필요합니다.
- 이 기사에서는 클라우드 저장소 시스템을 위한 "azure"와 "google" 내장 모듈을 언급합니다.
- CBS API와 명령줄 도구는 모듈 사양, 사용자 이름 및 인증 값이 필요합니다.
- 이 기사에서는 "azure" 모듈의 세부 정보와 인증을 위한 SAS 토큰 생성 방법을 제공합니다.
- "google" 모듈은 CBS를 Google Cloud Storage에 연결하기 위해 프로젝트 ID와 액세스 토큰이 필요합니다.
- 이 기사에서는 여러 클라이언트로부터의 동시 액세스와 변경 사항을 확인하기 위해 컨테이너를 폴링해야 하는 필요성을 언급합니다.
- Blockcachevfs는 bcv_upload, bcv_poll 및 bcv_client 세 가지 PRAGMA 문을 지원합니다.
- 가상 테이블 인터페이스는 bcv_container 및 bcv_database 테이블로 구성됩니다.
- bcv_container 테이블에는 연결된 컨테이너에 대한 정보가 포함되어 있으며, bcv_database 테이블에는 각 컨테이너의 데이터베이스에 대한 정보가 포함되어 있습니다.
- 이 기사에서는 blockcachevfs 데이터베이스의 다양한 테이블의 구조와 기능에 대해 논의합니다.
- "bcv_database" 테이블에는 데이터베이스에 대한 로컬 변경 사항에 대한 정보가 포함되어 있습니다.
- "bcv_http_log" 테이블은 VFS 또는 연결된 데몬에 의해 수행된 HTTP 요청을 기록합니다.
- "bcv_kv" 테이블은 애플리케이션이 클라우드 저장소 컨테이너에 데이터를 쓸 수 있게 합니다.
- "bcv_kv_meta" 테이블은 클라우드 저장소 서버의 HTTP 헤더에 대한 읽기 전용 액세스를 제공합니다.
- 이 기사에서는 blockcachevfs 데이터베이스에서 다양한 작업에 대한 명령줄 참조도 제공합니다.
- 데몬 명령은 blockcachevfsd 프로세스가 서버로 실행되어 클라이언트로부터의 연결을 수락할 수 있게 합니다.
- 데몬 프로세스는 구성 및 로깅을 위한 다양한 옵션을 지원합니다.