VFS 에 대해 대충 알아보장~
참조 : https://www.sqlite.org/vfs.html
-
VFS 는 Virtual FileSystem 의 약자.
-
VFS 는 SQLite OS Portability layer 를 이야기한다.
SQLite 구현 stack 중 하나로 OS 간에 호환성을 위한 구현이 있는 layer 이다.
-
SQLite module 중 어느 것도 OS 와 통신하기 위해서는 VFS 에 있는 함수를 호출해야 한다.
VFS 가 해당 request 에 대한 OS 기능을 호출한다.
따라서 SQLite 를 새로운 OS 에 포팅한다는 이야기는
새롭게 OS interface layer, 즉 VFS 를 다시 구현한다는 이야기와 동일하다.
-
정규 SQLite 소스에는 unix 와 windows 를 위한 VFS 는 제공된다.
대체 VFS 들은 vfs register interface 를 통해 start-time 이나 run-time 에 추가될 수 있다.
-
여러개의 VFS 는 동시에 등록될 수 있다.
각각의 VFS 는 각각의 유니크한 이름을 갖는다.
한 프로세스에서 동시에 다른 VFS 들을 사용하면서 다른 database connection 을 열 수도 있다.
반대로 한 개의 DB Connection 이 여러 개의 DB files 을 open 한다면, 각각의 database 는 다른 VFS 를 사용할 가능성이 높다.
-
한 개의 열린 DB file 은 한개의 VFS 에 연결되어 있다.
그러나 간혹 실제 역할을 하는 VFS 를 wrapping 한 기능을 하는 VFS 가 있기도 한데,
그런 녀석들은 shim 이라 부른다. ( shim 은 두 사물 사이의 틈에 끼우는 끼움쇠, 쐐기 )
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[Facebook] Access Token, Permissions and Roles (0) | 2018.02.27 |
---|---|
[Facebook] 그래프 API ( Graph API ) Overview (2) | 2018.02.26 |
[SourceTree] Resolve conflict using mine, theirs. (0) | 2018.01.27 |
개발자 몸 값 안 올리기 (0) | 2018.01.20 |
[통계] DAU, WAU, MAU, Stickiness 용어 정리 (0) | 2017.12.10 |
댓글