[jira] [Commented] (HBASE-11341) ZKProcedureCoordinatorRpcs should respond only to members

2014-06-14 Thread Matteo Bertozzi (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031481#comment-14031481
 ] 

Matteo Bertozzi commented on HBASE-11341:
-

{quote}It does not listen for create event on /hbase/proc/reached/instance. 
Does it sound right?{quote}
no, in ZKProcedureCoordinatorRpcs.start() we are watching the acquired, 
reached, abort znodes and then on nodeCreate() we dispatch the events to 
the right Procedure.
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java#L74
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureUtil.java#L88

 ZKProcedureCoordinatorRpcs should respond only to members
 -

 Key: HBASE-11341
 URL: https://issues.apache.org/jira/browse/HBASE-11341
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.94.20, 0.98.3
Reporter: Matteo Bertozzi
Assignee: Matteo Bertozzi
Priority: Minor
 Fix For: 0.99.0, 0.94.21, 0.98.4

 Attachments: HBASE-11341-v0.patch


 ZKProcedureCoordinatorRpcs nodeCreated() responds to events of every znode 
 under the procedure and not only members.
 {code}
 INFO: Received created event: /hbase/proc/reached/instance
 INFO: Received created event: /hbase/proc/reached/instance/member
 {code}
 the result is a warning (no other side effects)
 {code}
 WARN [main-EventThread] procedure.ProcedureCoordinator: Member 'instance' 
 is trying to release an unknown procedure 'reached
 {code}
 [~apurtell] posted in HBASE-10926 the steps to reproduce it:
 {noformat}
 $ cd ./src/hbase
 $ git checkout master
 $ mvn -DskipTests clean install
 {noformat}
 In one console:
 {noformat}
 $ ./bin/hbase master start
 {noformat}
 In another console:
 {noformat}
 $ ./bin/hbase org.apache.hadoop.hbase.util.LoadTestTool -num_keys 10 \
 -read 10:100 -write 1:100:10
 {noformat}
 In a third console:
 {noformat}
 $ ./bin/hbase shell
 hbase while true do ; flush 'cluster_test' ; sleep 10 ; end
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11322) SnapshotHFileCleaner makes the wrong check for lastModified time thus causing too many cache refreshes

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031482#comment-14031482
 ] 

Lars Hofhansl commented on HBASE-11322:
---

This is quite different in trunk. Not sure offhand whether it's correct there 
or not.

 SnapshotHFileCleaner makes the wrong check for lastModified time thus causing 
 too many cache refreshes
 --

 Key: HBASE-11322
 URL: https://issues.apache.org/jira/browse/HBASE-11322
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.19
Reporter: churro morales
Assignee: churro morales
Priority: Critical
 Fix For: 0.94.21

 Attachments: 11322.94.txt, HBASE-11322.patch


 The SnapshotHFileCleaner calls the SnapshotFileCache if a particular HFile in 
 question is part of a snapshot.
 If the HFile is not in the cache, we then refresh the cache and check again.
 But the cache refresh checks to see if anything has been modified since the 
 last cache refresh but this logic is incorrect in certain scenarios.
 The last modified time is done via this operation:
 {code}
 this.lastModifiedTime = Math.min(dirStatus.getModificationTime(),
  tempStatus.getModificationTime());
 {code}
 and the check to see if the snapshot directories have been modified:
 {code}
 // if the snapshot directory wasn't modified since we last check, we are done
 if (dirStatus.getModificationTime() = lastModifiedTime 
 tempStatus.getModificationTime() = lastModifiedTime) {
   return;
 }
 {code}
 Suppose the following happens:
 dirStatus modified 6-1-2014
 tempStatus modified 6-2-2014
 lastModifiedTime = 6-1-2014
 provided these two directories don't get modified again all subsequent checks 
 wont exit early, like they should.
 In our cluster, this was a huge performance hit.  The cleaner chain fell 
 behind, thus almost filling up dfs and our namenode heap.
 Its a simple fix, instead of Math.min we use Math.max for the lastModified, I 
 believe that will be correct.
 I'll apply a patch for you guys.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11322) SnapshotHFileCleaner makes the wrong check for lastModified time thus causing too many cache refreshes

2014-06-14 Thread churro morales (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031486#comment-14031486
 ] 

churro morales commented on HBASE-11322:


Hi Lars, 

That is correct, but maybe I'm missing something with the Math.max solution.

Provided that if we say lastModifiedTime is the greater of the two modified 
times for the directories in question.  
And we say that when doing any given check, the maximum value that 
lastModifiedTime can have is the current timestamp.  
Then, if any of the directories is modified between the current check and the 
next subsequent check in the future.  Their respective modified times must be 
larger than the previous lastModifiedTime variable as long as the next check 
happens in the future.

On the other hand maybe its late and I'm not thinking of a condition where this 
could be incorrect.  
We applied the patch in production today and the cleaner could finally keep up 
without us having to manually step in and delete files manually from the 
archive directory.  Our namenode was finally happy and we stopped running out 
of dfs disk space.


 SnapshotHFileCleaner makes the wrong check for lastModified time thus causing 
 too many cache refreshes
 --

 Key: HBASE-11322
 URL: https://issues.apache.org/jira/browse/HBASE-11322
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.19
Reporter: churro morales
Assignee: churro morales
Priority: Critical
 Fix For: 0.94.21

 Attachments: 11322.94.txt, HBASE-11322.patch


 The SnapshotHFileCleaner calls the SnapshotFileCache if a particular HFile in 
 question is part of a snapshot.
 If the HFile is not in the cache, we then refresh the cache and check again.
 But the cache refresh checks to see if anything has been modified since the 
 last cache refresh but this logic is incorrect in certain scenarios.
 The last modified time is done via this operation:
 {code}
 this.lastModifiedTime = Math.min(dirStatus.getModificationTime(),
  tempStatus.getModificationTime());
 {code}
 and the check to see if the snapshot directories have been modified:
 {code}
 // if the snapshot directory wasn't modified since we last check, we are done
 if (dirStatus.getModificationTime() = lastModifiedTime 
 tempStatus.getModificationTime() = lastModifiedTime) {
   return;
 }
 {code}
 Suppose the following happens:
 dirStatus modified 6-1-2014
 tempStatus modified 6-2-2014
 lastModifiedTime = 6-1-2014
 provided these two directories don't get modified again all subsequent checks 
 wont exit early, like they should.
 In our cluster, this was a huge performance hit.  The cleaner chain fell 
 behind, thus almost filling up dfs and our namenode heap.
 Its a simple fix, instead of Math.min we use Math.max for the lastModified, I 
 believe that will be correct.
 I'll apply a patch for you guys.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11322) SnapshotHFileCleaner makes the wrong check for lastModified time thus causing too many cache refreshes

2014-06-14 Thread churro morales (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031487#comment-14031487
 ] 

churro morales commented on HBASE-11322:


I believe if you can take the Math.max instead of the Math.min in trunk and it 
would work as well.  I looked over it quickly but I think that will work too

 SnapshotHFileCleaner makes the wrong check for lastModified time thus causing 
 too many cache refreshes
 --

 Key: HBASE-11322
 URL: https://issues.apache.org/jira/browse/HBASE-11322
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.19
Reporter: churro morales
Assignee: churro morales
Priority: Critical
 Fix For: 0.94.21

 Attachments: 11322.94.txt, HBASE-11322.patch


 The SnapshotHFileCleaner calls the SnapshotFileCache if a particular HFile in 
 question is part of a snapshot.
 If the HFile is not in the cache, we then refresh the cache and check again.
 But the cache refresh checks to see if anything has been modified since the 
 last cache refresh but this logic is incorrect in certain scenarios.
 The last modified time is done via this operation:
 {code}
 this.lastModifiedTime = Math.min(dirStatus.getModificationTime(),
  tempStatus.getModificationTime());
 {code}
 and the check to see if the snapshot directories have been modified:
 {code}
 // if the snapshot directory wasn't modified since we last check, we are done
 if (dirStatus.getModificationTime() = lastModifiedTime 
 tempStatus.getModificationTime() = lastModifiedTime) {
   return;
 }
 {code}
 Suppose the following happens:
 dirStatus modified 6-1-2014
 tempStatus modified 6-2-2014
 lastModifiedTime = 6-1-2014
 provided these two directories don't get modified again all subsequent checks 
 wont exit early, like they should.
 In our cluster, this was a huge performance hit.  The cleaner chain fell 
 behind, thus almost filling up dfs and our namenode heap.
 Its a simple fix, instead of Math.min we use Math.max for the lastModified, I 
 believe that will be correct.
 I'll apply a patch for you guys.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11347) For some errors, the client can retry infinitely

2014-06-14 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-11347:


  Resolution: Fixed
Hadoop Flags: Reviewed
  Status: Resolved  (was: Patch Available)

Committed to master  0.98 branches, thanks for the review, Ted and Lars.

 For some errors, the client can retry infinitely
 

 Key: HBASE-11347
 URL: https://issues.apache.org/jira/browse/HBASE-11347
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Critical
 Fix For: 0.99.0, 0.98.4

 Attachments: 11347.v1.patch


 As the title says...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11273) Fix jersey and slf4j deps

2014-06-14 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031499#comment-14031499
 ] 

Nicolas Liochon commented on HBASE-11273:
-

Committed, (without a hadoop-qa run, but seems to work locally).
Thanks for the review, Stack.

 Fix jersey and slf4j deps
 -

 Key: HBASE-11273
 URL: https://issues.apache.org/jira/browse/HBASE-11273
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Minor
 Fix For: 0.99.0

 Attachments: 11273.v1.patch


 Hadoop 2.4 wants newer version than us, it's always dangerous to downgrade 
 3rd parties versions...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11273) Fix jersey and slf4j deps

2014-06-14 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-11273:


  Resolution: Fixed
Release Note: 
Committed, (without a hadoop-qa run, but seems to work locally).
Thanks for the review, Stack.
Hadoop Flags: Reviewed
  Status: Resolved  (was: Patch Available)

 Fix jersey and slf4j deps
 -

 Key: HBASE-11273
 URL: https://issues.apache.org/jira/browse/HBASE-11273
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Minor
 Fix For: 0.99.0

 Attachments: 11273.v1.patch


 Hadoop 2.4 wants newer version than us, it's always dangerous to downgrade 
 3rd parties versions...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11273) Fix jersey and slf4j deps

2014-06-14 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-11273:


Release Note:   (was: Committed, (without a hadoop-qa run, but seems to 
work locally).
Thanks for the review, Stack.)

 Fix jersey and slf4j deps
 -

 Key: HBASE-11273
 URL: https://issues.apache.org/jira/browse/HBASE-11273
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Minor
 Fix For: 0.99.0

 Attachments: 11273.v1.patch


 Hadoop 2.4 wants newer version than us, it's always dangerous to downgrade 
 3rd parties versions...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-8315) Documentation should have more information of LRU Stats

2014-06-14 Thread Daisuke Kobayashi (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031509#comment-14031509
 ] 

Daisuke Kobayashi commented on HBASE-8315:
--

Thanks [~stack] and [~misty]!

 Documentation should have more information of LRU Stats
 ---

 Key: HBASE-8315
 URL: https://issues.apache.org/jira/browse/HBASE-8315
 Project: HBase
  Issue Type: Improvement
  Components: documentation
Affects Versions: 0.95.0
Reporter: Daisuke Kobayashi
Assignee: Misty Stanley-Jones
  Labels: documentation
 Fix For: 0.99.0

 Attachments: 8351.txt, Screen Shot 2014-06-13 at 10.59.05 AM.png


 Unfortunately, there's no documentation to explain the meaning of each LRU 
 Stats in the regionserver logs.  So this is for creating a new paragraph 
 regarding this.  My current idea is below, but it's a little bit difficult to 
 explain the difference between 'cachingAccesses' and 'accesses' from an 
 administrator or a user views.
 Could you guys help to improve the content?
 {noformat}
 total: The current memory size of the cache in use.
 free: The total free memory currently available to store more cache entries.
 max: Maximum allowed memory size of the cache.
 blocks: Caches store blocks of data; this number is the current # of blocks 
 stored, which use up the total memory space.
 accesses: The total number of times the cache was accessed, regardless of 
 result.
 hits: The total number of times the cache was accessed and the result was a 
 successful hit (presence of looked up element in cache is a hit).
 hitRatio: The current percentage for hits / accesses.
 
 Unclear:
 cachingAccesses: cachingHits + The number of getBlock requests that were 
 cache misses, but only from requests that were set to use the block cache.
 cachingHits: The number of getBlock requests that were cache hits, but only 
 from requests that were set to use the block cache. This is because all reads
 =
 cachingHitsRatio: The current percentage for cachintHits / cachingAccesses
 evictions: The total number of times an eviction has occurred (based on the 
 use of the LRU algorithm)
 evicted: The total number of blocks that have been evicted (based on the use 
 of the LRU algorithm)
 evictedPerRun: The total number of blocks that have been evicted overall / 
 The number of times an eviction has occurred overall
 {noformat}
 And also, where should we add this paragraph in the documentation?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10771) Primitive type put/get APIs in ByteRange

2014-06-14 Thread Anoop Sam John (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-10771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031519#comment-14031519
 ] 

Anoop Sam John commented on HBASE-10771:


bq.Where do you confirm that the long and int writing is same as BBs
Just wrote a test to confirm.  I write using BR API and create a BB wrapping 
the byte[] and do read back using BB APIs. Looks good. Will add that test case 
also on commit.
bq. You should note in the implementations that they are equivalent in a 
comment on commit.
Sure.

 Primitive type put/get APIs in ByteRange 
 -

 Key: HBASE-10771
 URL: https://issues.apache.org/jira/browse/HBASE-10771
 Project: HBase
  Issue Type: Improvement
Reporter: Anoop Sam John
Assignee: Anoop Sam John
 Fix For: 0.99.0

 Attachments: HBASE-10771.patch, HBASE-10771_V2.patch, 
 HBASE-10771_V3.patch, HBASE-10771_V4.patch


 While doing HBASE-10713 I came across the need to write int/long (and read 
 also) from a ByteRange.  CellBlocks are backed by ByteRange. So we can add 
 such APIs.
 Also as per HBASE-10750  we return a ByteRange from MSLAB and also discussion 
 under HBASE-10191 suggest we can have BR backed HFileBlocks etc.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11347) For some errors, the client can retry infinitely

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031536#comment-14031536
 ] 

Hudson commented on HBASE-11347:


SUCCESS: Integrated in HBase-TRUNK #5204 (See 
[https://builds.apache.org/job/HBase-TRUNK/5204/])
HBASE-11347 For some errors, the client can retry infinitely (liochon: rev 
3fa92647d24dc87cc958b33c5becd8dda16d1326)
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
* 
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java


 For some errors, the client can retry infinitely
 

 Key: HBASE-11347
 URL: https://issues.apache.org/jira/browse/HBASE-11347
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Critical
 Fix For: 0.99.0, 0.98.4

 Attachments: 11347.v1.patch


 As the title says...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11347) For some errors, the client can retry infinitely

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031543#comment-14031543
 ] 

Hudson commented on HBASE-11347:


SUCCESS: Integrated in HBase-0.98-on-Hadoop-1.1 #318 (See 
[https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/318/])
HBASE-11347 For some errors, the client can retry infinitely (liochon: rev 
9ce175146f4dd8ad984eac69819d8cd375368e61)
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
* 
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java


 For some errors, the client can retry infinitely
 

 Key: HBASE-11347
 URL: https://issues.apache.org/jira/browse/HBASE-11347
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Critical
 Fix For: 0.99.0, 0.98.4

 Attachments: 11347.v1.patch


 As the title says...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11347) For some errors, the client can retry infinitely

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031544#comment-14031544
 ] 

Hudson commented on HBASE-11347:


SUCCESS: Integrated in HBase-0.98 #337 (See 
[https://builds.apache.org/job/HBase-0.98/337/])
HBASE-11347 For some errors, the client can retry infinitely (liochon: rev 
9ce175146f4dd8ad984eac69819d8cd375368e61)
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
* 
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java


 For some errors, the client can retry infinitely
 

 Key: HBASE-11347
 URL: https://issues.apache.org/jira/browse/HBASE-11347
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Critical
 Fix For: 0.99.0, 0.98.4

 Attachments: 11347.v1.patch


 As the title says...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11273) Fix jersey and slf4j deps

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031562#comment-14031562
 ] 

Hudson commented on HBASE-11273:


SUCCESS: Integrated in HBase-TRUNK #5205 (See 
[https://builds.apache.org/job/HBase-TRUNK/5205/])
HBASE-11273 Fix jersey and slf4j deps (liochon: rev 
047463c278e53f03a2005a6ba208fb3fbbe8db78)
* pom.xml


 Fix jersey and slf4j deps
 -

 Key: HBASE-11273
 URL: https://issues.apache.org/jira/browse/HBASE-11273
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Minor
 Fix For: 0.99.0

 Attachments: 11273.v1.patch


 Hadoop 2.4 wants newer version than us, it's always dangerous to downgrade 
 3rd parties versions...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (HBASE-11353) Wrong Write Request Count

2014-06-14 Thread Nicolas Liochon (JIRA)
Nicolas Liochon created HBASE-11353:
---

 Summary: Wrong Write Request Count
 Key: HBASE-11353
 URL: https://issues.apache.org/jira/browse/HBASE-11353
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.98.3, 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
 Fix For: 0.99.0, 0.98.4


See title...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11353) Wrong Write Request Count

2014-06-14 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-11353:


Attachment: 11353.v1.patch

 Wrong Write Request Count
 -

 Key: HBASE-11353
 URL: https://issues.apache.org/jira/browse/HBASE-11353
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
 Fix For: 0.99.0, 0.98.4

 Attachments: 11353.v1.patch


 See title...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11353) Wrong Write Request Count

2014-06-14 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-11353:


Status: Patch Available  (was: Open)

 Wrong Write Request Count
 -

 Key: HBASE-11353
 URL: https://issues.apache.org/jira/browse/HBASE-11353
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.98.3, 0.99.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
 Fix For: 0.99.0, 0.98.4

 Attachments: 11353.v1.patch


 See title...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11353) Wrong Write Request Count

2014-06-14 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031586#comment-14031586
 ] 

Hadoop QA commented on HBASE-11353:
---

{color:green}+1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12650447/11353.v1.patch
  against trunk revision .
  ATTACHMENT ID: 12650447

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 3 new 
or modified tests.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9774//console

This message is automatically generated.

 Wrong Write Request Count
 -

 Key: HBASE-11353
 URL: https://issues.apache.org/jira/browse/HBASE-11353
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
 Fix For: 0.99.0, 0.98.4

 Attachments: 11353.v1.patch


 See title...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11059) ZK-less region assignment

2014-06-14 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-11059:


Resolution: Fixed
Status: Resolved  (was: Patch Available)

Integrated into trunk. Thanks Stack, Jeffrey, and Mikhail a lot for the review 
and discussion.

 ZK-less region assignment
 -

 Key: HBASE-11059
 URL: https://issues.apache.org/jira/browse/HBASE-11059
 Project: HBase
  Issue Type: Improvement
  Components: master, Region Assignment
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Fix For: 0.99.0

 Attachments: hbase-11059.patch, hbase-11059_v2.1.patch, 
 hbase-11059_v2.2.patch, hbase-11059_v2.patch, hbase-11059_v3.0.patch, 
 zk-less_am.pdf, zk-less_assignment.png


 It seems that most people don't like region assignment with ZK (HBASE-5487), 
 which causes many uncertainties. This jira is to support ZK-less region 
 assignment. We need to make sure this patch doesn't break backward 
 compatibility/rolling upgrade.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Anoop Sam John (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031609#comment-14031609
 ] 

Anoop Sam John commented on HBASE-11323:


{quote}
bq.block buf refer the offheap memory? So in the read path, the Cells will 
refer to this memory?

Yes, that's what I'm suggesting.
{quote}
So we have to make sure the read path having Cell flowing through. (I think 
this is mostly done) 
And the Cell should be supported being backed by BB. (offheap) We will need new 
comparators. 
The Cell interface is having get***Array() APIs which return byte[]. We use 
them for the compare.  When the Cells are backed by BB, calling these APIs will 
need us to create temp byte[] objects and copying.  Need ways to solve this.


 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031612#comment-14031612
 ] 

Andrew Purtell commented on HBASE-11323:


bq. But on creation, it only has Path context... nought else.

Yeah when opening a reader we only have the metadata in the HFile, we are 
disconnected from schema at the HFile level. If you look at the patch for 
HBASE-9857, there are some TODOs where we have regex constants down in HFile 
for what should be Store level detail (path and dir layout conventions). We 
should hook up read side to Store. Possibly we could do that by adding a method 
HFileContext Store#getFileContext(Path) ? Would set up a context with schema 
and flags based on the Store level knowledge of what the Path encodes.

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031616#comment-14031616
 ] 

Andrew Purtell commented on HBASE-11323:


We have various results that all indicate _some_ penalty for using the bucket 
cache, with commensurate improvement in GC related metrics. It can be a trade 
off well worth making but should not be a global decision. I think we should 
make combined LRU cache + bucket cache the default, but only if we can have the 
default placement for data blocks still be on heap and plumb down schema level 
selection of block placement off heap. Then you can have, on a per CF basis, 
such strategies as large warm data off heap with block encoding (trade scanning 
CPU for serde/copying costs) and smaller hot data on heap with no encoding. At 
a future time we could have a few caching strategies like this automatically 
managed by ergonomics.

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11059) ZK-less region assignment

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031637#comment-14031637
 ] 

Hudson commented on HBASE-11059:


SUCCESS: Integrated in HBase-TRUNK #5206 (See 
[https://builds.apache.org/job/HBase-TRUNK/5206/])
HBASE-11059 ZK-less region assignment (jxiang: rev 
58549428a66550aed83bfb6f1da405decc1b0f61)
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestZKLessSplitOnCluster.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java
* hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStateStore.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConfigUtil.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerNoMaster.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
* 
hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestZKLessAMOnCluster.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
* 
hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/RegionServerStatusProtos.java
* hbase-protocol/src/main/protobuf/RegionServerStatus.proto
* hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestOpenedRegionHandler.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/RegionLoad.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannersFromClientSide.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeTransaction.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/zookeeper/TestRecoverableZooKeeper.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestCloseRegionHandler.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestOpenRegionHandler.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/UnAssignCallable.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestZKBasedOpenCloseRegion.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignCallable.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestZKLessMergeOnCluster.java


 ZK-less region assignment
 -

 Key: HBASE-11059
 URL: https://issues.apache.org/jira/browse/HBASE-11059
 Project: HBase
  Issue Type: Improvement
  Components: master, Region Assignment
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Fix For: 0.99.0

 Attachments: hbase-11059.patch, hbase-11059_v2.1.patch, 
 hbase-11059_v2.2.patch, hbase-11059_v2.patch, hbase-11059_v3.0.patch, 
 zk-less_am.pdf, zk-less_assignment.png


 It seems that most people don't like region assignment with ZK (HBASE-5487), 
 which causes many uncertainties. This jira is to support ZK-less region 
 

[jira] [Resolved] (HBASE-11309) Remove USE_POSITION_BEFORE and related code from PrefixTreeSeeker

2014-06-14 Thread Ted Yu (JIRA)

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

Ted Yu resolved HBASE-11309.


Resolution: Later

 Remove USE_POSITION_BEFORE and related code from PrefixTreeSeeker
 -

 Key: HBASE-11309
 URL: https://issues.apache.org/jira/browse/HBASE-11309
 Project: HBase
  Issue Type: Task
Reporter: Ted Yu
Priority: Trivial

 This constant is always false in PrefixTreeSeeker.
 We can remove this variable and the code depending on this boolean to be true.
 Thanks to Matt Corgan who confirmed the above.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10771) Primitive type put/get APIs in ByteRange

2014-06-14 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-10771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031697#comment-14031697
 ] 

stack commented on HBASE-10771:
---

Still +1 on commit. You can add the notes on commit [~anoop.hbase]

 Primitive type put/get APIs in ByteRange 
 -

 Key: HBASE-10771
 URL: https://issues.apache.org/jira/browse/HBASE-10771
 Project: HBase
  Issue Type: Improvement
Reporter: Anoop Sam John
Assignee: Anoop Sam John
 Fix For: 0.99.0

 Attachments: HBASE-10771.patch, HBASE-10771_V2.patch, 
 HBASE-10771_V3.patch, HBASE-10771_V4.patch


 While doing HBASE-10713 I came across the need to write int/long (and read 
 also) from a ByteRange.  CellBlocks are backed by ByteRange. So we can add 
 such APIs.
 Also as per HBASE-10750  we return a ByteRange from MSLAB and also discussion 
 under HBASE-10191 suggest we can have BR backed HFileBlocks etc.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11353) Wrong Write Request Count

2014-06-14 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031696#comment-14031696
 ] 

stack commented on HBASE-11353:
---

+1

Funny we've never had a test like the one you add here.

 Wrong Write Request Count
 -

 Key: HBASE-11353
 URL: https://issues.apache.org/jira/browse/HBASE-11353
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.99.0, 0.98.3
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
 Fix For: 0.99.0, 0.98.4

 Attachments: 11353.v1.patch


 See title...



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11350) [PE] Allow random value size

2014-06-14 Thread stack (JIRA)

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

stack updated HBASE-11350:
--

   Resolution: Fixed
Fix Version/s: 0.99.0
   Status: Resolved  (was: Patch Available)

Committed this small addition to PE that no one but [~ndimiduk] cares about I'd 
say.

 [PE] Allow random value size
 

 Key: HBASE-11350
 URL: https://issues.apache.org/jira/browse/HBASE-11350
 Project: HBase
  Issue Type: Improvement
  Components: Performance
Reporter: stack
Assignee: stack
 Fix For: 0.99.0

 Attachments: 11348.txt


 Allow PE to write random value sizes.  Helpful mimic'ing 'real' sizings.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031717#comment-14031717
 ] 

stack commented on HBASE-11323:
---

[~anoop.hbase] I'll take a look sir.

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031716#comment-14031716
 ] 

stack commented on HBASE-11323:
---

Hm.  Maybe I am making this harder than it needs to be (the Lars and now Andrew 
ask that it be possible to have tables keep their DATA blocks in LruBlockCache):

The HCD#setInMemory javadoc says:

   * @param inMemory True if we are to keep all values in the HRegionServer 
cache

So, if I am allowed extrapolate, if a CF has IN_MEMORY set and we are using 
CombinedBlockCache -- i.e. LruBC and BucketCache -- then lets just cache the CF 
DATA blocks in LruBC too?

This small change is all that is needed:

{code}
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
index 7564cc2..23cdf83 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java
@@ -56,7 +56,7 @@ public class CombinedBlockCache implements BlockCache, 
HeapSize {
   @Override
   public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean 
inMemory) {
 boolean isMetaBlock = buf.getBlockType().getCategory() != 
BlockCategory.DATA;
-if (isMetaBlock) {
+if (isMetaBlock || inMemory) {
   lruCache.cacheBlock(cacheKey, buf, inMemory);
 } else {
   bucketCache.cacheBlock(cacheKey, buf, inMemory);
{code}

Running with it, I was able to check it was actually working by looking at the 
block cache dump by files.  It reports counts of blocks and whether DATA 
blocks.  Creating a table which is IN_MEMORY has its data blocks got into LruBC.

Of note, hbase:meta and other system tables now will have their DATA blocks up 
in LruBC too since they are marked as IN_MEMORY.

If the above is allowed, I'll go through and amend all references to IN_MEMORY 
to make note of this expanded definition of its meaning.

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031720#comment-14031720
 ] 

Andrew Purtell commented on HBASE-11323:


Do we want IN_MEMORY to be synonymous with on heap? I would not want my largish 
but able to fit collectively in RAM table to require big heaps when I have all 
this off heap memory available I could take advantage of without risk of long 
stop the world pauses. 

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031721#comment-14031721
 ] 

Andrew Purtell commented on HBASE-11323:


On the other hand it's an easy change and we could have IN_MEMORY mean this now 
as long as we can get to more precise specification of per CF placement at a 
later time when someone actually needs it. 

+1

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11322) SnapshotHFileCleaner makes the wrong check for lastModified time thus causing too many cache refreshes

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031729#comment-14031729
 ] 

Lars Hofhansl commented on HBASE-11322:
---

Hmm... True, assuming no races and or clock skew in any way you are correct.
I agree Math.max is fine too. Either way is fine with me. Keeping both times is 
more explicit and easier to reason about. Math.max on the other hand is simpler.

+1 on Math.max if you like that better :)


 SnapshotHFileCleaner makes the wrong check for lastModified time thus causing 
 too many cache refreshes
 --

 Key: HBASE-11322
 URL: https://issues.apache.org/jira/browse/HBASE-11322
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.19
Reporter: churro morales
Assignee: churro morales
Priority: Critical
 Fix For: 0.94.21

 Attachments: 11322.94.txt, HBASE-11322.patch


 The SnapshotHFileCleaner calls the SnapshotFileCache if a particular HFile in 
 question is part of a snapshot.
 If the HFile is not in the cache, we then refresh the cache and check again.
 But the cache refresh checks to see if anything has been modified since the 
 last cache refresh but this logic is incorrect in certain scenarios.
 The last modified time is done via this operation:
 {code}
 this.lastModifiedTime = Math.min(dirStatus.getModificationTime(),
  tempStatus.getModificationTime());
 {code}
 and the check to see if the snapshot directories have been modified:
 {code}
 // if the snapshot directory wasn't modified since we last check, we are done
 if (dirStatus.getModificationTime() = lastModifiedTime 
 tempStatus.getModificationTime() = lastModifiedTime) {
   return;
 }
 {code}
 Suppose the following happens:
 dirStatus modified 6-1-2014
 tempStatus modified 6-2-2014
 lastModifiedTime = 6-1-2014
 provided these two directories don't get modified again all subsequent checks 
 wont exit early, like they should.
 In our cluster, this was a huge performance hit.  The cleaner chain fell 
 behind, thus almost filling up dfs and our namenode heap.
 Its a simple fix, instead of Math.min we use Math.max for the lastModified, I 
 believe that will be correct.
 I'll apply a patch for you guys.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-11351:
--

Attachment: 11351-0.94.txt

Here's the hacked up patch.
WARNING: Total hack.
* For some reason MapDB wants *everything* Serializable
* All code in Memstore.java
* Currently KVs are serialized twice into the off heap map (could work around 
this if we forked MapDB NavigableSet implementation).
* Much slower
* Generates more GC churn (but should be young gen only)
* 0.94 only right now
* Just for playing!


 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11350) [PE] Allow random value size

2014-06-14 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031747#comment-14031747
 ] 

Hudson commented on HBASE-11350:


SUCCESS: Integrated in HBase-TRUNK #5207 (See 
[https://builds.apache.org/job/HBase-TRUNK/5207/])
HBASE-11350 [PE] Allow random value size (stack: rev 
63f0dffdba6b9e70fc26a653dd8b1ea64a4e2b70)
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat2.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java


 [PE] Allow random value size
 

 Key: HBASE-11350
 URL: https://issues.apache.org/jira/browse/HBASE-11350
 Project: HBase
  Issue Type: Improvement
  Components: Performance
Reporter: stack
Assignee: stack
 Fix For: 0.99.0

 Attachments: 11348.txt


 Allow PE to write random value sizes.  Helpful mimic'ing 'real' sizings.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031767#comment-14031767
 ] 

Lars Hofhansl commented on HBASE-11323:
---

That can work. InMemory also implies a different arena in the block cache, 
though.
If we can pass inMemory down to where it matters, why can't we pass another 
flag down this way?


 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031769#comment-14031769
 ] 

Lars Hofhansl commented on HBASE-11351:
---

Hmm... Doesn't work quite yet. I must have broken something playing around. 
Stay tuned.

 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-11351:
--

Attachment: 11351-0.94-v2.txt

This one works. MapDB requires each class do be serializable.

 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94-v2.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031775#comment-14031775
 ] 

Lars Hofhansl commented on HBASE-11351:
---

Next:
* Make it work in 0.96+ (protobufs). Although could keep the current 
serialization as well
* Better serialization (that makes use of the the sorted nature of the keys and 
does prefix compression)
* Only store key portion in the key of the map
* Fork the set implementation so that we do not need to store KV in a map 
(which in offheap means two copies of the KV)
* Do comparisons off heap! Needs more access into the BTree details (i.e. to 
the data before it is deserialized onto the heap again)

Not sure how much time I'll get on those. If somebody wants to experiment I'm 
happy to collaborate.


 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94-v2.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



[jira] [Comment Edited] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031775#comment-14031775
 ] 

Lars Hofhansl edited comment on HBASE-11351 at 6/15/14 3:52 AM:


Next:
* Make it work in 0.96+ (protobufs). Although could keep the current 
serialization as well
* Better serialization (that makes use of the the sorted nature of the keys and 
does prefix compression)
* Only store key portion in the key of the map
* Add code to MapDB to allow serialization from an array with offset
* Fork the set implementation so that we do not need to store KV in a map 
(which in offheap means two copies of the KV)
* Do comparisons off heap! Needs more access into the BTree details (i.e. to 
the data before it is deserialized onto the heap again)

Not sure how much time I'll get on those. If somebody wants to experiment I'm 
happy to collaborate.



was (Author: lhofhansl):
Next:
* Make it work in 0.96+ (protobufs). Although could keep the current 
serialization as well
* Better serialization (that makes use of the the sorted nature of the keys and 
does prefix compression)
* Only store key portion in the key of the map
* Fork the set implementation so that we do not need to store KV in a map 
(which in offheap means two copies of the KV)
* Do comparisons off heap! Needs more access into the BTree details (i.e. to 
the data before it is deserialized onto the heap again)

Not sure how much time I'll get on those. If somebody wants to experiment I'm 
happy to collaborate.


 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94-v2.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-11351:
--

Attachment: 11143-0.94-v3.txt

Very slightly better. Stores only the key portion of the KV in the off heap 
map's key.

 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11143-0.94-v3.txt, 11351-0.94-v2.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-11351:
--

Attachment: (was: 11143-0.94-v3.txt)

 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94-v2.txt, 11351-0.94-v3.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11351) Experiments with OffHeap memstores

2014-06-14 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-11351:
--

Attachment: 11351-0.94-v3.txt

Right patch this time.

 Experiments with OffHeap memstores
 --

 Key: HBASE-11351
 URL: https://issues.apache.org/jira/browse/HBASE-11351
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
 Attachments: 11351-0.94-v2.txt, 11351-0.94-v3.txt, 11351-0.94.txt


 I have been experimenting with offheap memstores using an offheap BTree 
 implementation of ConcurrentMap provided by MapDB (www.mapdb.org)
 So far I hooked this up in an experimental way with inefficient serialization 
 (in the sense that due to our special usage of the set api we need to back 
 the set by a map, which in the off heap case means we need to serialize and 
 store the value twice. It is used as key and value). But it works.
 It's quite a bit slower and due to need to deserialize upon scan it produces 
 *more* short term garbage.
 Let's use this issue to discuss.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11323) BucketCache all the time!

2014-06-14 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14031778#comment-14031778
 ] 

stack commented on HBASE-11323:
---

Thanks for the feedback lads.  I'll add new config on CacheConfig and will use 
it figuring whether to DATA blocks are L1 or L2 (Turns out BucketCache gives 
blocks marked IN_MEMORY higher priority trying to mimic roughly what is 
happening in LruBlockCache).

 BucketCache all the time!
 -

 Key: HBASE-11323
 URL: https://issues.apache.org/jira/browse/HBASE-11323
 Project: HBase
  Issue Type: Sub-task
  Components: io
Reporter: stack
 Fix For: 0.99.0

 Attachments: ReportBlockCache.pdf


 One way to realize the parent issue is to just enable bucket cache all the 
 time; i.e. always have offheap enabled.  Would have to do some work to make 
 it drop-dead simple on initial setup (I think it doable).
 So, upside would be the offheap upsides (less GC, less likely to go away and 
 never come back because of full GC when heap is large, etc.).
 Downside is higher latency.   In Nick's BlockCache 101 there is little to no 
 difference between onheap and offheap.  In a basic compare doing scans and 
 gets -- details to follow -- I have BucketCache deploy about 20% less ops 
 than LRUBC when all incache and maybe 10% less ops when falling out of cache. 
   I can't tell difference in means and 95th and 99th are roughly same (more 
 stable with BucketCache).  GC profile is much better with BucketCache -- way 
 less.  BucketCache uses about 7% more user CPU.
 More detail on comparison to follow.
 I think the numbers disagree enough we should probably do the [~lhofhansl] 
 suggestion, that we allow you to have a table sit in LRUBC, something the 
 current bucket cache layout does not do.



--
This message was sent by Atlassian JIRA
(v6.2#6252)