Today we continue discussing the best practice from storage engineering:
639) If there are multiple registrations that need to be kept in sync, they get harder to maintain. It is easier if the lists can be combined or there is a one to one mapping between the lists
640) Failed tasks may require new tasks to be added in which case, it is better to find the failed tasks as separate from the otherwise new tasks.
641) When the tasks are constantly replenished, it is helpful to keep track of in versus out.
642) The tasks that are out are candidates for cleanup.
643) The tasks that are in are either existing or new. They are mutually exclusive so it is easy to tell the new ones from the old.
644) The tasks that are new will need things setup for them to execute. It involves initialization so that they can be included in the list
645) The tasks that run long need to indicate progress in some way so that the scheduler knows that this task is still active and not stuck.
646) When the tasks have to sort the results, the sorting order might change as the listing changes. It is helpful to refresh the listing before sorting.
647) If the listing is large, it is not easy to refresh without taking a cost on the overall query time. In such cases, it helps to have progressive listing. Where the changes are made to one one end of the listing while the other ends remains as is. As the listings are added to the tail, the stats from unchanged can be reused for the new entries.
639) If there are multiple registrations that need to be kept in sync, they get harder to maintain. It is easier if the lists can be combined or there is a one to one mapping between the lists
640) Failed tasks may require new tasks to be added in which case, it is better to find the failed tasks as separate from the otherwise new tasks.
641) When the tasks are constantly replenished, it is helpful to keep track of in versus out.
642) The tasks that are out are candidates for cleanup.
643) The tasks that are in are either existing or new. They are mutually exclusive so it is easy to tell the new ones from the old.
644) The tasks that are new will need things setup for them to execute. It involves initialization so that they can be included in the list
645) The tasks that run long need to indicate progress in some way so that the scheduler knows that this task is still active and not stuck.
646) When the tasks have to sort the results, the sorting order might change as the listing changes. It is helpful to refresh the listing before sorting.
647) If the listing is large, it is not easy to refresh without taking a cost on the overall query time. In such cases, it helps to have progressive listing. Where the changes are made to one one end of the listing while the other ends remains as is. As the listings are added to the tail, the stats from unchanged can be reused for the new entries.
No comments:
Post a Comment