Skip to content

Commit 3da8038

Browse files
rakhiagrRakhi Agrawal
and
Rakhi Agrawal
authored
Adding shadow write to BaseAspectRoutingResource (#536)
Co-authored-by: Rakhi Agrawal <rakagrawal@linkedin.com>
1 parent b3e89c0 commit 3da8038

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

restli-resources/src/main/java/com/linkedin/metadata/restli/BaseAspectRoutingResource.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.linkedin.data.template.StringArray;
88
import com.linkedin.data.template.UnionTemplate;
99
import com.linkedin.metadata.dao.AspectKey;
10+
import com.linkedin.metadata.dao.BaseLocalDAO;
1011
import com.linkedin.metadata.dao.exception.ModelValidationException;
1112
import com.linkedin.metadata.dao.ingestion.AspectCallbackRegistry;
1213
import com.linkedin.metadata.dao.ingestion.AspectCallbackResponse;
@@ -422,6 +423,7 @@ private void ingestAspect(Set<Class<? extends RecordTemplate>> aspectsToIgnore,
422423
IngestionTrackingContext trackingContext, IngestionParams ingestionParams, AuditStamp auditStamp,
423424
boolean skipExtraProcessing) {
424425
if (!aspectsToIgnore.contains(aspect.getClass())) {
426+
BaseLocalDAO<INTERNAL_ASPECT_UNION, URN> shadowLocalDao = getShadowLocalDAO();
425427
if (getAspectRoutingGmsClientManager().hasRegistered(aspect.getClass())) {
426428
try {
427429
// get the updated aspect if there is a preupdate routing lambda registered
@@ -448,6 +450,10 @@ private void ingestAspect(Set<Class<? extends RecordTemplate>> aspectsToIgnore,
448450
// the value of param skipExtraProcessing since any pre-update lambdas would have already been executed
449451
// in the code above.
450452
getLocalDAO().rawAdd((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
453+
// if there is a shadow local DAO, also call rawAdd on it to write it to the shadow db
454+
if (shadowLocalDao != null) {
455+
shadowLocalDao.rawAdd((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
456+
}
451457
} catch (Exception exception) {
452458
log.error("Couldn't ingest routing aspect {} for {}", aspect.getClass().getSimpleName(), urn, exception);
453459
throw exception;
@@ -456,8 +462,14 @@ private void ingestAspect(Set<Class<? extends RecordTemplate>> aspectsToIgnore,
456462
if (skipExtraProcessing) {
457463
// call a simple version of BaseLocalDAO::add which skips pre-update lambdas.
458464
getLocalDAO().rawAdd((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
465+
if (shadowLocalDao != null) {
466+
shadowLocalDao.rawAdd((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
467+
}
459468
} else {
460469
getLocalDAO().add((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
470+
if (shadowLocalDao != null) {
471+
shadowLocalDao.rawAdd((URN) urn, aspect, auditStamp, trackingContext, ingestionParams);
472+
}
461473
}
462474
}
463475
}

0 commit comments

Comments
 (0)