hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5448) Support for dynamic coprocessor endpoints with PB-based RPC
Date Thu, 20 Dec 2012 00:17:16 GMT

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

stack commented on HBASE-5448:
------------------------------

[~ghelmling] Mighty Gary, why ConcurrentSkipListMap in the below in HTable#coprocessorService
rather than what was used previously up in HTable#coprocessorExec, a TreeMap wrapped in a
Collections.synchronizedMap?  The former does not allow values of null whereas the latter
does.  There is a test in TestServerCustomProtocol that tests we can get back null.  It fails
if I try to return null because of the above change. Here is the code I refer to:

{code}
	
  public <T extends Service, R> Map<byte[],R> coprocessorService(final Class<T>
service,
1389	
      byte[] startKey, byte[] endKey, final Batch.Call<T,R> callable)
1390	
      throws ServiceException, Throwable {
1391	
    final Map<byte[],R> results =  new ConcurrentSkipListMap<byte[], R>(Bytes.BYTES_COMPARATOR);
1392	
    coprocessorService(service, startKey, endKey, callable, new Batch.Callback<R>()
{
1393	
      public void update(byte[] region, byte[] row, R value) {
1394	
        if (value == null) {
1395	
          if (LOG.isDebugEnabled()) {
1396	
            LOG.debug("Call to " + service.getName() +
1397	
                " received NULL value from Batch.Call for region " + Bytes.toStringBinary(region));
1398	
          }
1399	
        } else {
1400	
          results.put(region, value);
1401	
        }
1402	
      }
1403	
    });
1404	
    return results;
1405	
  }
{code}

Wondering if an explicit reason that I am not aware of (There maybe given you seem to go out
of your way to  not return nulls though it seems simple enough to go back to the old way of
doing nulls).

Thanks boss.
                
> Support for dynamic coprocessor endpoints with PB-based RPC
> -----------------------------------------------------------
>
>                 Key: HBASE-5448
>                 URL: https://issues.apache.org/jira/browse/HBASE-5448
>             Project: HBase
>          Issue Type: Sub-task
>          Components: IPC/RPC, master, migration, regionserver
>            Reporter: Todd Lipcon
>            Assignee: Gary Helmling
>             Fix For: 0.96.0
>
>         Attachments: HBASE-5448_2.patch, HBASE-5448_3.patch, HBASE-5448_4.patch, HBASE-5448.patch
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message