引言
juicefs是一款面向云原生设计的高性能分布式文件系统,其有如下特点:
- 数据存储和元数据存储分离,可以适配多种数据和元数据存储引擎。
- 后端存储可以直接对接各种对象存储,使用起来更方便,更加适配云服务趋势。
相关技术架构可直接参考:https://juicefs.com/docs/zh/community/architecture
源码分析
读同步线程处理
func (fs *fileSystem) Read(
// 获取filehandle
func (v *VFS) findHandle(
// filehandle加读锁
func (h *handle) Rlock(
// fileWriter刷盘
func (w *dataWriter) Flush(
func (f *fileWriter) flush(
// fileWriter加mutex锁
func (m *Mutex) Lock(
// 遍历所有chunk和chunk上的slice,进行slice刷盘(异步)
func (s *sliceWriter) flushData(
// 等待所有chunk刷盘完成
// fileWriter释放mutex锁
func (m *Mutex) Unlock(
// fileReader读数据
func (f *fileReader) Read(
// fileReader加mutex锁
func (m *Mutex)