Какие алгоритмы серверы DNS используют для более быстрых поисков?

Я полагаю, что Ваше общее понимание различий между Загрузкой и ReflectionOnlyLoad корректно. Проблема здесь (я думаю) состоит в том, что даже для простой загрузки типа CLR должен считать метаданные из блока, сам тип определяется в , также загружают метаданные из каждого блока, предки типа определяются в . Так, необходимо назвать блок. ReflectionOnlyLoad на всех блоках, которые определяют типы, которые являются предками типов, которые Вы загружаете.

Для предоставления примера предположите, что Вам определили следующий класс в блоке A.dll.

public class MyBase
{
   public void Foo() { }
}

и следующий класс определил в блоке B.dll.

public class MySubclass : MyBase
{
}

, Когда Вы называете блок. GetTypes на блоке B.dll, CLR попытается загрузить тип MySubclass и все его участники. Поскольку метод Foo определяется в MyBase в блоке A.dll (и не существует нигде в метаданных B.dll), CLR выдаст исключения загрузки типа, если блок A.dll не был загружен.

6
задан Prabhu R 18 October 2009 в 16:51
поделиться

2 ответа

Задержка - огромная проблема DNS. Самая медленная часть DNS - это доступ через Интернет и запросы к другим серверам. Любое кэширование , выполняемое клиентом или сервером, ускоряет процесс. Фактически, именно это и происходит.

Когда DNS-сервер отвечает на запрос, ответ возвращается с TTL (время жизни). Значение TTL сообщает запрашивающему серверу, как долго нужно кэшировать ответ. Значение TTL устанавливается официальным сервером для зоны. Обычно это около суток, но может варьироваться в зависимости от того, как часто, по мнению администратора, запись DNS может измениться.

DNS-клиент (который может быть другим сервером, действующим от имени конечного пользователя) кэширует ответ и сбрасывает его. своего кеша при превышении TTL. До этого времени, последующие запросы для этого конкретного имени хоста будут выходить из кеша.

Я использовал свой собственный DNS-сервер дома, чтобы все мои компьютеры в моей локальной сети могли использовать преимущества локального кеша. Но я обнаружил, что лучше использовать DNS-серверы моего интернет-провайдера. Они извлекли выгоду из запросов тысяч клиентов, и у них гораздо больше шансов получить больше ответов в кэше, чем когда-либо могли бы мои серверы.

8
ответ дан 9 December 2019 в 20:45
поделиться

Я знаю, что на этот вопрос уже есть принятый ответ, но вы можете сделать гораздо больше, чем просто кэширование. Например:

  1. Используйте BGP для создания сети географически распределенных серверов, доступных через Anycast. Это может уменьшить среднее количество переходов, которые должен пройти пакет запроса DNS.

  2. Устранение инфраструктуры, содержащей задержки. Например, размещайте свои DNS-серверы у поставщика услуг Интернета или в крупной одноранговой точке Интернета, а не на медленном конце глобальной сети.

  3. Избегайте записей CNAME; предпочитаю записи A. CNAME часто требует для разрешения нескольких запросов.

  4. Используйте надежную, высокопроизводительную коммерческую службу, такую ​​как UltraDNS.

4
ответ дан 9 December 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: