Anshul Mehta created ATLAS-4358:
-----------------------------------

             Summary: Mapping for some internal Atlas attributes ( like 
__patch.type , __timestamp, etc) does not exist in Elasticsearch
                 Key: ATLAS-4358
                 URL: https://issues.apache.org/jira/browse/ATLAS-4358
             Project: Atlas
          Issue Type: Bug
            Reporter: Anshul Mehta


*Impact of the problem -*
 * Atlas pod taking much longer to become active and this time keep increasing 
as the assets increase. This basically means a downtime on every Atlas release.

 * Not able to filter via basic search on attributes like {{__timestamp}} , 
{{__modificationTimestamp}} , {{createdBy}} and {{modifiedBy}} .

*Issue -*
So just before creating the mapping in the mixed index (ES index) Atlas creates 
something called {{propertyKey}} and this propertyKey is used to create the 
mapping. The code is written in a way that checks if propertyKey for the 
current property is null or not. If it is null it creates the propertyKey and 
then adds it to mixed index. If it is not Null it assumes that the property has 
already been added to the index and so skips adding it.

Now in our case when Atlas checked the propertyKey it was not null (which 
should not have been the case) therefore Atlas skipped adding it to the mixed 
index and so these properties never got added to the mixed index. This 
basically meant propertyKey for these properties were getting created somewhere 
else. We looked into the entire codebase but could not find the use of 
makePropertyKey method ( which is used to create propertyKey) or any other 
similar method.

Then I saw certain java patch vertices getting created even before these 
internal attributes are added to various indices. Though these patches were 
applied later once all internal attributes were added to all the indices.

Now, these patch vertices have 9 attributes and we releaized these 9 attributes 
are the only attributes missing from ES. So basically when patch vertices got 
created and these vertices with their attributes got added to cassandra via 
janusgraph, janusgraph automatically created propertyKey for all these 
attributes (the janusgraph's makePropertyKey method is not called during this 
process anywhere in the Atlas code). And because internal attributes were 
getting added to indices in another thread at the same time, when code checked 
for propertyKey, it was not null and so it did not add the property to the 
mixed index.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to