|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Serge Prydatchenko 2:463/190.3 13 Jun 2001 20:57:16 To : All Subject : вопросы по Web-проекту -------------------------------------------------------------------------------- В общем, есть проект, от которого нельзя отказаться - типа "Online-community" для американского заказчика, которое должно быть написано на IIS+MSSQL и масштабироваться с одного хилого сервера (два города, мало юзеров) до кластера и более 100000 одновременных пользователей (все Штаты, если заказчик "поднимется"). Смешно, конечно, но заказчик очень бедный (по американским меркам) и упертый. :) Мы раньше больших и средних Веб-проектов не делали, опыта и ресурсов на написание бизнес-логики на COM под MTS у нас нет, у меня есть опыт написания бизнес-логики в двух уровнях Оракловских хранимых процедур для традиционного приложения на 100 юзеров. Опыта работы с MSSQL нет, с ASP мало и не у меня. :) Соответственно, непонятно: 1) Как лучше реализовать "Online alert" для Buddy-list-а и приход "instant message" средствами IIS+MSSQL так, чтобы оно требовало минимум ресурсов сервера? То есть, пользователь логонится в аппликуху (создается сессия и дальше по коротким транзакциям вызовами ХП будет "путешествовать" session_id) и у пользователей, у которых он в Buddy-list, должен возникать Online alert, примерно то же с "instant message". Пока что я остановился на перезагрузке Buddy-листа и списка входящих сообщений (путем вызова соотв. хранимой процедуры) при каждой загрузке страницы (вместо неперезагружаемого фрейма) и по таймауту в чате, но может есть какой-то более щадящий для производительности способ? 2) Я собираюсь использовать глобальные суррогатные ID типа uniqueidentifier для облегчения сиcтемы прав доступа (у каждого объекта типа профиля, календаря, записи в календаре, чат-рума итд. итп. есть владелец, умолчания доступа для групп и "оверрайды" - переназначения прав для конкретных пользователей), я решил делать все суррогатные ключи типа uniqueidentifier, генерировать их newid() и привязывать единые ACL к ним. Правильно ли делать такие ПК некластерными (к тому же помним о RAID)? Что будет с производительностью джойнов по сравнению с bigint PK? Стоит ли какие-либо другие индексы делать кластерными, какие тогда? 3) Что сказать заказчику по поводу того, какое железо ему придется покупать при росте количества юзеров, когда его сервер начнет "задыхаться"? Hасколько я понимаю, нужно будет выносить БД на отдельный сервер/кластер и делать "толпу" IIS-ов с балансировкой HTTP какой-то стандартной железякой... Вот вопрос в том, сколько юзеров потянет IIS на каком-нибудь 4-х процессорном интеловском сервере с гигом памяти и сколько сессий потянет аналогичная нода кластера MSSQL? Я так понимаю, что IIS будет брать ADO-сессии к БД из пула, но соотношение сессий БД к количеству активных Веб-юзеров предсказать не берусь даже приблизительно - опыта нет... 4) Может где-то можно что-то полезное на эти темы прочитать? Заранее благодарен за ответы. С наилучшими пожеланиями... Serge Великий грех всех программ перед программистами - они делают то, что программист написал, а не то, что он имел в виду. --- * Origin: Per aspera ad astra! (FidoNet 2:463/190.3) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/27643b27d6d7.html, оценка из 5, голосов 10
|