Язык веб-сценариев с параллельным неблокирующим доступом к базе данных? - PullRequest
1 голос
/ 08 декабря 2008

Моему веб-приложению нужно будет использовать несколько сегментов базы данных, а иногда необходимо выполнять параллельный запрос этих сегментов. Существуют ли языки веб-сценариев, которые имеют развитую, стабильную поддержку параллельного неблокирующего доступа к базе данных? Если да, можете ли вы указать мне правильное направление? Бесплатный открытый исходный код предпочтительнее, но я в основном хочу что-то, что будет работать.

Потоки меня устраивают, но мне не требуется поддержка многопоточности. Все, что я хочу, - это то, что пять 10-секундных запросов к базе данных к пяти различным серверам баз данных будут занимать 10 секунд, а не 50. Мне не важно, сколько процессоров он фактически использовал.

Ответы [ 2 ]

1 голос
/ 08 декабря 2008

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

Например, в Java общий ввод-вывод обрабатывается с помощью компонентов в java.io и java.net, но доступ к базе данных обрабатывается с помощью java.sql и драйверов, зависящих от поставщика. Подобные характеристики характерны для других платформ / языков.

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

По этой теме доступно много материалов, но вам нужно будет сосредоточиться на конкретной платформе / языке для большей части деталей. Обратите внимание, что это традиционно ОЧЕНЬ сложная область разработки программного обеспечения.

С наилучшими пожеланиями ...

0 голосов
/ 02 января 2009

Возможный обходной путь - разделить веб-страницу так, чтобы каждая часть поражала только один осколок. Браузер должен запустить отдельный запрос AJAX для каждой части и создать страницу на стороне клиента.

Это решение не будет зависеть от выбранного языка / фреймворка, но требует включения JavaScript на стороне клиента.

Производительность может варьироваться в зависимости от ОС, браузера и настроек каждого посетителя ( дополнительная информация ). Однако страница будет отображаться постепенно, как только станут доступны данные из каждой части страницы.

По сравнению с серверным решением этот метод переносит сложность с сервера на клиентский JavaScript и увеличивает нагрузку на веб-сервер.

...