Closed nathanielrindlaub closed 2 months ago
Note on updateMany()
timing tests: it took 2.4 seconds to perform the updateMany()
operation on 21,350 images (the entire round-trip call took 2.7 seconds), so at the current Lambda timeout of 30 seconds, I'm guessing we could support updating ~200k images before timing out without using an async task.
That seems like a lot, and would probably be more than enough most of the time, but I worry about the consequences of timeouts/incomplete uploads for really big update jobs. I think the safer move here would be to make this an async task, unfortunately. We likely will need to make bulk image deletion (#227) async, so perhaps now is the time to build out a more generic task-monitoring table in the frontend for this kind of thing.
Make the distinction between "cameras" and "deployments" more clear in the filters panel. It's already is pretty confusing. Two light-touch ideas might be to
This is a highly asked for feature so should be high priority. People often mistype the Serial Number Override and are looking for a way to change that after the fact, which currently isn't possible. This would only possible for non-wireless cameras.
Front-end tasks:
Back-end tasks:
cameraId
field. We would likely want this to be an async task, but perhaps MongoDB updateMany would be fast at this. Needs testing.cameraConfig
updateMany()
on all of the affected Images, in order to reverse this later on the very first thing we'd need to do in theupdateSerialNumber()
method is to get a list of all Image _ids that have the source'scameraId
, hang on to that in memory, and then if we need to reverse theupdateMany
we'd have tobulkWrite
theircameraId
s back to the original value.