Это интересный вопрос о масштабировании в серьезной ситуации.
По сути, вы спрашиваете: «Как мне установить N подключений к интернет-сервису, где N>> 250 000».
Единственный способ сделать это эффективно и действенно - это кластеризация. Вы не можете сделать это на одном хосте, поэтому вам нужно будет иметь возможность фрагментировать и разбивать клиентскую базу на несколько разных серверов, чтобы каждый из них обрабатывал только подмножество.
Идея состояла бы в том, чтобы один сервер удерживал открытыми как можно меньше соединений (равномерно распределяя соединения), в то же время удерживая достаточно соединений, чтобы сделать любую службу, которую вы размещаете, жизнеспособной, поддерживая межсерверную связь на минимальном уровне. Это будет означать, что любые два связанных соединения (например, две учетные записи, которые много общаются друг с другом) должны быть на одном хосте.
Вам понадобятся серверы и сетевая инфраструктура, которые могут справиться с этим. Вам понадобится подсеть IP-адресов, каждый сервер должен иметь связь без подключения к Интернету (т. Е. Ваш маршрутизатор не будет выполнять NAT, чтобы не отслеживать более 250 000 подключений).
Вам придется поговорить с AOL. AOL не сможет справиться с этим уровнем подключения, не подумав об отключении соединения. Любая услуга такого масштаба должна быть согласована с AOL, чтобы и вы, и они могли справиться с подключением.
Существуют технологии ввода / вывода, которые вам следует изучить. Kqueue и epoll приходят на ум.
Чтобы написать это массово-параллельное и телекоммуникационное решение, я бы порекомендовал исследовать эрланг. Erlang разработан для таких ситуаций, как (многосерверное, массово-многопользовательское, массово-многопоточное программное обеспечение класса телекоммуникаций). В настоящее время он используется для работы телефонных станций Ericsson.