DomGarguilo commented on code in PR #3578:
URL: https://github.com/apache/accumulo/pull/3578#discussion_r1261443103


##########
core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java:
##########
@@ -305,8 +305,23 @@ void compact(String tableName, Text start, Text end, 
List<IteratorSetting> itera
    * </ul>
    *
    * <p>
-   * If two threads call this method concurrently for the same table and set 
one or more of the
-   * above then one thread will fail.
+   * Starting with Accumulo 4.0 concurrent compactions can be initiated on a 
table with different
+   * configuration. Prior to 4.0 if this were done, then only one would work 
and the others would
+   * throw an exception. When concurrent compactions with different 
configuration run each tablet
+   * will be compacted once for each user initiated compaction in some 
arbitrary order. For example
+   * consider the following situation.
+   *
+   * <OL>
+   * <LI>Table A has three tablets Tab1, Tab2, Tab3</LI>
+   * <LI>This method is called to initiate a compaction on Tablets Tab1 and 
Tab2 with iterators
+   * I1</LI>
+   * <LI>This method is called to initiate a compaction on Tablets Tab2 and 
Tab3 with iterators
+   * I2</LI>
+   * <LI>Tablet Tab1 will compact with iterator I1</LI>
+   * <LI>Two compactions will happen for tablet Tab2. It will either compact 
with iterators I1 and
+   * then I2 OR it will compact with iterators I2 and then I1.</LI>
+   * <LI>Tablet Tab3 will compact with iterator I2</LI>
+   * </OL>

Review Comment:
   ```suggestion
      * Starting with Accumulo, 4.0 concurrent compactions can be initiated on 
a table with different
      * configuration. Prior to 4.0, if this were done, then only one 
compaction would work and the
      * others would throw an exception. When concurrent compactions with 
different configuration run,
      * each tablet will be compacted once for each user initiated compaction 
in some arbitrary order.
      * For example consider the following situation.
      *
      * <ol>
      * <li>Table A has three tablets Tab1, Tab2, Tab3</li>
      * <li>This method is called to initiate a compaction on Tablets Tab1 and 
Tab2 with iterator
      * I1</li>
      * <li>This method is called to initiate a compaction on Tablets Tab2 and 
Tab3 with iterator
      * I2</li>
      * <li>Tablet Tab1 will compact with iterator I1</li>
      * <li>Two compactions will happen for tablet Tab2. It will either compact 
with iterator I1 and
      * then I2 OR it will compact with iterator I2 and then I1.</li>
      * <li>Tablet Tab3 will compact with iterator I2</li>
      * </ol>
   ```
   Made the tags lowercase and tried to improve the wording a tiny bit in 
places. Also formatted after changing.



##########
core/src/main/java/org/apache/accumulo/core/metadata/schema/MetadataSchema.java:
##########
@@ -378,6 +377,15 @@ public static class ExternalCompactionColumnFamily {
       public static final Text NAME = new Text(STR_NAME);
     }
 
+    /**
+     * This is family is used to track which tablets were compacted by a user 
compaction. The column

Review Comment:
   ```suggestion
        * This family is used to track which tablets were compacted by a user 
compaction. The column
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to