You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Madhan Neethiraj (Jira)" <ji...@apache.org> on 2025/06/18 03:13:00 UTC
[jira] [Updated] (ATLAS-5056) Entity audit should not be created for instances of internal entity-types
[ https://issues.apache.org/jira/browse/ATLAS-5056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Madhan Neethiraj updated ATLAS-5056:
------------------------------------
Description:
Atlas uses entity framework to handle persistence of internal objects (subtypes of entity-type __internal) like:
# __AtlasMetricsStat
# __AtlasUserSavedSearch
# __AtlasAsyncImportRequest
# __AtlasAuditEntry
# __AtlasUserProfile
# __ExportImportAuditEntry
# AtlasGlossaryCategory
# AtlasGlossary
# AtlasGlossaryTerm
Entity audits for above entity-type instances are not used anywhere, and hence should not be generated to eliminate unnecessary storage and processing.
Here is the stack showing creation of entity audit entries for metric stats:
{noformat}
at org.apache.atlas.repository.audit.EntityAuditListenerV2.onEntitiesAdded(EntityAuditListenerV2.java:105)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyV2Listeners(AtlasEntityChangeNotifier.java:470)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyListeners(AtlasEntityChangeNotifier.java:418)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.onEntitiesMutated(AtlasEntityChangeNotifier.java:111)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:1146)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:327)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$FastClassBySpringCGLIB$$6861dca9.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.apache.atlas.GraphTransactionInterceptor.invoke(GraphTransactionInterceptor.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$EnhancerBySpringCGLIB$$5f0a1ca3.createOrUpdate(<generated>)
at org.apache.atlas.repository.ogm.DataAccess.saveNoLoad(DataAccess.java:79)
at org.apache.atlas.repository.ogm.DataAccess.save(DataAccess.java:61)
at org.apache.atlas.services.MetricsService.saveMetricsStat(MetricsService.java:238)
at org.apache.atlas.services.MetricsService$$FastClassBySpringCGLIB$$2f0577e9.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at org.apache.atlas.services.MetricsService$$EnhancerBySpringCGLIB$$836ff663.saveMetricsStat(<generated>)
at org.apache.atlas.web.resources.AdminResource.saveMetrics(AdminResource.java:1212)
at org.apache.atlas.web.resources.AdminResource.scheduleSaveAndDeleteMetrics(AdminResource.java:439) {noformat}
was:
Atlas uses entity framework to handle persistence of internal objects (subtypes of entity-type __internal) like:
#
__AtlasMetricsStat
#
__AtlasUserSavedSearch
#
__AtlasAsyncImportRequest
# __AtlasAuditEntry
#
__AtlasUserProfile
# __ExportImportAuditEntry
#
AtlasGlossaryCategory
#
AtlasGlossary
#
AtlasGlossaryTerm
Entity audits for above entity-type instances are not used anywhere, and hence should not be generated to eliminate unnecessary storage and processing.
Here is the stack showing creation of entity audit entries for metric stats:
{noformat}
at org.apache.atlas.repository.audit.EntityAuditListenerV2.onEntitiesAdded(EntityAuditListenerV2.java:105)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyV2Listeners(AtlasEntityChangeNotifier.java:470)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyListeners(AtlasEntityChangeNotifier.java:418)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.onEntitiesMutated(AtlasEntityChangeNotifier.java:111)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:1146)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:327)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$FastClassBySpringCGLIB$$6861dca9.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.apache.atlas.GraphTransactionInterceptor.invoke(GraphTransactionInterceptor.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$EnhancerBySpringCGLIB$$5f0a1ca3.createOrUpdate(<generated>)
at org.apache.atlas.repository.ogm.DataAccess.saveNoLoad(DataAccess.java:79)
at org.apache.atlas.repository.ogm.DataAccess.save(DataAccess.java:61)
at org.apache.atlas.services.MetricsService.saveMetricsStat(MetricsService.java:238)
at org.apache.atlas.services.MetricsService$$FastClassBySpringCGLIB$$2f0577e9.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at org.apache.atlas.services.MetricsService$$EnhancerBySpringCGLIB$$836ff663.saveMetricsStat(<generated>)
at org.apache.atlas.web.resources.AdminResource.saveMetrics(AdminResource.java:1212)
at org.apache.atlas.web.resources.AdminResource.scheduleSaveAndDeleteMetrics(AdminResource.java:439) {noformat}
> Entity audit should not be created for instances of internal entity-types
> -------------------------------------------------------------------------
>
> Key: ATLAS-5056
> URL: https://issues.apache.org/jira/browse/ATLAS-5056
> Project: Atlas
> Issue Type: Improvement
> Components: atlas-core
> Reporter: Madhan Neethiraj
> Priority: Major
>
> Atlas uses entity framework to handle persistence of internal objects (subtypes of entity-type __internal) like:
> # __AtlasMetricsStat
> # __AtlasUserSavedSearch
> # __AtlasAsyncImportRequest
> # __AtlasAuditEntry
> # __AtlasUserProfile
> # __ExportImportAuditEntry
> # AtlasGlossaryCategory
> # AtlasGlossary
> # AtlasGlossaryTerm
>
> Entity audits for above entity-type instances are not used anywhere, and hence should not be generated to eliminate unnecessary storage and processing.
>
> Here is the stack showing creation of entity audit entries for metric stats:
> {noformat}
> at org.apache.atlas.repository.audit.EntityAuditListenerV2.onEntitiesAdded(EntityAuditListenerV2.java:105)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyV2Listeners(AtlasEntityChangeNotifier.java:470)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.notifyListeners(AtlasEntityChangeNotifier.java:418)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityChangeNotifier.onEntitiesMutated(AtlasEntityChangeNotifier.java:111)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:1146)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2.createOrUpdate(AtlasEntityStoreV2.java:327)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$FastClassBySpringCGLIB$$6861dca9.invoke(<generated>)
> at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
> at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
> at org.apache.atlas.GraphTransactionInterceptor.invoke(GraphTransactionInterceptor.java:190)
> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
> at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
> at org.apache.atlas.repository.store.graph.v2.AtlasEntityStoreV2$$EnhancerBySpringCGLIB$$5f0a1ca3.createOrUpdate(<generated>)
> at org.apache.atlas.repository.ogm.DataAccess.saveNoLoad(DataAccess.java:79)
> at org.apache.atlas.repository.ogm.DataAccess.save(DataAccess.java:61)
> at org.apache.atlas.services.MetricsService.saveMetricsStat(MetricsService.java:238)
> at org.apache.atlas.services.MetricsService$$FastClassBySpringCGLIB$$2f0577e9.invoke(<generated>)
> at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
> at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
> at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
> at org.apache.atlas.services.MetricsService$$EnhancerBySpringCGLIB$$836ff663.saveMetricsStat(<generated>)
> at org.apache.atlas.web.resources.AdminResource.saveMetrics(AdminResource.java:1212)
> at org.apache.atlas.web.resources.AdminResource.scheduleSaveAndDeleteMetrics(AdminResource.java:439) {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)