#2 Yes, when reading/writing DatanodeInfos to/from streams (same as before when creating a DatanodeID w/o a name)
When do we read/write DatanodeInfo from streams, now that we are pb-ified? i.e is the writable interface even used anymore?
+ * Return the canonical IP address for this DatanodeID. Not all uses
+ * of DatanodeID are multi-IP aware, or would multiple IPs, therefore
+ * we use the first address as the canonical one.
#1 We still need the notion of canonical IP, mostly for cases that don't care about multiple IP addresses. Updated the javadoc.
How is it ensured that the "canonical" IP is kept consistent across DN restarts, for example? It's just whichever one is listed first in the DN-side configuration?
Fixed the cast, now casts to String and serializes/deserializes the IPs, the test does check this (was failing now passes).
That's a little strange, to serialize it into a comma-separated list inside JSON. It's not possible to get Jackson to serialize it as a proper JSON array? Perhaps using a List<String> inside the map?