[ 
https://issues.apache.org/jira/browse/HADOOP-5188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712022#action_12712022
 ] 

Luca Telloli commented on HADOOP-5188:
--------------------------------------

Konstantin, thanks for your comments! Let me address each of your point 
separately: 

1. I opened HADOOP-5832 by mistake using the subtask option, without knowing 
that it would have generated a new patch. My bad. But I think that there's no 
clear cut between the two patches, because with URI processing I'm introducing 
logging devices which is something related to logging abstraction. Without 
introducing logging devices, HADOOP-5832 would be trivial, as you'd read a 
string, treat is as a URI and retrieve the path fragment, at least until other 
types of logging are developed, unless I'm forgetting something. So, unless you 
think it's necessary to have separate patches, I'd rather link them. 

2. I think edit streams are opened and closed many times during the life of a 
server process (namenode/secondaryNN/backupnode) while the LoggingDevices are 
ideally created only once. While this might not make a difference for files, 
which can be opened/closed many times, it might fit better other types of 
logging which might want to store persistent information inside their 
"LoggingDevice" implementation. For instance, when thinking about Bookkeeper, I 
want to create a Bookkeeper client only once through the life of a NameNode and 
use it for Input/Output streams when needed. Does this sound reasonable? 

3. From what I see in FSImage.loadFSEdits(StorageDirectory sd) 
EditLogFileInputStream needs to access a StorageDirectory object. Assuming that 
we keep the LoggingDevice abstraction and both edit streams (input and output) 
need to access it, it sounds better to leave it inside FileLoggingDevice and 
retrieve it with the getNewInputStreamInstance() method. 

4. In the current patch you can specify values in dfs.name.dir as URI, as you 
can see in the FSNamesystem.getStorageDirs(...) method, where arguments of type 
URI are processed as well as path strings, both adding the correct value to the 
dirNames ArrayList. In general, values of this property will be mapped directly 
to storage directories, since StorageDirectory is the unit of storage for file 
system images. The mapping is different for the other property: 
dfs.name.edits.dir, where the mapping is not one-to-one with 
StorageDirectories, since other types of device can be used. 

> Modifications to enable multiple types of logging 
> --------------------------------------------------
>
>                 Key: HADOOP-5188
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5188
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: dfs
>    Affects Versions: 0.20.0
>            Reporter: Luca Telloli
>             Fix For: 0.21.0
>
>         Attachments: HADOOP-5188.patch, HADOOP-5188.patch, HADOOP-5188.patch, 
> HADOOP-5188.patch, HADOOP-5188.pdf
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to