We have internal conversions of those two types inside name-node code. One example:
NameNode.complete(String src, String clientName)
then it calls
FSNamesystem.completeFile(new UTF8(src), new UTF8(clientName));
which in turn finally calls
FSDirectory.addNode(path.toString(), newNode )
and in another place
So we have several conversions of the same parameter back and forth during computation.
We should keep the parameter type consistent within different methods.
The question is, which type should be used: String or Text.
From previous discussions I remember that Text is more efficient in space and time for non ASCII
data. Here we mostly deal with file names and network addresses, which are ASCII.
Does it make sense to use Text in this case?
UTF8 is also used as a key in two maps: pendingCreates and leases.
This should be replaced too.