[jira] [Created] (HBASE-21586) Do not allocate empty arrays in hbase.

2018-12-11 Thread John Leach (JIRA)
John Leach created HBASE-21586:
--

 Summary: Do not allocate empty arrays in hbase.
 Key: HBASE-21586
 URL: https://issues.apache.org/jira/browse/HBASE-21586
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


Small nit but it is good to use the static empty arrays vs. creating new ones.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (HBASE-20995) Clean Up Manual Array Copies, trivial

2018-09-20 Thread John Leach (JIRA)


 [ 
https://issues.apache.org/jira/browse/HBASE-20995?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Leach resolved HBASE-20995.

Resolution: Won't Fix

> Clean Up Manual Array Copies, trivial
> -
>
> Key: HBASE-20995
> URL: https://issues.apache.org/jira/browse/HBASE-20995
> Project: HBase
>  Issue Type: Improvement
>Reporter: John Leach
>Assignee: John Leach
>Priority: Trivial
> Attachments: HBASE-20995.patch
>
>
> Clean up manual array copies in code.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-20995) Clean Up Manual Array Copies, trivial

2018-08-02 Thread John Leach (JIRA)
John Leach created HBASE-20995:
--

 Summary: Clean Up Manual Array Copies, trivial
 Key: HBASE-20995
 URL: https://issues.apache.org/jira/browse/HBASE-20995
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


Clean up manual array copies in code.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-20994) Clean up manual array to collection copy, trivial

2018-08-02 Thread John Leach (JIRA)
John Leach created HBASE-20994:
--

 Summary: Clean up manual array to collection copy, trivial
 Key: HBASE-20994
 URL: https://issues.apache.org/jira/browse/HBASE-20994
 Project: HBase
  Issue Type: Bug
Reporter: John Leach


Remove for loops adding to collections.  (Style)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-18280) Manual Array Copy Cleanup: Automated

2017-06-27 Thread John Leach (JIRA)
John Leach created HBASE-18280:
--

 Summary: Manual Array Copy Cleanup: Automated
 Key: HBASE-18280
 URL: https://issues.apache.org/jira/browse/HBASE-18280
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach
Assignee: John Leach
Priority: Trivial


Remove Manual Array Copies: Style Issue



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18279) Manual Array to Collection Copy: Automated

2017-06-27 Thread John Leach (JIRA)
John Leach created HBASE-18279:
--

 Summary: Manual Array to Collection Copy: Automated
 Key: HBASE-18279
 URL: https://issues.apache.org/jira/browse/HBASE-18279
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach
Assignee: John Leach


Style Cleanup.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-17242) Isolate Legacy Scanner Logic

2016-12-02 Thread John Leach (JIRA)
John Leach created HBASE-17242:
--

 Summary: Isolate Legacy Scanner Logic
 Key: HBASE-17242
 URL: https://issues.apache.org/jira/browse/HBASE-17242
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


Duplicative logic in StoreScanner.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17216) A Few Fields Can Be Safely Made Static

2016-11-30 Thread John Leach (JIRA)
John Leach created HBASE-17216:
--

 Summary: A Few Fields Can Be Safely Made Static
 Key: HBASE-17216
 URL: https://issues.apache.org/jira/browse/HBASE-17216
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


Automated Test...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17208) Manual Array Copy Cleanup: Automated

2016-11-30 Thread John Leach (JIRA)
John Leach created HBASE-17208:
--

 Summary: Manual Array Copy Cleanup: Automated
 Key: HBASE-17208
 URL: https://issues.apache.org/jira/browse/HBASE-17208
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach
Priority: Trivial


Remove Manual Array Copies: Automated



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17207) Arrays.asList() with too few arguments

2016-11-30 Thread John Leach (JIRA)
John Leach created HBASE-17207:
--

 Summary: Arrays.asList() with too few arguments
 Key: HBASE-17207
 URL: https://issues.apache.org/jira/browse/HBASE-17207
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach
Priority: Trivial






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16496) Hotspotting on SequenceIDAccounting during HLOG Performance Test

2016-08-24 Thread John Leach (JIRA)
John Leach created HBASE-16496:
--

 Summary: Hotspotting on SequenceIDAccounting during HLOG 
Performance Test
 Key: HBASE-16496
 URL: https://issues.apache.org/jira/browse/HBASE-16496
 Project: HBase
  Issue Type: Bug
Reporter: John Leach
Priority: Trivial


I was seeing this hotspot for me during my tests.

Adding Pic.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16484) Create an Interface defining MultiVersionConsistencyControl

2016-08-23 Thread John Leach (JIRA)
John Leach created HBASE-16484:
--

 Summary: Create an Interface defining 
MultiVersionConsistencyControl 
 Key: HBASE-16484
 URL: https://issues.apache.org/jira/browse/HBASE-16484
 Project: HBase
  Issue Type: Bug
Reporter: John Leach
Priority: Minor


Hopefully this will help clarify this critical component.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16468) RowLocks use a list implementation instead of an array implementation

2016-08-22 Thread John Leach (JIRA)
John Leach created HBASE-16468:
--

 Summary: RowLocks use a list implementation instead of an array 
implementation
 Key: HBASE-16468
 URL: https://issues.apache.org/jira/browse/HBASE-16468
 Project: HBase
  Issue Type: Bug
Reporter: John Leach


Little nit, but no reason to create the extra objects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14540) Write Ahead Log Batching Optimization

2015-10-02 Thread John Leach (JIRA)
John Leach created HBASE-14540:
--

 Summary: Write Ahead Log Batching Optimization
 Key: HBASE-14540
 URL: https://issues.apache.org/jira/browse/HBASE-14540
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


The new write ahead log mechanism seems to batch too few mutations when running 
inside the disruptor.  As we scaled our load up (many threads with small 
writes), we saw the number of hdfs sync operations grow in concert with the 
number of writes.  Generally, one would expect the size of the batches to grow 
but the number of actual sync operations to settle. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13691) HTable and RPC Code Accessing Configuration each time (Blocking)

2015-05-14 Thread John Leach (JIRA)
John Leach created HBASE-13691:
--

 Summary: HTable and RPC Code Accessing Configuration each time 
(Blocking)
 Key: HBASE-13691
 URL: https://issues.apache.org/jira/browse/HBASE-13691
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


Properties.getProperty blocks under load...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13690) Client Scanner Initialization Reformats strings every time

2015-05-14 Thread John Leach (JIRA)
John Leach created HBASE-13690:
--

 Summary: Client Scanner Initialization Reformats strings every time
 Key: HBASE-13690
 URL: https://issues.apache.org/jira/browse/HBASE-13690
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach
Priority: Critical


The client scanner continually goes back into the conf for values...

  public ClientScanner(final Configuration conf, final Scan scan, final 
TableName tableName,
  HConnection connection, RpcRetryingCallerFactory rpcFactory,
  RpcControllerFactory controllerFactory) throws IOException {
  if (LOG.isTraceEnabled()) {
LOG.trace(Scan table= + tableName
+ , startRow= + Bytes.toStringBinary(scan.getStartRow()));
  }
  this.scan = scan;
  this.tableName = tableName;
  this.lastNext = System.currentTimeMillis();
  this.connection = connection;
  if (scan.getMaxResultSize()  0) {
this.maxScannerResultSize = scan.getMaxResultSize();
  } else {
this.maxScannerResultSize = conf.getLong(
  HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,
  HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);
  }
  this.scannerTimeout = HBaseConfiguration.getInt(conf,
HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD,
HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY,
HConstants.DEFAULT_HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD);

  // check if application wants to collect scan metrics
  initScanMetrics(scan);

  // Use the caching from the Scan.  If not set, use the default cache 
setting for this table.
  if (this.scan.getCaching()  0) {
this.caching = this.scan.getCaching();
  } else {
this.caching = conf.getInt(
HConstants.HBASE_CLIENT_SCANNER_CACHING,
HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);
  }

  this.caller = rpcFactory.Result[] newCaller();
  this.rpcControllerFactory = controllerFactory;

  initializeScannerInConstruction();
}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13427) HStore#addChangedReaderObserver hotspots due to missing hashCode and equals on StoreScanner

2015-04-08 Thread John Leach (JIRA)
John Leach created HBASE-13427:
--

 Summary: HStore#addChangedReaderObserver hotspots due to missing 
hashCode and equals on StoreScanner
 Key: HBASE-13427
 URL: https://issues.apache.org/jira/browse/HBASE-13427
 Project: HBase
  Issue Type: Bug
Reporter: John Leach


Please see attached graph...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13420) RegionEnvironment.offerExecutionLatency Blocks Threads under Heavy Load

2015-04-07 Thread John Leach (JIRA)
John Leach created HBASE-13420:
--

 Summary: RegionEnvironment.offerExecutionLatency Blocks Threads 
under Heavy Load
 Key: HBASE-13420
 URL: https://issues.apache.org/jira/browse/HBASE-13420
 Project: HBase
  Issue Type: Improvement
Reporter: John Leach


The ArrayBlockingQueue blocks threads for 20s during a performance run focusing 
on creating numerous small scans.  

I see a buffer size of (100)

private final BlockingQueueLong coprocessorTimeNanos = new 
ArrayBlockingQueueLong(
LATENCY_BUFFER_SIZE);

and then I see a drain coming from
 MetricsRegionWrapperImpl with 45 second executor
 HRegionMetricsWrapperRunable
 RegionCoprocessorHost#getCoprocessorExecutionStatistics()   
 RegionCoprocessorHost#getExecutionLatenciesNanos()

Am I missing something?





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13379) TimeRangeTracker Can Be Non-Blocking

2015-04-01 Thread John Leach (JIRA)
John Leach created HBASE-13379:
--

 Summary: TimeRangeTracker Can Be Non-Blocking
 Key: HBASE-13379
 URL: https://issues.apache.org/jira/browse/HBASE-13379
 Project: HBase
  Issue Type: New Feature
Reporter: John Leach
Priority: Minor


I am seeing the TimeRangeTracker hotspot under heavy write load.  It looks like 
a good use case for an atomic reference for the data point (min and max 
timestamp).  I have a working proto, will submit patch for consideration once I 
run this test suite (beast).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13378) RegionScannerImpl synchronized for READ_UNCOMMITTED Isolation Levels

2015-04-01 Thread John Leach (JIRA)
John Leach created HBASE-13378:
--

 Summary: RegionScannerImpl synchronized for READ_UNCOMMITTED 
Isolation Levels
 Key: HBASE-13378
 URL: https://issues.apache.org/jira/browse/HBASE-13378
 Project: HBase
  Issue Type: New Feature
Reporter: John Leach
Priority: Minor


This block of code below coupled with the close method could be changed so that 
READ_UNCOMMITTED does not synchronize.  

{CODE:JAVA}
  // synchronize on scannerReadPoints so that nobody calculates
  // getSmallestReadPoint, before scannerReadPoints is updated.
  IsolationLevel isolationLevel = scan.getIsolationLevel();
  synchronized(scannerReadPoints) {
this.readPt = getReadpoint(isolationLevel);
scannerReadPoints.put(this, this.readPt);
  }
{CODE}

This hotspots for me under heavy get requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12912) StoreScanner calls Configuration for Boolean Check on each initialization

2015-01-23 Thread John Leach (JIRA)
John Leach created HBASE-12912:
--

 Summary: StoreScanner calls Configuration for Boolean Check on 
each initialization
 Key: HBASE-12912
 URL: https://issues.apache.org/jira/browse/HBASE-12912
 Project: HBase
  Issue Type: Bug
Reporter: John Leach
 Attachments: StoreScannerStall.tiff

There is a clear CPU drain and iterator creation when creating store scanners 
under high load.  Splice was running a TPCC test of our database and we are 
seeing object creation and CPU waste on the boolean check


Code Snippet...

if (store != null  ((HStore)store).getHRegion() != null
 store.getStorefilesCount()  1) {
  RegionServerServices rsService = 
((HStore)store).getHRegion().getRegionServerServices();
  if (rsService == null || !rsService.getConfiguration().getBoolean(
STORESCANNER_PARALLEL_SEEK_ENABLE, false)) return;
  isParallelSeekEnabled = true;
  executor = rsService.getExecutorService();
}

Will attach profile...




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)