草庐IT

聊聊大数据框架的数据更新策略: COW,MOR,MOW

大数据框架下,常用的数据更新策略有三种:COW:copy-on-write,写时复制;MOR:merge-on-read,读时合并;MOW:merge-on-write,写时合并;hudi等数据湖仓框架,常用的是前两种实现数据更新。而Doris则主要用后两种更新数据。COW在数据写入的时候,复制一份原来的拷贝,在其基础上添加新数据,创建数据文件的新版本。新版本文件包括旧版本文件的记录以及来自传入批次的记录(全量最新)。正在读数据的请求,读取的是最近的完整副本,这类似Mysql的MVCC的思想。在java的类库中就有一个CopyOnWriteArrayList,而linux的fork子进程的内部

概念:COW与MOR

名词解释COW:写时复制MOR:读时合并CopyOnWrite思想写时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略。其核心思想是,如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者修改资源内容时,系统才会真正复制一份专用副本(privatecopy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此做法主要的优点是如果调用者没有修改资源,就不会有副本(privatecopy)被创建,因此多个调用