Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha1
-
None
-
Incompatible change, Reviewed
-
Description
FileStatus was a Writable in Hadoop 2 and earlier. Originally, we used this to serialize it and send it over the wire. But in Hadoop 2 and later, we have the protobuf HdfsFileStatusProto which serves to serialize this information. The protobuf form is preferable, since it allows us to add new fields in a backwards-compatible way. Another issue is that already a lot of subclasses of FileStatus don't override the Writable methods of the superclass, breaking the interface contract that read(status.write) should be equal to the original status.
In Hadoop 3, we should just make FileStatus serialize itself via protobuf so that we don't have to deal with these issues. It's probably too late to do this in Hadoop 2, since user code may be relying on the existing FileStatus serialization there.
Attachments
Attachments
Issue Links
- blocks
-
HDFS-7878 API - expose a unique file identifier
- Resolved
- breaks
-
HADOOP-14730 Support protobuf FileStatus in AdlFileSystem
- Resolved
-
SPARK-21817 Pass FSPermissions to LocatedFileStatus from InMemoryFileIndex
- Resolved
- causes
-
HADOOP-15289 FileStatus.readFields() assertion incorrect
- Resolved
- depends upon
-
HADOOP-13626 Remove distcp dependency on FileStatus serialization
- Resolved
- is related to
-
SPARK-45432 Remove deprecated Hadoop-2 `LocatedFileStatus` constructor
- Resolved
-
HADOOP-13895 Make FileStatus Serializable
- Resolved
-
HDFS-12250 Reduce usage of FsPermissionExtension in unit tests
- Resolved