# Data Model
Seafile internally uses a data model similar to GIT's. It consists of `Repo`, `Branch`, `Commit`, `FS`, and `Block`.
### Repo
A repo is also called a library. Every repo has an unique id (UUID), and attributes like description, creator, password.
### Branch
Unlike git, only two predefined branches is used, i.e., `local` and `master`.
In PC client, modifications will first be committed to the `local` branch.Then the `master` branch is downloaded from server, and merged into `local` branch.After that the `local` branch will be uploaded to server. Then the server will fast-forwardits `master` branch to the head commit of the just uploaded branch.
When users update a repo on the web, modifications will first be committed to temporary branchon the server, then merged into the `master` branch.
### Commit
Like in GIT.
### FS
There are two types of FS objects, `SeafDir Object` and `Seafile Object`.`SeafDir Object` represents a directory, and `Seafile Object` represents a file.
### Block
A file is further divided into blocks with variable lengths. We use Content Defined Chunking algorithm todivide file into blocks. A clear overview of this algorithm can be found at [http://pdos.csail.mit.edu/papers/lbfs:sosp01/lbfs.pdf](http://pdos.csail.mit.edu/papers/lbfs:sosp01/lbfs.pdf).On average, a block's size is around 1MB.
This mechanism makes it possible to deduplicate data between different versions of frequently updated files,improving storage efficiency. It also enables transferring data to/from multiple servers in parallel.
- 介紹
- 概覽
- Seafile 組件
- 研發路線圖
- 常見問題解答
- 修改日志
- 我要參與
- Linux 下部署 Seafile 服務器
- 部署 Seafile 服務器(使用 SQLite)
- 部署 Seafile 服務器(使用 MySQL)
- Nginx 下配置 Seahub
- Nginx 下啟用 Https
- Apache 下配置 Seahub
- Apache 下啟用 Https
- Seafile LDAP 配置
- 開機啟動 Seafile
- 防火墻設置
- Logrotate 管理系統日志
- 使用 Memcached
- 使用 NAT
- 非根域名下部署 Seahub
- 從 SQLite 遷移至 MySQL
- 安裝常見問題
- 升級
- Windows 下部署 Seafile 服務器
- 下載安裝 Windows 版 Seafile 服務器
- 安裝 Seafile 為 Windows 服務
- 所用端口說明
- 升級
- 從 Windows 遷移到 Linux
- 垃圾回收
- 部署 Seafile 專業版服務器
- 下載安裝 Seafile 專業版服務器
- 從社區版遷移至專業版
- 升級
- Amazon S3 下安裝
- OpenStackSwift 下安裝
- Ceph 下安裝
- 配置選項
- 文件搜索說明
- 集群部署
- 集群中啟用搜索和后臺服務
- NFS 下集群安裝
- 常見問題解答
- 軟件許可協議
- 服務器個性化配置
- ccnet.conf
- seafile.conf
- seahub_settings.py
- 發送郵件提醒
- 個性化郵件提醒
- 用戶管理
- 存儲容量與文件上傳/下載大小限制
- 自定義 Web
- 管理員手冊
- 賬戶管理
- 日志
- 備份與恢復
- Seafile FSCK
- Seafile GC
- WebDAV 和 FUSE 擴展
- WebDAV 擴展
- FUSE 擴展
- 安全選項
- 安全特性
- 日志和審計
- 開發文檔
- 編譯 Seafile
- Linux
- Windows
- Max OS X
- Server
- 開發環境
- 編程規范
- Web API
- Python API
- 數據模型
- 服務器組件
- 同步算法