Skip to content

Commit 208b4ed

Browse files
authored
do not keep deleted annotations in ram (#9256)
1 parent 630426c commit 208b4ed

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
### Fixed
2+
3+
- Reduced memory consumption for annotation import to jobs
4+
(<https://github.com/cvat-ai/cvat/pull/9256>)

cvat/apps/dataset_manager/task.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -496,13 +496,6 @@ def _delete(self, data=None):
496496
labeledshape_ids = [shape["id"] for shape in data["shapes"]]
497497
labeledtrack_ids = [track["id"] for track in data["tracks"]]
498498

499-
# It is not important for us that data had some "invalid" objects
500-
# which were skipped (not actually deleted). The main idea is to
501-
# say that all requested objects are absent in DB after the method.
502-
self.ir_data.tags = data['tags']
503-
self.ir_data.shapes = data['shapes']
504-
self.ir_data.tracks = data['tracks']
505-
506499
for labeledimage_ids_chunk in take_by(labeledimage_ids, chunk_size=1000):
507500
self._delete_job_labeledimages(labeledimage_ids_chunk)
508501

@@ -513,11 +506,13 @@ def _delete(self, data=None):
513506
self._delete_job_labeledtracks(labeledtrack_ids_chunk)
514507

515508
deleted_data = {
509+
"version": self.ir_data.version,
516510
"tags": data["tags"],
517511
"shapes": data["shapes"],
518512
"tracks": data["tracks"],
519513
}
520514

515+
self.reset()
521516
return deleted_data
522517

523518
def delete(self, data=None):
@@ -526,6 +521,7 @@ def delete(self, data=None):
526521
self._set_updated_date()
527522

528523
handle_annotations_change(self.db_job, deleted_data, "delete")
524+
return deleted_data
529525

530526
@staticmethod
531527
def _extend_attributes(attributeval_set, default_attribute_values):
@@ -1033,7 +1029,7 @@ def patch_job_data(pk, data: AnnotationIR | dict, action: PatchAction, *, db_job
10331029
elif action == PatchAction.UPDATE:
10341030
annotation.update(data)
10351031
elif action == PatchAction.DELETE:
1036-
annotation.delete(data)
1032+
return annotation.delete(data)
10371033

10381034
return annotation.data
10391035

0 commit comments

Comments
 (0)