Skip to content

Commit 056e8fb

Browse files
committed
Revert "HBASE-26473 Introduce db.hbase.container_operations span attribute"
This reverts commit 7d8dc35.
1 parent f278a4c commit 056e8fb

4 files changed

Lines changed: 27 additions & 140 deletions

File tree

hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncTableImpl.java

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,7 @@ public CompletableFuture<Boolean> thenPut(Put put) {
348348
validatePut(put, conn.connConf.getMaxKeyValueSize());
349349
preCheck();
350350
final Supplier<Span> supplier = newTableOperationSpanBuilder()
351-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
352-
.setContainerOperations(put);
351+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
353352
return tracedFuture(
354353
() -> RawAsyncTableImpl.this.<Boolean> newCaller(row, put.getPriority(), rpcTimeoutNs)
355354
.action((controller, loc, stub) -> RawAsyncTableImpl.mutate(controller, loc, stub, put,
@@ -364,8 +363,7 @@ public CompletableFuture<Boolean> thenPut(Put put) {
364363
public CompletableFuture<Boolean> thenDelete(Delete delete) {
365364
preCheck();
366365
final Supplier<Span> supplier = newTableOperationSpanBuilder()
367-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
368-
.setContainerOperations(delete);
366+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
369367
return tracedFuture(
370368
() -> RawAsyncTableImpl.this.<Boolean> newCaller(row, delete.getPriority(), rpcTimeoutNs)
371369
.action((controller, loc, stub) -> RawAsyncTableImpl.mutate(controller, loc, stub, delete,
@@ -381,8 +379,7 @@ public CompletableFuture<Boolean> thenMutate(RowMutations mutations) {
381379
preCheck();
382380
validatePutsInRowMutations(mutations, conn.connConf.getMaxKeyValueSize());
383381
final Supplier<Span> supplier = newTableOperationSpanBuilder()
384-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
385-
.setContainerOperations(mutations);
382+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
386383
return tracedFuture(
387384
() -> RawAsyncTableImpl.this
388385
.<Boolean> newCaller(row, mutations.getMaxPriority(), rpcTimeoutNs)
@@ -425,8 +422,7 @@ public CheckAndMutateWithFilterBuilder timeRange(TimeRange timeRange) {
425422
public CompletableFuture<Boolean> thenPut(Put put) {
426423
validatePut(put, conn.connConf.getMaxKeyValueSize());
427424
final Supplier<Span> supplier = newTableOperationSpanBuilder()
428-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
429-
.setContainerOperations(put);
425+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
430426
return tracedFuture(
431427
() -> RawAsyncTableImpl.this.<Boolean> newCaller(row, put.getPriority(), rpcTimeoutNs)
432428
.action((controller, loc, stub) -> RawAsyncTableImpl.mutate(controller, loc,
@@ -441,8 +437,7 @@ public CompletableFuture<Boolean> thenPut(Put put) {
441437
@Override
442438
public CompletableFuture<Boolean> thenDelete(Delete delete) {
443439
final Supplier<Span> supplier = newTableOperationSpanBuilder()
444-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
445-
.setContainerOperations(delete);
440+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
446441
return tracedFuture(
447442
() -> RawAsyncTableImpl.this.<Boolean> newCaller(row, delete.getPriority(), rpcTimeoutNs)
448443
.action((controller, loc, stub) -> RawAsyncTableImpl.mutate(controller, loc, stub, delete,
@@ -457,8 +452,7 @@ public CompletableFuture<Boolean> thenDelete(Delete delete) {
457452
public CompletableFuture<Boolean> thenMutate(RowMutations mutations) {
458453
validatePutsInRowMutations(mutations, conn.connConf.getMaxKeyValueSize());
459454
final Supplier<Span> supplier = newTableOperationSpanBuilder()
460-
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE)
461-
.setContainerOperations(mutations);
455+
.setOperation(HBaseSemanticAttributes.Operation.CHECK_AND_MUTATE);
462456
return tracedFuture(
463457
() -> RawAsyncTableImpl.this
464458
.<Boolean> newCaller(row, mutations.getMaxPriority(), rpcTimeoutNs)
@@ -480,8 +474,7 @@ public CheckAndMutateWithFilterBuilder checkAndMutate(byte[] row, Filter filter)
480474
@Override
481475
public CompletableFuture<CheckAndMutateResult> checkAndMutate(CheckAndMutate checkAndMutate) {
482476
final Supplier<Span> supplier = newTableOperationSpanBuilder()
483-
.setOperation(checkAndMutate)
484-
.setContainerOperations(checkAndMutate.getAction());
477+
.setOperation(checkAndMutate);
485478
return tracedFuture(() -> {
486479
if (checkAndMutate.getAction() instanceof Put ||
487480
checkAndMutate.getAction() instanceof Delete ||
@@ -534,8 +527,7 @@ public CompletableFuture<CheckAndMutateResult> checkAndMutate(CheckAndMutate che
534527
public List<CompletableFuture<CheckAndMutateResult>>
535528
checkAndMutate(List<CheckAndMutate> checkAndMutates) {
536529
final Supplier<Span> supplier = newTableOperationSpanBuilder()
537-
.setOperation(checkAndMutates)
538-
.setContainerOperations(checkAndMutates);
530+
.setOperation(checkAndMutates);
539531
return tracedFutures(
540532
() -> batch(checkAndMutates, rpcTimeoutNs).stream()
541533
.map(f -> f.thenApply(r -> (CheckAndMutateResult) r)).collect(toList()),
@@ -591,8 +583,7 @@ public CompletableFuture<Result> mutateRow(RowMutations mutations) {
591583
long nonceGroup = conn.getNonceGenerator().getNonceGroup();
592584
long nonce = conn.getNonceGenerator().newNonce();
593585
final Supplier<Span> supplier = newTableOperationSpanBuilder()
594-
.setOperation(mutations)
595-
.setContainerOperations(mutations);
586+
.setOperation(mutations);
596587
return tracedFuture(
597588
() -> this
598589
.<Result> newCaller(mutations.getRow(), mutations.getMaxPriority(), writeRpcTimeoutNs)
@@ -665,32 +656,28 @@ public void onComplete() {
665656
@Override
666657
public List<CompletableFuture<Result>> get(List<Get> gets) {
667658
final Supplier<Span> supplier = newTableOperationSpanBuilder()
668-
.setOperation(gets)
669-
.setContainerOperations(HBaseSemanticAttributes.Operation.GET);
659+
.setOperation(gets);
670660
return tracedFutures(() -> batch(gets, readRpcTimeoutNs), supplier);
671661
}
672662

673663
@Override
674664
public List<CompletableFuture<Void>> put(List<Put> puts) {
675665
final Supplier<Span> supplier = newTableOperationSpanBuilder()
676-
.setOperation(puts)
677-
.setContainerOperations(HBaseSemanticAttributes.Operation.PUT);
666+
.setOperation(puts);
678667
return tracedFutures(() -> voidMutate(puts), supplier);
679668
}
680669

681670
@Override
682671
public List<CompletableFuture<Void>> delete(List<Delete> deletes) {
683672
final Supplier<Span> supplier = newTableOperationSpanBuilder()
684-
.setOperation(deletes)
685-
.setContainerOperations(HBaseSemanticAttributes.Operation.DELETE);
673+
.setOperation(deletes);
686674
return tracedFutures(() -> voidMutate(deletes), supplier);
687675
}
688676

689677
@Override
690678
public <T> List<CompletableFuture<T>> batch(List<? extends Row> actions) {
691679
final Supplier<Span> supplier = newTableOperationSpanBuilder()
692-
.setOperation(actions)
693-
.setContainerOperations(actions);
680+
.setOperation(actions);
694681
return tracedFutures(() -> batch(actions, rpcTimeoutNs), supplier);
695682
}
696683

hbase-client/src/main/java/org/apache/hadoop/hbase/client/trace/TableOperationSpanBuilder.java

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,15 @@
1818

1919
package org.apache.hadoop.hbase.client.trace;
2020

21-
import static org.apache.hadoop.hbase.trace.HBaseSemanticAttributes.CONTAINER_DB_OPERATIONS_KEY;
2221
import static org.apache.hadoop.hbase.trace.HBaseSemanticAttributes.DB_OPERATION;
2322
import io.opentelemetry.api.common.AttributeKey;
2423
import io.opentelemetry.api.trace.Span;
2524
import io.opentelemetry.api.trace.SpanBuilder;
2625
import io.opentelemetry.api.trace.SpanKind;
27-
import java.util.Arrays;
2826
import java.util.Collection;
2927
import java.util.HashMap;
30-
import java.util.HashSet;
31-
import java.util.List;
3228
import java.util.Map;
33-
import java.util.Set;
3429
import java.util.function.Supplier;
35-
import java.util.stream.Collectors;
36-
import java.util.stream.Stream;
3730
import org.apache.hadoop.hbase.TableName;
3831
import org.apache.hadoop.hbase.client.Append;
3932
import org.apache.hadoop.hbase.client.AsyncConnectionImpl;
@@ -92,72 +85,6 @@ public TableOperationSpanBuilder setOperation(final Operation operation) {
9285
return this;
9386
}
9487

95-
// `setContainerOperations` perform a recursive descent expansion of all the operations
96-
// contained within the provided "batch" object.
97-
98-
public TableOperationSpanBuilder setContainerOperations(final RowMutations mutations) {
99-
final Operation[] ops = mutations.getMutations()
100-
.stream()
101-
.flatMap(row -> Stream.concat(Stream.of(valueFrom(row)), unpackRowOperations(row).stream()))
102-
.toArray(Operation[]::new);
103-
return setContainerOperations(ops);
104-
}
105-
106-
public TableOperationSpanBuilder setContainerOperations(final Row row) {
107-
final Operation[] ops =
108-
Stream.concat(Stream.of(valueFrom(row)), unpackRowOperations(row).stream())
109-
.toArray(Operation[]::new);
110-
return setContainerOperations(ops);
111-
}
112-
113-
public TableOperationSpanBuilder setContainerOperations(
114-
final Collection<? extends Row> operations
115-
) {
116-
final Operation[] ops = operations.stream()
117-
.flatMap(row -> Stream.concat(Stream.of(valueFrom(row)), unpackRowOperations(row).stream()))
118-
.toArray(Operation[]::new);
119-
return setContainerOperations(ops);
120-
}
121-
122-
private static Set<Operation> unpackRowOperations(final Row row) {
123-
final Set<Operation> ops = new HashSet<>();
124-
if (row instanceof CheckAndMutate) {
125-
final CheckAndMutate cam = (CheckAndMutate) row;
126-
ops.addAll(unpackRowOperations(cam));
127-
}
128-
if (row instanceof RowMutations) {
129-
final RowMutations mutations = (RowMutations) row;
130-
ops.addAll(unpackRowOperations(mutations));
131-
}
132-
return ops;
133-
}
134-
135-
private static Set<Operation> unpackRowOperations(final CheckAndMutate cam) {
136-
final Set<Operation> ops = new HashSet<>();
137-
final Operation op = valueFrom(cam.getAction());
138-
switch (op) {
139-
case BATCH:
140-
case CHECK_AND_MUTATE:
141-
ops.addAll(unpackRowOperations(cam.getAction()));
142-
break;
143-
default:
144-
ops.add(op);
145-
}
146-
return ops;
147-
}
148-
149-
public TableOperationSpanBuilder setContainerOperations(
150-
final Operation... operations
151-
) {
152-
final List<String> ops = Arrays.stream(operations)
153-
.map(op -> op == null ? unknown : op.name())
154-
.sorted()
155-
.distinct()
156-
.collect(Collectors.toList());
157-
attributes.put(CONTAINER_DB_OPERATIONS_KEY, ops);
158-
return this;
159-
}
160-
16188
public TableOperationSpanBuilder setTableName(final TableName tableName) {
16289
this.tableName = tableName;
16390
TableSpanBuilder.populateTableNameAttributes(attributes, tableName);

hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableTracing.java

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
*/
1818
package org.apache.hadoop.hbase.client;
1919

20-
import static org.apache.hadoop.hbase.client.trace.hamcrest.AttributesMatchers.containsEntryWithStringValuesOf;
21-
import static org.apache.hadoop.hbase.client.trace.hamcrest.SpanDataMatchers.hasAttributes;
2220
import static org.apache.hadoop.hbase.client.trace.hamcrest.SpanDataMatchers.hasEnded;
2321
import static org.apache.hadoop.hbase.client.trace.hamcrest.SpanDataMatchers.hasKind;
2422
import static org.apache.hadoop.hbase.client.trace.hamcrest.SpanDataMatchers.hasName;
@@ -335,19 +333,15 @@ public void testCheckAndMutateList() {
335333
.ifEquals(Bytes.toBytes("cf"), Bytes.toBytes("cq"), Bytes.toBytes("v"))
336334
.build(new Delete(Bytes.toBytes(0))))).toArray(new CompletableFuture[0]))
337335
.join();
338-
assertTrace("BATCH", hasAttributes(
339-
containsEntryWithStringValuesOf(
340-
"db.hbase.container_operations", "CHECK_AND_MUTATE", "DELETE")));
336+
assertTrace("BATCH");
341337
}
342338

343339
@Test
344340
public void testCheckAndMutateAll() {
345341
table.checkAndMutateAll(Arrays.asList(CheckAndMutate.newBuilder(Bytes.toBytes(0))
346342
.ifEquals(Bytes.toBytes("cf"), Bytes.toBytes("cq"), Bytes.toBytes("v"))
347343
.build(new Delete(Bytes.toBytes(0))))).join();
348-
assertTrace("BATCH", hasAttributes(
349-
containsEntryWithStringValuesOf(
350-
"db.hbase.container_operations", "CHECK_AND_MUTATE", "DELETE")));
344+
assertTrace("BATCH");
351345
}
352346

353347
private void testCheckAndMutateBuilder(Row op) {
@@ -433,13 +427,8 @@ public void testCheckAndMutateWithFilterBuilderThenMutations() throws IOExceptio
433427

434428
@Test
435429
public void testMutateRow() throws IOException {
436-
final RowMutations mutations = new RowMutations(Bytes.toBytes(0))
437-
.add(new Put(Bytes.toBytes(0))
438-
.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("cq"), Bytes.toBytes("v")))
439-
.add(new Delete(Bytes.toBytes(0)));
440-
table.mutateRow(mutations).join();
441-
assertTrace("BATCH", hasAttributes(
442-
containsEntryWithStringValuesOf("db.hbase.container_operations", "DELETE", "PUT")));
430+
table.mutateRow(new RowMutations(Bytes.toBytes(0)).add(new Delete(Bytes.toBytes(0))));
431+
assertTrace("BATCH");
443432
}
444433

445434
@Test
@@ -454,31 +443,27 @@ public void testExistsList() {
454443
.allOf(
455444
table.exists(Arrays.asList(new Get(Bytes.toBytes(0)))).toArray(new CompletableFuture[0]))
456445
.join();
457-
assertTrace("BATCH", hasAttributes(
458-
containsEntryWithStringValuesOf("db.hbase.container_operations", "GET")));
446+
assertTrace("BATCH");
459447
}
460448

461449
@Test
462450
public void testExistsAll() {
463451
table.existsAll(Arrays.asList(new Get(Bytes.toBytes(0)))).join();
464-
assertTrace("BATCH", hasAttributes(
465-
containsEntryWithStringValuesOf("db.hbase.container_operations", "GET")));
452+
assertTrace("BATCH");
466453
}
467454

468455
@Test
469456
public void testGetList() {
470457
CompletableFuture
471458
.allOf(table.get(Arrays.asList(new Get(Bytes.toBytes(0)))).toArray(new CompletableFuture[0]))
472459
.join();
473-
assertTrace("BATCH", hasAttributes(
474-
containsEntryWithStringValuesOf("db.hbase.container_operations", "GET")));
460+
assertTrace("BATCH");
475461
}
476462

477463
@Test
478464
public void testGetAll() {
479465
table.getAll(Arrays.asList(new Get(Bytes.toBytes(0)))).join();
480-
assertTrace("BATCH", hasAttributes(
481-
containsEntryWithStringValuesOf("db.hbase.container_operations", "GET")));
466+
assertTrace("BATCH");
482467
}
483468

484469
@Test
@@ -487,16 +472,14 @@ public void testPutList() {
487472
.allOf(table.put(Arrays.asList(new Put(Bytes.toBytes(0)).addColumn(Bytes.toBytes("cf"),
488473
Bytes.toBytes("cq"), Bytes.toBytes("v")))).toArray(new CompletableFuture[0]))
489474
.join();
490-
assertTrace("BATCH", hasAttributes(
491-
containsEntryWithStringValuesOf("db.hbase.container_operations", "PUT")));
475+
assertTrace("BATCH");
492476
}
493477

494478
@Test
495479
public void testPutAll() {
496480
table.putAll(Arrays.asList(new Put(Bytes.toBytes(0)).addColumn(Bytes.toBytes("cf"),
497481
Bytes.toBytes("cq"), Bytes.toBytes("v")))).join();
498-
assertTrace("BATCH", hasAttributes(
499-
containsEntryWithStringValuesOf("db.hbase.container_operations", "PUT")));
482+
assertTrace("BATCH");
500483
}
501484

502485
@Test
@@ -505,15 +488,13 @@ public void testDeleteList() {
505488
.allOf(
506489
table.delete(Arrays.asList(new Delete(Bytes.toBytes(0)))).toArray(new CompletableFuture[0]))
507490
.join();
508-
assertTrace("BATCH", hasAttributes(
509-
containsEntryWithStringValuesOf("db.hbase.container_operations", "DELETE")));
491+
assertTrace("BATCH");
510492
}
511493

512494
@Test
513495
public void testDeleteAll() {
514496
table.deleteAll(Arrays.asList(new Delete(Bytes.toBytes(0)))).join();
515-
assertTrace("BATCH", hasAttributes(
516-
containsEntryWithStringValuesOf("db.hbase.container_operations", "DELETE")));
497+
assertTrace("BATCH");
517498
}
518499

519500
@Test
@@ -522,14 +503,12 @@ public void testBatch() {
522503
.allOf(
523504
table.batch(Arrays.asList(new Delete(Bytes.toBytes(0)))).toArray(new CompletableFuture[0]))
524505
.join();
525-
assertTrace("BATCH", hasAttributes(
526-
containsEntryWithStringValuesOf("db.hbase.container_operations", "DELETE")));
506+
assertTrace("BATCH");
527507
}
528508

529509
@Test
530510
public void testBatchAll() {
531511
table.batchAll(Arrays.asList(new Delete(Bytes.toBytes(0)))).join();
532-
assertTrace("BATCH", hasAttributes(
533-
containsEntryWithStringValuesOf("db.hbase.container_operations", "DELETE")));
512+
assertTrace("BATCH");
534513
}
535514
}

hbase-common/src/main/java/org/apache/hadoop/hbase/trace/HBaseSemanticAttributes.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,6 @@ public final class HBaseSemanticAttributes {
3636
public static final AttributeKey<String> DB_NAME = SemanticAttributes.DB_NAME;
3737
public static final AttributeKey<String> DB_OPERATION = SemanticAttributes.DB_OPERATION;
3838
public static final AttributeKey<String> TABLE_KEY = AttributeKey.stringKey("db.hbase.table");
39-
/**
40-
* For operations that themselves ship one or more operations, such as
41-
* {@link Operation#BATCH} and {@link Operation#CHECK_AND_MUTATE}.
42-
*/
43-
public static final AttributeKey<List<String>> CONTAINER_DB_OPERATIONS_KEY =
44-
AttributeKey.stringArrayKey("db.hbase.container_operations");
4539
public static final AttributeKey<List<String>> REGION_NAMES_KEY =
4640
AttributeKey.stringArrayKey("db.hbase.regions");
4741
public static final AttributeKey<String> RPC_SERVICE_KEY =

0 commit comments

Comments
 (0)