You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Liyin Tang (JIRA)" <ji...@apache.org> on 2012/10/03 03:16:07 UTC

[jira] [Created] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Liyin Tang created HBASE-6930:
---------------------------------

             Summary: [89-fb] Avoid acquiring the same row lock repeatedly
                 Key: HBASE-6930
                 URL: https://issues.apache.org/jira/browse/HBASE-6930
             Project: HBase
          Issue Type: Bug
            Reporter: Liyin Tang


When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.

So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Commented] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "liang xie (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13481168#comment-13481168 ] 

liang xie commented on HBASE-6930:
----------------------------------

[~liyin], seems we need to open an issue for trunk as well, right?  I compared "Revision: 1393468" in fb-89 branch and current trunk code in roughly, it looks trunk code need to have the similar optimization as well.
                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Commented] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "Lars Hofhansl (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13481171#comment-13481171 ] 

Lars Hofhansl commented on HBASE-6930:
--------------------------------------

The title/description here and the patch (and review) do not seem to mingle...
                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Updated] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phabricator updated HBASE-6930:
-------------------------------

    Attachment: D5841.2.patch

mbautin updated the revision "[jira] [HBASE-6930] [89-fb] Fix TestThriftServerLegacy: notifyAll should be inside synchronized block, and a null checkAndMutate expected value should be handled correctly".
Reviewers: Kannan, Liyin, Karthik, JIRA

  Adding ThriftServerRunner fixes

REVISION DETAIL
  https://reviews.facebook.net/D5841

AFFECTED FILES
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
  src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
  src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java

To: Kannan, Liyin, Karthik, JIRA, mbautin

                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Commented] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13468929#comment-13468929 ] 

Phabricator commented on HBASE-6930:
------------------------------------

Liyin has accepted the revision "[jira] [HBASE-6930] [89-fb] Fix TestThriftServerLegacy: notifyAll should be inside synchronized block, and a null checkAndMutate expected value should be handled correctly".

  Thanks Mikhail !

REVISION DETAIL
  https://reviews.facebook.net/D5841

BRANCH
  fix_locked_rows_v2

To: Kannan, Liyin, Karthik, JIRA, mbautin

                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Updated] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phabricator updated HBASE-6930:
-------------------------------

    Attachment: D5841.1.patch

mbautin requested code review of "[jira] [HBASE-6930] [89-fb] Fix TestThriftServerLegacy: notifyAll should be inside synchronized block".
Reviewers: Kannan, Liyin, Karthik, JIRA

  There were a couple of reasons why TestThriftServerLegacy has been failing recently in the HBase 89-fb branch:
  - rHBASEEIGHTNINEFBBRANCH1393468 was calling notifyAll outside a synchronized block
  - rHBASEEIGHTNINEFBBRANCH1391219 changed the meaning of a null expected value passed to checkAndMutate but that was not reflected in the Thrift handler

TEST PLAN
  Run TestThriftServerLegacy

REVISION DETAIL
  https://reviews.facebook.net/D5841

AFFECTED FILES
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java

MANAGE HERALD DIFFERENTIAL RULES
  https://reviews.facebook.net/herald/view/differential/

WHY DID I GET THIS EMAIL?
  https://reviews.facebook.net/herald/transcript/13833/

To: Kannan, Liyin, Karthik, JIRA, mbautin

                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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

[jira] [Commented] (HBASE-6930) [89-fb] Avoid acquiring the same row lock repeatedly

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469004#comment-13469004 ] 

Phabricator commented on HBASE-6930:
------------------------------------

mbautin has closed the revision "[jira] [HBASE-6930] [89-fb] Fix TestThriftServerLegacy: notifyAll should be inside synchronized block, and a null checkAndMutate expected value should be handled correctly".

CHANGED PRIOR TO COMMIT
  https://reviews.facebook.net/D5841?vs=19251&id=19293#differential-review-toc

REVISION DETAIL
  https://reviews.facebook.net/D5841

COMMIT
  https://reviews.facebook.net/rHBASEEIGHTNINEFBBRANCH1393839

To: Kannan, Liyin, Karthik, JIRA, mbautin

                
> [89-fb] Avoid acquiring the same row lock repeatedly
> ----------------------------------------------------
>
>                 Key: HBASE-6930
>                 URL: https://issues.apache.org/jira/browse/HBASE-6930
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liyin Tang
>         Attachments: D5841.1.patch, D5841.2.patch
>
>
> When processing the multiPut, multiMutations or multiDelete operations, each IPC handler thread tries to acquire a lock for each row key in these batches. If there are duplicated row keys in these batches, previously the IPC handler thread will repeatedly acquire the same row key again and again.
> So the optimization is to sort each batch operation based on the row key in the client side, and skip acquiring the same row lock repeatedly in the server side.

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