|
|
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
|