avowkind opened a new issue, #1240:
URL: https://github.com/apache/age/issues/1240

   I'm finding DETACH DELETE of a filtered list of nodes to be very slow in 
comparison with the equivalent match or create. I understand there's work to do 
but its taking 30 seconds to delete 1000 vertices.  
   
   Given a schema where we have Observations(100000s), Features (1000s) and 
Properties( 100s) and Datasets (10s)
   That each observation has three outgoing edges ( example values )
   ```
   
   (o:Observation) -[observedProperty]-> (p:Property { id: 
'water_temperature_celsius'}) 
   (o:Observation) -[featureOfInterest]-> (f:Feature { id: 'tank:A01'}) 
   (o:Observation) -[in]-> (d:Dataset { id: 'site_temperatures'}) 
   
   ```
   The Observation has properties such as date, result etc.  
   
   Creating and Matching observations performance is very good - I can upload 
1000s of observations a second and retrieving a set of observations filtered on 
particular properties and belonging to a given dataset takes only a few seconds 
to get MB of results. 
   
   However, Deleting observations is really really slow in comparison. 
   
   For example to remove all the obs in a dataset. 
   ```
   MATCH (o:Observation)-[in]->(d:Dataset { id: 'site_temperatures'} )
   DETACH DELETE o 
   RETURN o
   ```
   Takes so long it times out.  I have seen examples where the database process 
receives a kill 9 from the supervisor.  
   
   Adding LIMIT 1000 does complete but still takes several seconds.  
   
   Questions:
   1 - am I doing this with the correct query?
   2 - why might this take so long? - Although there are 1 vertex and 3 edges 
to remove per observation this is not much more work to find than the 
equivalent match. 
   
   I wonder whether: 
   - is this an indexing thing? 
   - Is this a lock / deadlock thing? - some suggestion that any other asynch 
requests to the db to get observations ( which is quite likely) results in some 
obs being 'in use'. blocking the delete.   This might just be a side effect of 
it taking so long.
   
   This screen shot from PGAdmin taken at 14:06 shows a detach delete of all 
observations that started at 13:26.
   
   
![image](https://github.com/apache/age/assets/1596437/accc2602-15e8-4e83-afb7-a1f3943e423c)
   
   This is running on a MacBook Pro 2023. Apple M2 Max 64GB.  MacOS Ventura.  
PostgreSQL 15.   
   I see the same problem on an Ubuntu Linux server. 
   My app is running in docker - but I can reproduce the issue by putting the 
same SQL request into PgAdmin. 
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to