fsync/fdatasync调用很昂贵,但它们在数据库中是必不可少的,因为它允许在acid中保持持久性。正如我测试过的,当只有一个进程周期性地写和fsync时,每个fsync大约需要50ms。但是当有多个进程做同样的事情时,比如说其中两个进程,有时(可能是50%)fsync需要大量的时间,几百或几千毫秒,甚至几十秒,显然,在这种情况下,系统变得不可用。我想知道这个问题是如何在数据库中解决的,特别是在分布式时间序列数据库中,当有多个节点使用单个hdd时。
fsync/fdatasync调用很昂贵,但它们在数据库中是必不可少的,因为它允许在acid中保持持久性。正如我测试过的,当只有一个进程周期性地写和fsync时,每个fsync大约需要50ms。但是当有多个进程做同样的事情时,比如说其中两个进程,有时(可能是50%)fsync需要大量的时间,几百或几千毫秒,甚至几十秒,显然,在这种情况下,系统变得不可用。我想知道这个问题是如何在数据库中解决的,特别是在分布式时间序列数据库中,当有多个节点使用单个hdd时。
暂无答案!
目前还没有任何答案,快来回答吧!