HBase
  1. HBase
  2. HBASE-9953

PerformanceEvaluation: Decouple data size from client concurrency

    Details

    • Type: Test Test
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.99.0
    • Component/s: Performance
    • Labels:
      None

      Description

      PerfEval tool provides a --rows=R for specifying the number of records to work with and requires the user provide a value of N, used as the concurrency level. From what I can tell, every concurrent process will interact with R rows. In order to perform an apples-to-apples test, the user must re-calculate the value R for every new value of N.

      Instead, I propose accepting a --size=S for the amount of data to interact with and let PerfEval divide that amongst the N clients on the user's behalf.

      1. HBASE-9953.01.patch
        4 kB
        Nick Dimiduk
      2. HBASE-9953.00.patch
        2 kB
        Nick Dimiduk

        Issue Links

          Activity

          Hide
          Enis Soztutar added a comment -

          Closing this issue after 0.99.0 release.

          Show
          Enis Soztutar added a comment - Closing this issue after 0.99.0 release.
          Hide
          Nick Dimiduk added a comment -

          Yes, I've observed our population doesn't quite match the space available. Something is lying, or at least off by some small amount that's repeated many times over, but I don't yet know what.

          Show
          Nick Dimiduk added a comment - Yes, I've observed our population doesn't quite match the space available. Something is lying, or at least off by some small amount that's repeated many times over, but I don't yet know what.
          Hide
          stack added a comment -

          This seems to work nicely for me. Funny how when the block cache is 4G, if you set the size to get to 4G, you fall out of BC. If you set it to 3G, you still do. 2.8G gets the BC 100% used w/ no misses. We've lots of overhead it seems (smile). Let me remove my modulo malarky.

          Show
          stack added a comment - This seems to work nicely for me. Funny how when the block cache is 4G, if you set the size to get to 4G, you fall out of BC. If you set it to 3G, you still do. 2.8G gets the BC 100% used w/ no misses. We've lots of overhead it seems (smile). Let me remove my modulo malarky.
          Hide
          Hudson added a comment -

          SUCCESS: Integrated in HBase-TRUNK #5120 (See https://builds.apache.org/job/HBase-TRUNK/5120/)
          HBASE-9953 PerformanceEvaluation: Decouple data size from client concurrency (ndimiduk: rev 1590216)

          • /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
          Show
          Hudson added a comment - SUCCESS: Integrated in HBase-TRUNK #5120 (See https://builds.apache.org/job/HBase-TRUNK/5120/ ) HBASE-9953 PerformanceEvaluation: Decouple data size from client concurrency (ndimiduk: rev 1590216) /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
          Hide
          Nick Dimiduk added a comment -

          Committed to trunk.

          Show
          Nick Dimiduk added a comment - Committed to trunk.
          Hide
          Hadoop QA added a comment -

          -1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12641941/HBASE-9953.01.patch
          against trunk revision .
          ATTACHMENT ID: 12641941

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 3 new or modified tests.

          -1 javadoc. The javadoc tool appears to have generated 8 warning messages.

          +1 javac. The applied patch does not increase the total number of javac compiler warnings.

          +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          +1 lineLengths. The patch does not introduce lines longer than 100

          +1 site. The mvn site goal succeeds with this patch.

          +1 core tests. The patch passed unit tests in .

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

          This message is automatically generated.

          Show
          Hadoop QA added a comment - -1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12641941/HBASE-9953.01.patch against trunk revision . ATTACHMENT ID: 12641941 +1 @author . The patch does not contain any @author tags. +1 tests included . The patch appears to include 3 new or modified tests. -1 javadoc . The javadoc tool appears to have generated 8 warning messages. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. +1 lineLengths . The patch does not introduce lines longer than 100 +1 site . The mvn site goal succeeds with this patch. +1 core tests . The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/9401//console This message is automatically generated.
          Hide
          stack added a comment -

          +1 Commit and I'll try it. Let me explain over in the modulo issue how it does similar but I like your take better (After trying this, may back out the modulo arg)

          Show
          stack added a comment - +1 Commit and I'll try it. Let me explain over in the modulo issue how it does similar but I like your take better (After trying this, may back out the modulo arg)
          Hide
          Nick Dimiduk added a comment -
          Show
          Nick Dimiduk added a comment - ping Nicolas Liochon , stack .
          Hide
          Nick Dimiduk added a comment -

          Jean-Marc Spaggiari

          2) If both (opts.size == DEFAULT_OPTS.size) and (opts.perClientRunRows == DEFAULT_OPTS.perClientRunRows) then opts.totalRows is never set?

          Yes, that's fine; in this case the default totalRows value of 1024 * 1024 is used.

          Show
          Nick Dimiduk added a comment - Jean-Marc Spaggiari 2) If both (opts.size == DEFAULT_OPTS.size) and (opts.perClientRunRows == DEFAULT_OPTS.perClientRunRows) then opts.totalRows is never set? Yes, that's fine; in this case the default totalRows value of 1024 * 1024 is used.
          Hide
          Nick Dimiduk added a comment -

          Refreshing patch after a short hiatus. Added description for new --size command to help text.

          Show
          Nick Dimiduk added a comment - Refreshing patch after a short hiatus. Added description for new --size command to help text.
          Hide
          Jean-Marc Spaggiari added a comment -

          2 comments.

          1) You might want to update printUsage too to provide usage.
          2) If both (opts.size == DEFAULT_OPTS.size) and (opts.perClientRunRows == DEFAULT_OPTS.perClientRunRows) then opts.totalRows is never set?

          Show
          Jean-Marc Spaggiari added a comment - 2 comments. 1) You might want to update printUsage too to provide usage. 2) If both (opts.size == DEFAULT_OPTS.size) and (opts.perClientRunRows == DEFAULT_OPTS.perClientRunRows) then opts.totalRows is never set?
          Hide
          Nick Dimiduk added a comment -

          Attached patch is post-refactor.

          Show
          Nick Dimiduk added a comment - Attached patch is post-refactor.
          Hide
          Nick Dimiduk added a comment -

          Yes, but not on the tool itself. I ended up writing a driver script that does the calculation for me. Nothing complicated. Let me throw together a patch.

          Show
          Nick Dimiduk added a comment - Yes, but not on the tool itself. I ended up writing a driver script that does the calculation for me. Nothing complicated. Let me throw together a patch.
          Hide
          Jean-Marc Spaggiari added a comment -

          Hi Nick Dimiduk any update on this one?

          Show
          Jean-Marc Spaggiari added a comment - Hi Nick Dimiduk any update on this one?
          Hide
          Nick Dimiduk added a comment -

          Yes, my intention isn't to remove existing functionality, at least not right away. Let's prove a new idea useful first.

          Show
          Nick Dimiduk added a comment - Yes, my intention isn't to remove existing functionality, at least not right away. Let's prove a new idea useful first.
          Hide
          Jean-Marc Spaggiari added a comment -

          -1 for --size instead of --rows
          +1 for --size in addition of --rows

          I think the 2 can (and need to) leave together so we can still easily compare previous release to new release.

          Show
          Jean-Marc Spaggiari added a comment - -1 for --size instead of --rows +1 for --size in addition of --rows I think the 2 can (and need to) leave together so we can still easily compare previous release to new release.

            People

            • Assignee:
              Nick Dimiduk
              Reporter:
              Nick Dimiduk
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development