Nutch
  1. Nutch
  2. NUTCH-1340

Increase scalability by only removing markers when they actually exist for DbUpdaterReducer

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: nutchgora
    • Component/s: None
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      After applying GORA-120 (this already is a huge performance boost by itself) one of the major bottlenecks of the DbUpdaterReducer is the deletion of the markers. The update reducer simply sets every row to delete its markers. A lot of rows do not actually have the markers but the deletes are fired away in any case. Because the markers are already always on the input, a simple check to see if they exist greaty improves performance.

      In particular it is very expensive in HBase, because every single Delete inmediately triggers a connection to the regionservers. (They ignore the "autoflush=false" directive). Although deletes can be done in batch, this is currently not supported by Gora. For one it is very difficult to implement in the current HBaseStore with regard to multithreading, and secondly I noticed performance did not increase significantly.

      By performance debugging on a real life cluster this currently seems to be the biggest bottleneck of the DbUpdaterReducer. (Remember only after applying GORA-120)

      1. NUTCH-1340-v1.txt
        2 kB
        Ferdy Galema
      2. NUTCH-1340-v2.txt
        2 kB
        Ferdy Galema

        Issue Links

          Activity

          Hide
          Lewis John McGibbney added a comment -

          Hi Ferdy. I am +1 for this going into 2.0. If you could do your usual and provide a small Javadoc comment for the new method you introduce that would be great.

          Show
          Lewis John McGibbney added a comment - Hi Ferdy. I am +1 for this going into 2.0. If you could do your usual and provide a small Javadoc comment for the new method you introduce that would be great.
          Hide
          Ferdy Galema added a comment -

          v2 of patch, including javadoc. This patch increases performance, but when updating huge crawls it still can be a bit troublesome to process the huge amounts of deletes. However this is something that needs to be solved in Gora.

          Committed!

          Thanks Lewis.

          Show
          Ferdy Galema added a comment - v2 of patch, including javadoc. This patch increases performance, but when updating huge crawls it still can be a bit troublesome to process the huge amounts of deletes. However this is something that needs to be solved in Gora. Committed! Thanks Lewis.
          Hide
          Hudson added a comment -

          Integrated in Nutch-nutchgora #240 (See https://builds.apache.org/job/Nutch-nutchgora/240/)
          NUTCH-1340 Increase scalability by only removing markers when they actually exist for DbUpdaterReducer (Revision 1330722)

          Result = SUCCESS
          ferdy :
          Files :

          • /nutch/branches/nutchgora/CHANGES.txt
          • /nutch/branches/nutchgora/src/java/org/apache/nutch/crawl/DbUpdateReducer.java
          • /nutch/branches/nutchgora/src/java/org/apache/nutch/storage/Mark.java
          Show
          Hudson added a comment - Integrated in Nutch-nutchgora #240 (See https://builds.apache.org/job/Nutch-nutchgora/240/ ) NUTCH-1340 Increase scalability by only removing markers when they actually exist for DbUpdaterReducer (Revision 1330722) Result = SUCCESS ferdy : Files : /nutch/branches/nutchgora/CHANGES.txt /nutch/branches/nutchgora/src/java/org/apache/nutch/crawl/DbUpdateReducer.java /nutch/branches/nutchgora/src/java/org/apache/nutch/storage/Mark.java

            People

            • Assignee:
              Unassigned
              Reporter:
              Ferdy Galema
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development