Задания для выполнения практической работы.
Создайте свою аннотацию Repeat с целочисленным параметром.
Расширьте класс ThreadPoolExecutor и переопределите метод execute следующим образом: если экземпляр Runnable имеет аннотацию Repeat, то его метод run выполняется несколько раз (количество задается параметром в Repeat).
Разработка программы, для музея прикладного искусства.
Найти сумму площадей n равносторонних треугольников, стороны которых равны a, aА 2 + 1, aа3 + 2, ., aАn+ n - 1, и среднюю площадь.
В пирамиде, построенной из одинаковых кубиков, n слоев. В верхнем слое - 1 кубик, во втором - 4 кубика, в третьем - 9 и т.д. Найти общее число кубиков и их суммарный вес, если вес одного кубика равен a.
Практическая работа №14
Консистентные хеш-функции.
Цель работы: Изучить Консистентные хеш-функции.
Теоретическая часть.
Первоначальная настройка шардов в новой распределенной системе довольно проста — достаточно настроить соответствующие шарды и шардированные сервисы. А что случится, если вы захотите изменить количество шардов в шардированной системе? Повторное шардирование — часто довольно затратный процесс.
Чтобы разобраться, почему это так, вернемся к ранее рассмотренному примеру с шардированным кэшем. Оркестратор контейнеров позволит без труда увеличить кэш с 10 до 11 экземпляров. Но каков будет эффект от изменения шардирующей функции с hash(Req) % 10 на hash(Req) % 11? Когда вы примените новую шардирующую функцию, значительная часть запросов уйдет на другие шарды, нежели те, что были назначены предыдущей функцией. Это существенно увеличит процент кэш-промахов в шардированном кэше до тех пор, пока шарды не заполнятся ответами на вновь сопоставленные с ними запросы. Применение новой функции шардирования к шардированному кэшу в худшем случае приведет к кэш-промахам в 100 % вариантов.
Do'stlaringiz bilan baham: |