[ 
https://issues.apache.org/jira/browse/HDFS-5431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13849744#comment-13849744
 ] 

Andrew Wang commented on HDFS-5431:
-----------------------------------

Thanks for the reviews, v6 attached. Changes are only to CRM, so you can just 
review that.

I thought about it, and went way back to the condition variable proposal. I got 
rid of the object lock, favoring a new CRM lock with two cvars and some status 
variables. The synchronization here is unfortunately still kind of complicated, 
but I think overall more better.

I also want to note this isn't actually read-after-write consistency since the 
{{wait}} methods just wait for the scan count to advance, not for all pending 
updates to be flushed. I think this could be fixed (basically, if a scan is 
ongoing and CRM is dirty, wait for scanCount to advance by 2 rather than 1), 
but as this is also a performance tradeoff, I'd really like to just get this 
committed and fix it later if necessary.

I also re-examined {{close}} since I was re-doing the synchronization. This 
snippet looks like it makes the thread calling {{close}} wait for 60 seconds, 
where the intent is probably to interrupt the CRM thread and make it cleanly 
exit:

{code}
    try {
      if (this.isAlive()) {
        this.join(60000);
      }
    } catch (InterruptedException e) {
      Thread.currentThread().interrupt();
    }
{code}

If you agree, I'll file a follow-on to fix this up. It could affect HA state 
transitions.

> support cachepool-based limit management in path-based caching
> --------------------------------------------------------------
>
>                 Key: HDFS-5431
>                 URL: https://issues.apache.org/jira/browse/HDFS-5431
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, namenode
>    Affects Versions: 3.0.0
>            Reporter: Colin Patrick McCabe
>            Assignee: Andrew Wang
>         Attachments: hdfs-5431-1.patch, hdfs-5431-2.patch, hdfs-5431-3.patch, 
> hdfs-5431-4.patch, hdfs-5431-5.patch, hdfs-5431-6.patch
>
>
> We should support cachepool-based limit management in path-based caching.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to