[
https://issues.apache.org/jira/browse/ATLAS-5095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18037713#comment-18037713
]
Aditya Gupta commented on ATLAS-5095:
-------------------------------------
Hi! [~yhaya]
Can you give me an example/use case where there are many shell entities in a
particular event?
> Cache shell entity after creation to prevent from cache miss
> ------------------------------------------------------------
>
> Key: ATLAS-5095
> URL: https://issues.apache.org/jira/browse/ATLAS-5095
> Project: Atlas
> Issue Type: Improvement
> Reporter: Yushi Hayasaka
> Assignee: Aditya Gupta
> Priority: Minor
>
> Sometimes Atlas attempts to load an entity from the cache (e.g., to notify
> listeners of processed entities after `createOrUpdate()`).
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/graph/FullTextMapperV2.java#L176]
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityChangeNotifier.java#L595]
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityChangeNotifier.java#L465]
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityChangeNotifier.java#L418]
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityChangeNotifier.java#L111-L115]
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java#L1145-L1146]
> If the specified entity is not found in the cache, Atlas falls back to
> retrieving it through `EntityGraphRetriever#toAtlasEntity`, which is slow
> path compared to cache.
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/graph/FullTextMapperV2.java#L181]
> Currently, we observe that Atlas tries to retrieve shell entities from
> EntityGraphRetriever instead of cache.
> When there are many shell entities in the event, it increases the operation
> time.
> As introduced in ATLAS-3405, if the non-existing entities are included in the
> event, Atlas creates the shell entity.
> In my understanding (please correct me if wrong), the shell entity should
> only contain some properties which are specified in createShellEntityVertex.
> [https://github.com/apache/atlas/blob/18d7f9dccf5658988d32e387339948286810f0a8/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java#L291-L312]
> So, I guess it is safe to cache after creation (e.g. right after
> `createShellEntityVertex`), and it leads to improve the performance by
> reducing calling slow path.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)