关于alreader吧的信息

admin 4 2021-10-09 21:28:39

与提供单副本更新语义(见参考链接1)的HDFS或提供最终一致性(见参考链接2)的AWS S3不同,Alluxio中的数据一致性要复杂一些,并取决于配置。简而言之,当客户端仅通过Alluxio进行读写时,Alluxio文件系统提供了强一致性。但是,当客户端在Alluxio和底层存储之间交叉写入数据时,一致性可能取决于写入类型和底层存储类型。

首先,Alluxio文件系统中的文件是一次写入多次读取(见参考链接3)的,并由唯一的文件ID标识。因此,给定此文件ID,所有文件reader都可以访问文件,而不必担心数据过时。

Alluxio为仅通过Alluxio文件系统访问数据的Alluxio应用程序(如MapReduce,Spark作业)提供了强一致性。写入完成后,Alluxio reader客户端始终可以查看由Alluxio writer客户端写入的新文件及其内容。这是因为所有文件系统修改操作将首先通过Alluxio Master,并在成功返回给客户端/应用程序之前完成Alluxio文件系统状态的修改。通过此过程,只要成功完成相应的写入操作,不同的Alluxio客户端将始终获得最新更新。

关于alreader吧的信息

写入Alluxio并且从底层存储读取

当把底层存储状态纳入考虑范畴后,用户写入Alluxio的数据可能与底层存储不一致,具体取决于写入类型:

MUST_CACHE:MUST_CACHE不会写入底层存储,因此Alluxio空间与底层存储是不一致的。

CACHE_THROUGH:在成功返回应用程序之前,CACHE_THROUGH将数据同步写入Alluxio和底层存储中:

在使用HDFS的情况下:写入底层存储也是强一致性的,当底层存储中没有其它绕过Alluxio的直接更新时,Alluxio空间将始终与底层存储保持一致;对于S3:写入底层存储是最终一致的,有可能文件已成功写入Alluxio,但不会立即显示在底层存储中。因此,在最终将数据传播到底层存储之前,会产生一个不一致的短期窗口。即使在这种情况下,Alluxio客户端仍将看到一致的文件系统,因为它们将始终与高度一致的Alluxio Master通信打交道。

ASYNC_THROUGH:ASYNC_THROUGH将数据写入Alluxio并返回到应用程序,从而使Alluxio将数据异步传播到UFS。从用户的角度来看,该文件可以成功地写入Alluxio,但是会滞后持久保存到UFS。

THROUGH:THROUGH将数据直接写入UFS,而无需在Alluxio中缓存数据。但是,Alluxio知道文件及其状态。因此,元数据仍然是一致的。

写入到底层存储并从Alluxio读取

同时,如果底层存储中的数据与Alluxio不同步(例如,由于未通过Alluxio直接进行底层存储中的修改),则元数据同步功能可以修复不一致问题。用户可以选择定期自动或主动同步来执行同步过程。请见文档(参考链接4)。

结 论

由于在生态系统中的独特地位,Alluxio提供了灵活的数据一致性模型来平衡性能,成本和可用性。用户可使用不同的元数据同步技术来协调Alluxio和底层存储,从而保障数据的一致性。

参考链接:

链接1:

关于alreader吧的信息

https://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/filesystem/introduction.html#Consistency

链接2:

https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel

链接3:

https://en.wikipedia.org/wiki/Write_once_read_many

链接4:

https://docs.alluxio.io/os/user/stable/en/core-services/Unified-Namespace.html#relationship-between-alluxio-and-ufs-namespace

  • 随机文章

  • 热门文章

  • 热评文章

上一篇:光盘映像文件_光盘映像文件已损坏是什么意思
下一篇:云浮市属于哪个市_云浮市属于哪个市电话是多少
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

返回顶部小火箭