FileBatch类提供了一系列对批量并行读写操作支持(包括对FttpAdapter和FileAdapter),它跟并行读写的区别是不需要检查结果,会等到所有并行读写任务全部完成才返回,并在发生异常时提供事务补偿支持。
1、批量并行读:
public Result<byte[]>[] readAllBatch(TryByteReadAdapter[] fras)
实现对多个FttpReadAdapter任务的批量读,输入一个FttpReadAdapter数组,并行进行它们的读取,直到每个FttpReadAdapter读完后,以数组的方式批量输出它们对应的结果,比如:
FttpReadAdapter[] fras = new FttpReadAdapter[3];
fras[0]=new FttpAdapter(fttppath).getFttpReader(0,5);
fras[1]=new FttpAdapter(fttppath).getFttpReader(5,5);
fras[2]=new FttpAdapter(fttppath).getFttpReader(10,5);
Result<byte[]>[] rs = new FileBatch().readAllBatch(fras);
上面表示并行从3个位置读一个文件内容,等全部读完后,将对应的结果放在一个数组里返回
2、批量并行写:
FttpWriteAdapter[] fwas = new FttpWriteAdapter[3];
fwas[0]=new FttpAdapter(fttppath).getFttpWriter(0,5);
fwas[1]=new FttpAdapter(fttppath).getFttpWriter(5,5);
fwas[2]=new FttpAdapter(fttppath).getFttpWriter(10,5);
Result<Integer>[] rs = new FileBatch().writeBatch(fwas, "abcde".getBytes());
上面表示并行对一个文件的3个位置写入“abcde”字符,等全部写完后,返回对应结果数组
注意:这里跟并行读写一样,3个FttpReadAdapter或者FttpWriteAdapter是由3个不同的FttpAdapter生成,而不是同一个生成
3、批量并行读写:
Result<Integer>[] rs = new FileBatch().readWriteBatch(fras,fwas);
表示将上面的批量读和批量写在一个过程中完成,从fras里每个FttpReadAdapter读,然后通过fwas里对应的每FttpWriteAdapter写入,所有读写完成后返回写入结果数组
4、事务补偿处理:
在批量并行读写过程中,如果其中一个FttpReadAdapter或者FttpWriteAdapter发生错误,那么框架会进行分布式事务处理,进行两阶段提交,然后调用undo操作进行事务补偿处理,撤消已经产生的改动和影响。
FileBatch类提供了对undo方法的定义
public Result[] undo(Result[] rtarr)
rtarr是传入的结果,然后返回undo的撤消处理后的结果
比如调用readAllBatch发生错误,FileBatch会将结果传入undo进行撤消操作,然后才返回结果
因此开发者需要自己实现undo方法的内容,继承FileBatch类覆盖undo方法:
public Result[] undo(Result[] rtarr){
for(int i=0;i<rtarr.length;i++){
if(rtarr[i].getStatus()==Result.EXCEPTION)
System.out.println("Result index"+i+" Error");
}
return rtarr;
}
上面的undo方法将发生异常的结果的序号输出显示
所有的批量读写方法都可以以排它的方式进行,指定boolean locked参数即可
另外:除了byte批量并行读写外,也支持所有的整形批量并行读写,api和操作几乎类似
FttpBatchWriteReadDemo演示了一个批量并行读、批量并行写、批量并行读写操作和事务补偿操作
邮箱:Fourinone@yeah.net
企鹅群:241116021
demo源码指南及开发包下载地址:
http://www.skycn.com/soft/68321.html
分享到:
相关推荐
FastCFS的设计和特性使其成为一个出色的分布式文件系统选择。 高性能分布式文件系统 FastCFS注重性能,在处理大规模数据和高并发访问时表现出色。其块存储架构允许快速的数据读写操作,以满足各种工作负载的需求。...
分布式读写文件系统是现代大型应用处理海量数据的关键技术之一,尤其在云计算和大数据领域中起着核心作用。本文将详细解析标题为“DistributedRW”的项目,它是一个使用Java编程语言实现的分布式读写文件系统。这个...
* 分布式事务处理的应用:分布式数据库系统、分布式文件系统等 八、 ZooKeeper 分布式系统 * ZooKeeper 的概念:一个开源的分布式应用程序协调服务 * ZooKeeper 的特点:高可用性、高性能、灵活性等 * ZooKeeper ...
在Hadoop的分布式文件系统(HDFS)中,文件的读写是整个大数据处理的核心操作。HDFS的设计目标是提供高容错性、高吞吐量的数据访问,以支持大规模数据处理的应用。以下是对Hadoop文件读写及相关属性的详细说明。 ##...
1. **分布式存储**:Hadoop的HDFS(Hadoop Distributed File System)是一个分布式文件系统,它允许跨多个服务器存储和处理大量数据。 2. **可扩展性**:Hadoop可以处理从GB到PB级别的数据,并且可以通过增加更多的...
1. 早期的分布式文件系统一般以提供标准接口的远程文件访问为目的,更多地关注访问的性能和数据的可靠性。 2. xFS 采用了多层次结构很好地利用了文件系统的局部访问的特性,无效写回(Invalidation-based Write Back...
分布式服务架构:原理、设计与实战 高清PDF,因上传文件大小限制,分割成了三个文件,全部下载放在同一目录下,即可成功解压,总共三部分:分布式服务架构:原理、设计与实战.zip 分布式服务架构:原理、设计与实战....
随着计算机技术的发展和互联网的普及,数据处理的需求日益增长,分布式文件系统作为一种能够高效管理和处理大规模数据的技术方案,得到了广泛的应用和发展。本文旨在回顾2006年之前的重要分布式文件系统,并从中提炼...
3. **扩展性**:随着硬件设备的增加,分布式文件系统能够线性扩展其存储容量和处理能力,以应对不断增长的数据需求。 4. **高并发访问**:支持多个客户端同时对同一文件进行读写操作,通过并行处理提高效率。 5. *...
9. **性能优化**:可能包括本地缓存、预读取、批量操作等技术,以提高数据读写速度。 10. **网络通信**:分布式系统间的通信可能使用TCP/IP协议,可能使用RPC(远程过程调用)框架实现跨节点的通信。 在kfs-0.2.2...
总结来说,分布式文件系统HDFS的设计兼顾了硬件成本、数据处理效率和容错性,虽然有一些局限性,但在存储和处理大规模数据集方面具有显著的优势。HDFS的普及和应用为大数据处理技术提供了坚实的基础,极大地推动了...
Hadoop分布式文件系统的设计目标是满足大规模数据处理的需求,解决大规模数据存储和处理的问题。Hadoop分布式文件系统的设计考虑了以下几点: * 大规模数据集:Hadoop分布式文件系统需要能够存储和管理大规模数据集...
Fortran分布式计算:跨入并行处理的新纪元(PDF文档) Fortran语言,作为科学和工程计算的基石,其在分布式计算领域的应用至关重要。分布式计算允许Fortran程序利用多个物理或逻辑上分离的计算资源来执行大规模计算...
Fortran分布式计算:跨入并行处理的新纪元《PDF文档》 Fortran语言,作为科学和工程计算的基石,其在分布式计算领域的应用至关重要。分布式计算允许Fortran程序利用多个物理或逻辑上分离的计算资源来执行大规模计算...
分布式事务在大型分布式系统中是不可或缺的,它确保了数据的一致性和完整性。TCC(Try-Confirm-Cancel)模式是一种解决分布式事务问题的常见方案。这个压缩包“基于TCC的分布式事务代码示例:使用tcc-transaction...
总之,ColossalAI作为一款分布式AI训练系统,通过集成各种并行技术和优化策略,使得处理复杂的AI模型变得更加高效和便捷。它不仅提升了训练速度,还降低了使用分布式系统的门槛,对于推动AI技术的发展具有重要意义。...
这与传统分布式文件系统支持多种访问模式有所不同,后者通常更加灵活,支持随机读写和更复杂的文件操作。 #### 四、结论与展望 通过以上分析可以看出,Hadoop分布式文件系统不仅继承了Google文件系统的优秀设计...
分布式事务是指在分布式系统中,为了确保跨多个节点上的操作能够正确地完成或者全部回滚,所采取的一种事务处理机制。在这样的场景下,事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的...
本文旨在介绍一种名为Fourinone2.0框架下的分布式文件访问机制,特别是通过FttpAdapter和FileAdapter组件实现的分布式文件访问与操作。 #### 二、FttpAdapter与FileAdapter简介 在Fourinone2.0框架下,FttpAdapter...
这种系统能够处理海量数据,支持大规模并发访问,是大数据处理、云计算和互联网服务的核心技术之一。在"行业分类-设备装置-分布式文件系统文件读写方法、分布式文件系统及其装置"这个主题中,我们将深入探讨分布式...