Review Board 1.7.22


HBase-5619, the ProtoBuff HRegionProtocol.

Review Request #4054 - Created Feb. 27, 2012 and submitted

Jimmy Xiang
HBASE-5619
Reviewers
hbase
hbase-git
This is the first draft of the ProtoBuff HRegionProtocol.  The corresponding java vs pb method mapping is attached to the jira: https://issues.apache.org/jira/browse/HBASE-5443

Please review.  I'd like to move ahead after we get to some agreement.

 

Changes between revision 1 and 5

1 2 3 4 5 6
1 2 3 4 5 6

  1. pom.xml: Loading...
  2. src/main/proto/HRegionProtocol.proto: Loading...
  3. src/main/proto/RegionAdmin.proto: Loading...
  4. src/main/proto/RegionClient.proto: Loading...
  5. src/main/proto/hbase.proto: Loading...
pom.xml
Diff Revision 1 Diff Revision 5
[20] 33 lines
[+20]
34
  </parent>
34
  </parent>
35

    
   
35

   
36
  <groupId>org.apache.hbase</groupId>
36
  <groupId>org.apache.hbase</groupId>
37
  <artifactId>hbase</artifactId>
37
  <artifactId>hbase</artifactId>
38
  <packaging>jar</packaging>
38
  <packaging>jar</packaging>
39
  <version>0.93-SNAPSHOT</version>
39
  <version>0.95-SNAPSHOT</version>
40
  <name>HBase</name>
40
  <name>HBase</name>
41
  <description>
41
  <description>
42
    HBase is the &amp;lt;a href="http://hadoop.apache.org"&amp;rt;Hadoop&lt;/a&amp;rt; database. Use it when you need
42
    HBase is the &amp;lt;a href="http://hadoop.apache.org"&amp;rt;Hadoop&lt;/a&amp;rt; database. Use it when you need
43
    random, realtime read/write access to your Big Data.
43
    random, realtime read/write access to your Big Data.
44
    This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters
44
    This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters
[+20] [20] 278 lines
[+20]
323
         These plugins inherit their options from the <reporting> section below. These settings
323
         These plugins inherit their options from the <reporting> section below. These settings
324
         can be overwritten here. -->
324
         can be overwritten here. -->
325
    <pluginManagement>
325
    <pluginManagement>
326
      <plugins>
326
      <plugins>
327
        <plugin>
327
        <plugin>

    
   
328
          <groupId>org.apache.maven.plugins</groupId>

    
   
329
          <artifactId>maven-release-plugin</artifactId>

    
   
330
          <!--Making a release I've been using mvn 3.0 and specifying the apache-release

    
   
331
              profile on the command line as follows:

    
   
332

   

    
   
333
              $ ~/bin/mvn/bin/mvn  -Papache-release release:perform

    
   
334

   

    
   
335
              I've also been kiling the release:prepare step mid-way to check the

    
   
336
              release.properties it generates at the top-level.  Sometimes it refers

    
   
337
              to HEAD rather than to the svn branch.

    
   
338
           -->

    
   
339
          <configuration>

    
   
340
            <!--You need this profile. It'll sign your artifacts.

    
   
341
                I'm not sure if this config. actually works though.

    
   
342
                I've been specifying -Papache-release on the command-line

    
   
343
             -->

    
   
344
            <releaseProfiles>apache-release</releaseProfiles>

    
   
345
            <!--This stops our running tests for each stage of maven release.

    
   
346
                But it builds the test jar.  From SUREFIRE-172.

    
   
347
              -->

    
   
348
            <arguments>-Dmaven.test.skip.exec</arguments>

    
   
349
          </configuration>

    
   
350
        </plugin>

    
   
351
        <plugin>
328
          <artifactId>maven-compiler-plugin</artifactId>
352
          <artifactId>maven-compiler-plugin</artifactId>
329
          <configuration>
353
          <configuration>
330
            <source>${compileSource}</source>
354
            <source>${compileSource}</source>
331
            <target>${compileSource}</target>
355
            <target>${compileSource}</target>
332
            <showWarnings>true</showWarnings>
356
            <showWarnings>true</showWarnings>
[+20] [20] 16 lines
[+20]
349
          </dependencies>
373
          </dependencies>
350

    
   
374

   
351
          <configuration>
375
          <configuration>
352
            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
376
            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
353
            <argLine>-enableassertions -Xmx1900m -Djava.security.egd=file:/dev/./urandom</argLine>
377
            <argLine>-enableassertions -Xmx1900m -Djava.security.egd=file:/dev/./urandom</argLine>
354
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
378
            <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
355
          </configuration>
379
          </configuration>
356
        </plugin>
380
        </plugin>
357
        <plugin>
381
        <plugin>
358
          <groupId>org.apache.maven.plugins</groupId>
382
          <groupId>org.apache.maven.plugins</groupId>
359
          <artifactId>maven-site-plugin</artifactId>
383
          <artifactId>maven-site-plugin</artifactId>
[+20] [20] 17 lines
[+20]
377
            <excludes>
401
            <excludes>
378
              <exlude>${unittest.include}</exlude>
402
              <exlude>${unittest.include}</exlude>
379
              <exclude>**/*$*</exclude>
403
              <exclude>**/*$*</exclude>
380
              <exclude>${test.exclude.pattern}</exclude>
404
              <exclude>${test.exclude.pattern}</exclude>
381
            </excludes>
405
            </excludes>
382
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
406
            <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
383
            <environmentVariables>
407
            <environmentVariables>
384
              <LD_LIBRARY_PATH>${env.LD_LIBRARY_PATH}:${project.build.directory}/nativelib</LD_LIBRARY_PATH>
408
              <LD_LIBRARY_PATH>${env.LD_LIBRARY_PATH}:${project.build.directory}/nativelib</LD_LIBRARY_PATH>
385
              <DYLD_LIBRARY_PATH>${env.DYLD_LIBRARY_PATH}:${project.build.directory}/nativelib</DYLD_LIBRARY_PATH>
409
              <DYLD_LIBRARY_PATH>${env.DYLD_LIBRARY_PATH}:${project.build.directory}/nativelib</DYLD_LIBRARY_PATH>

    
   
410
              <MALLOC_ARENA_MAX>4</MALLOC_ARENA_MAX>
386
            </environmentVariables>
411
            </environmentVariables>
387
          </configuration>
412
          </configuration>
388
          <executions>
413
          <executions>
389
            <execution>
414
            <execution>
390
              <id>integration-test</id>
415
              <id>integration-test</id>
[+20] [20] 33 lines
[+20]
424
        <plugin>
449
        <plugin>
425
          <groupId>org.codehaus.mojo</groupId>
450
          <groupId>org.codehaus.mojo</groupId>
426
          <artifactId>build-helper-maven-plugin</artifactId>
451
          <artifactId>build-helper-maven-plugin</artifactId>
427
          <version>1.5</version>
452
          <version>1.5</version>
428
        </plugin>
453
        </plugin>
429
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It 
454
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It
430
          has no influence on the Maven build itself. m2e does not provide any safeguards against 
455
          has no influence on the Maven build itself. m2e does not provide any safeguards against
431
          rogue maven plugins that leak classloaders, modify random files inside workspace 
456
          rogue maven plugins that leak classloaders, modify random files inside workspace
432
          or throw nasty exceptions to fail the build -->
457
          or throw nasty exceptions to fail the build -->
433
        <plugin>
458
        <plugin>
434
          <groupId>org.eclipse.m2e</groupId>
459
          <groupId>org.eclipse.m2e</groupId>
435
          <artifactId>lifecycle-mapping</artifactId>
460
          <artifactId>lifecycle-mapping</artifactId>
436
          <version>1.0.0</version>
461
          <version>1.0.0</version>
[+20] [20] 11 lines
[+20]
448
                    </goals>
473
                    </goals>
449
                  </pluginExecutionFilter>
474
                  </pluginExecutionFilter>
450
                  <action>
475
                  <action>
451
                    <execute></execute>
476
                    <execute></execute>
452
                  </action>
477
                  </action>
453
                </pluginExecution> 
478
                </pluginExecution>
454
                <pluginExecution>
479
                <pluginExecution>
455
                  <pluginExecutionFilter>
480
                  <pluginExecutionFilter>
456
                    <groupId>org.apache.maven.plugins</groupId>
481
                    <groupId>org.apache.maven.plugins</groupId>
457
                    <artifactId>maven-antrun-plugin</artifactId>
482
                    <artifactId>maven-antrun-plugin</artifactId>
458
                    <versionRange>[1.3,)</versionRange>
483
                    <versionRange>[1.3,)</versionRange>
[+20] [20] 22 lines
[+20]
481
            </lifecycleMappingMetadata>
506
            </lifecycleMappingMetadata>
482
          </configuration>
507
          </configuration>
483
        </plugin>
508
        </plugin>
484
	<plugin> <!-- in plugin management section so excludes can be inherited -->
509
	<plugin> <!-- in plugin management section so excludes can be inherited -->
485
	  <groupId>org.apache.rat</groupId>
510
	  <groupId>org.apache.rat</groupId>
486
          <artifactId>apache-rat-plugin</artifactId>	  
511
          <artifactId>apache-rat-plugin</artifactId>
487
          <version>0.8</version>
512
          <version>0.8</version>
488
          <configuration>
513
          <configuration>
489
            <excludes>
514
            <excludes>
490
              <exclude>**/.*</exclude>
515
              <exclude>**/.*</exclude>

    
   
516
              <exclude>**/*.tgz</exclude>

    
   
517
              <exclude>**/*.orig</exclude>

    
   
518
              <exclude>**/test/**</exclude>

    
   
519
              <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
491
              <exclude>**/.git/**</exclude>
520
              <exclude>**/.git/**</exclude>
492
              <exclude>**/target/**</exclude>
521
              <exclude>**/target/**</exclude>
493
              <exclude>**/CHANGES.txt</exclude>
522
              <exclude>**/CHANGES.txt</exclude>
494
              <exclude>**/generated/**</exclude>
523
              <exclude>**/generated/**</exclude>
495
              <exclude>**/conf/*</exclude>
524
              <exclude>**/conf/*</exclude>
496
              <exclude>**/*.avpr</exclude>
525
              <exclude>**/*.avpr</exclude>
497
              <exclude>**/*.svg</exclude> <!-- vector graphics --> 
526
              <exclude>**/*.svg</exclude> <!-- vector graphics -->
498
              <exclude>**/*.vm</exclude> <!-- apache doxia generated -->
527
              <exclude>**/*.vm</exclude> <!-- apache doxia generated -->
499
              <exclude>**/control</exclude>
528
              <exclude>**/control</exclude>
500
              <exclude>**/conffile</exclude>
529
              <exclude>**/conffile</exclude>
501
	      <exclude>docs/*</exclude> <!-- auto-gen docs -->
530
	      <exclude>docs/*</exclude> <!-- auto-gen docs -->
502
              <!--It don't like freebsd license-->
531
              <!--It don't like freebsd license-->
[+20] [20] 239 lines
[+20]
742
              <goal>run</goal>
771
              <goal>run</goal>
743
            </goals>
772
            </goals>
744
            <configuration>
773
            <configuration>
745
              <target>
774
              <target>
746
                <echo file="target/compile-proto.sh">
775
                <echo file="target/compile-proto.sh">
747
                    PROTO_DIR=src/main/proto
776
                    UNIX_PROTO_DIR=src/main/proto
748
                    JAVA_DIR=target/generated-sources/java
777
                    JAVA_DIR=target/generated-sources/java
749
                    which cygpath 2> /dev/null
778
                    mkdir -p $JAVA_DIR 2> /dev/null
750
                    if [ $? = 1 ]; then
779
                    if which cygpath 2> /dev/null; then
751
                      IS_WIN=false
780
                      PROTO_DIR=`cygpath --windows $UNIX_PROTO_DIR`

    
   
781
                      JAVA_DIR=`cygpath --windows $JAVA_DIR`
752
                    else
782
                    else
753
                      IS_WIN=true
783
                      PROTO_DIR=$UNIX_PROTO_DIR
754
                      WIN_PROTO_DIR=`cygpath --windows $PROTO_DIR`

   
755
                      WIN_JAVA_DIR=`cygpath --windows $JAVA_DIR`

   
756
                    fi
784
                    fi
757
                    mkdir -p $JAVA_DIR 2> /dev/null
785
                    for PROTO_FILE in $UNIX_PROTO_DIR/*.proto
758
                    for PROTO_FILE in `ls $PROTO_DIR/*.proto 2> /dev/null`

   
759
                    do
786
                    do
760
                        if [ "$IS_WIN" = "true" ]; then

   
761
                          protoc -I$WIN_PROTO_DIR --java_out=$WIN_JAVA_DIR $PROTO_FILE

   
762
                        else

   
763
                          protoc -I$PROTO_DIR --java_out=$JAVA_DIR $PROTO_FILE
787
                      protoc -I$PROTO_DIR --java_out=$JAVA_DIR $PROTO_FILE
764
                        fi

   
765
                    done
788
                    done
766
                </echo>
789
                </echo>
767
                <exec executable="sh" dir="${basedir}" failonerror="true">
790
                <exec executable="sh" dir="${basedir}" failonerror="true">
768
                  <arg line="target/compile-proto.sh"/>
791
                  <arg line="target/compile-proto.sh"/>
769
                </exec>
792
                </exec>
[+20] [20] 255 lines
[+20]
1025
    <surefire.firstPartThreadCount>1</surefire.firstPartThreadCount>
1048
    <surefire.firstPartThreadCount>1</surefire.firstPartThreadCount>
1026
    <surefire.secondPartThreadCount>2</surefire.secondPartThreadCount>
1049
    <surefire.secondPartThreadCount>2</surefire.secondPartThreadCount>
1027

    
   
1050

   
1028
    <surefire.firstPartGroups>org.apache.hadoop.hbase.SmallTests</surefire.firstPartGroups>
1051
    <surefire.firstPartGroups>org.apache.hadoop.hbase.SmallTests</surefire.firstPartGroups>
1029
    <surefire.secondPartGroups>org.apache.hadoop.hbase.MediumTests</surefire.secondPartGroups>
1052
    <surefire.secondPartGroups>org.apache.hadoop.hbase.MediumTests</surefire.secondPartGroups>

    
   
1053
    <test.output.tofile>true</test.output.tofile>
1030
  </properties>
1054
  </properties>
1031

    
   
1055

   
1032
  <!-- Sorted by groups of dependencies then groupId and artifactId -->
1056
  <!-- Sorted by groups of dependencies then groupId and artifactId -->
1033
  <dependencies>
1057
  <dependencies>
1034
    <!--
1058
    <!--
[+20] [20] 800 lines
[+20]
1835
          <name>hadoop.profile</name>
1859
          <name>hadoop.profile</name>
1836
          <value>23</value>
1860
          <value>23</value>
1837
        </property>
1861
        </property>
1838
      </activation>
1862
      </activation>
1839
      <properties>
1863
      <properties>
1840
        <hadoop.version>0.23.1-SNAPSHOT</hadoop.version>
1864
        <hadoop.version>0.23.2-SNAPSHOT</hadoop.version>
1841
      </properties>
1865
      </properties>
1842
      <dependencies>
1866
      <dependencies>
1843
        <dependency>
1867
        <dependency>
1844
          <groupId>org.apache.hadoop</groupId>
1868
          <groupId>org.apache.hadoop</groupId>
1845
          <artifactId>hadoop-client</artifactId>
1869
          <artifactId>hadoop-client</artifactId>
[+20] [20] 34 lines
[+20]
1880
                  </resources>
1904
                  </resources>
1881
                </configuration>
1905
                </configuration>
1882
              </execution>
1906
              </execution>
1883
            </executions>
1907
            </executions>
1884
          </plugin>
1908
          </plugin>

    
   
1909
          <plugin>

    
   
1910
            <artifactId>maven-dependency-plugin</artifactId>

    
   
1911
            <executions>

    
   
1912
              <execution>

    
   
1913
                <id>create-mrapp-generated-classpath</id>

    
   
1914
                <phase>generate-test-resources</phase>

    
   
1915
                <goals>

    
   
1916
                  <goal>build-classpath</goal>

    
   
1917
                </goals>

    
   
1918
                <configuration>

    
   
1919
                  <!-- needed to run the unit test for DS to generate

    
   
1920
                  the required classpath that is required in the env

    
   
1921
                  of the launch container in the mini mr/yarn cluster

    
   
1922
                  -->

    
   
1923
                  <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>

    
   
1924
                </configuration>

    
   
1925
              </execution>

    
   
1926
            </executions>

    
   
1927
          </plugin>
1885
        </plugins>
1928
        </plugins>
1886
      </build>
1929
      </build>
1887
    </profile>
1930
    </profile>
1888

    
   
1931

   

    
   
1932
    <!--

    
   
1933
      profile for building against Hadoop 0.24.0. Activate using:

    
   
1934
       mvn -Dhadoop.profile=24

    
   
1935
    -->

    
   
1936
    <profile>

    
   
1937
      <id>hadoop-0.24</id>

    
   
1938
      <activation>

    
   
1939
        <property>

    
   
1940
          <name>hadoop.profile</name>

    
   
1941
          <value>24</value>

    
   
1942
        </property>

    
   
1943
      </activation>

    
   
1944
      <properties>

    
   
1945
        <hadoop.version>0.24.0-SNAPSHOT</hadoop.version>

    
   
1946
      </properties>

    
   
1947
      <dependencies>

    
   
1948
        <dependency>

    
   
1949
          <groupId>org.apache.hadoop</groupId>

    
   
1950
          <artifactId>hadoop-common</artifactId>

    
   
1951
          <version>${hadoop.version}</version>

    
   
1952
        </dependency>

    
   
1953
        <dependency>

    
   
1954
          <groupId>org.apache.hadoop</groupId>

    
   
1955
          <artifactId>hadoop-annotations</artifactId>

    
   
1956
          <version>${hadoop.version}</version>

    
   
1957
        </dependency>

    
   
1958
        <!-- test deps for hadoop-0.24 profile -->

    
   
1959
        <dependency>

    
   
1960
          <groupId>org.apache.hadoop</groupId>

    
   
1961
          <artifactId>hadoop-minicluster</artifactId>

    
   
1962
          <version>${hadoop.version}</version>

    
   
1963
          <scope>compile</scope>

    
   
1964
        </dependency>

    
   
1965
      </dependencies>

    
   
1966
      <build>

    
   
1967
        <plugins>

    
   
1968
          <plugin>

    
   
1969
            <groupId>org.codehaus.mojo</groupId>

    
   
1970
            <artifactId>build-helper-maven-plugin</artifactId>

    
   
1971
            <executions>

    
   
1972
              <execution>

    
   
1973
                <id>add-test-resource</id>

    
   
1974
                <goals>

    
   
1975
                  <goal>add-test-resource</goal>

    
   
1976
                </goals>

    
   
1977
                <configuration>

    
   
1978
                  <resources>

    
   
1979
                    <resource>

    
   
1980
                      <directory>src/test/resources</directory>

    
   
1981
                      <includes>

    
   
1982
                        <include>hbase-site.xml</include>

    
   
1983
                      </includes>

    
   
1984
                    </resource>

    
   
1985
                  </resources>

    
   
1986
                </configuration>

    
   
1987
              </execution>

    
   
1988
            </executions>

    
   
1989
          </plugin>

    
   
1990
          <plugin>

    
   
1991
            <artifactId>maven-dependency-plugin</artifactId>

    
   
1992
            <executions>

    
   
1993
              <execution>

    
   
1994
                <id>create-mrapp-generated-classpath</id>

    
   
1995
                <phase>generate-test-resources</phase>

    
   
1996
                <goals>

    
   
1997
                  <goal>build-classpath</goal>

    
   
1998
                </goals>

    
   
1999
                <configuration>

    
   
2000
                  <!-- needed to run the unit test for DS to generate

    
   
2001
                  the required classpath that is required in the env

    
   
2002
                  of the launch container in the mini mr/yarn cluster

    
   
2003
                  -->

    
   
2004
                  <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>

    
   
2005
                </configuration>

    
   
2006
              </execution>

    
   
2007
            </executions>

    
   
2008
          </plugin>

    
   
2009
        </plugins>

    
   
2010
      </build>

    
   
2011
    </profile>

    
   
2012

   

    
   
2013

   
1889
    <!-- profiles for the tests
2014
    <!-- profiles for the tests
1890
         See as well the properties of the project for the values
2015
         See as well the properties of the project for the values
1891
         when no profile is active.     -->
2016
         when no profile is active.     -->
1892
    <profile> <!-- Use it to launch the tests without parallelisation -->
2017
    <profile> <!-- Use it to launch the tests without parallelisation -->
1893
      <id>nonParallelTests</id>
2018
      <id>nonParallelTests</id>
[+20] [20] 274 lines
src/main/proto/HRegionProtocol.proto
Diff Revision 1 Diff Revision 5 - File Reverted
 
src/main/proto/RegionAdmin.proto
Diff Revision 1 Diff Revision 5
 
src/main/proto/RegionClient.proto
Diff Revision 1 Diff Revision 5
 
src/main/proto/hbase.proto
Diff Revision 1 Diff Revision 5
 
  1. pom.xml: Loading...
  2. src/main/proto/HRegionProtocol.proto: Loading...
  3. src/main/proto/RegionAdmin.proto: Loading...
  4. src/main/proto/RegionClient.proto: Loading...
  5. src/main/proto/hbase.proto: Loading...