|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Ilya Bricker 2:5020/400 14 Jun 2001 10:50:09 To : All Subject : Re: вопросы по Web-проекту -------------------------------------------------------------------------------- Привет! Опыта похожих проектов у меня нет, есть буквально пара соображений с позиции здравого смысла. "Serge Prydatchenko" <Serge.Prydatchenko@p3.f190.n463.z2.fidonet.org> wrote in message news:992466647@p3.f190.n463.z2.ftn... > Hello, All! [...] > 1) Как лучше реализовать "Online alert" для Buddy-list-а и приход "instant > message" средствами IIS+MSSQL так, чтобы оно требовало минимум ресурсов > сервера? Hужно как можно меньше напрягать сервер БД по каждой перезагрузке страницы, он просто загнется если не будет кэширования и обработки на среднем уровне. Идея в том что в онлайне скорее всего на порядок меньше пользователей, чем учетных записей в базе. Предлагаю сделать компоненту, которая бы отвечала за подсистему "instant messaging", описать ее функциональность. Она должна кэшировать Buddy-list-ы активных пользователей, вести очередь сообщений. Hужнен ей всего один коннект, по которому она будет периодически сливать в базу лог сообщений (если надо) и чистить их в памяти, подкачивать Buddy-list пользователя, когда он залогинился или после получения оповещения с ASP-страницы о том что он изменил свой Buddy-list. Это фактически имитация работы базы данных из двух таблиц, зато все в памяти и будет работать на порядок быстрее, если несколько сообщений при крахе сервера потеряется это не большая плата за производительность > 2) Я собираюсь использовать глобальные суррогатные ID типа uniqueidentifier для > облегчения сиcтемы прав доступа (у каждого объекта типа профиля, календаря, > записи в календаре, чат-рума итд. итп. есть владелец, умолчания доступа для > групп и "оверрайды" - переназначения прав для конкретных пользователей), я > решил делать все суррогатные ключи типа uniqueidentifier, генерировать их > newid() и привязывать единые ACL к ним. > > Правильно ли делать такие ПК некластерными (к тому же помним о RAID)? Кластерным может быть только один индекс. Если нет безусловных предпосылок для выбора того или иного индекса на роль кластерного, то видимо на данном этапе проектирования это пока не важно :-) > Что будет с производительностью джойнов по сравнению с bigint PK? Думаю, существенно ниже. А чем обычный int не устраивает? 4 миллиарда. > Стоит ли какие-либо другие индексы делать кластерными, какие тогда? имхо рано думать об этом на начальных этапах. Может быть, выгоднее будет впоследствии денормализовать модель, вставить лишнее поле и сделать кластер по нему. > 3) Что сказать заказчику по поводу того, какое железо ему придется покупать при > росте количества юзеров, когда его сервер начнет "задыхаться"? Hасколько я > понимаю, нужно будет выносить БД на отдельный сервер/кластер и делать "толпу" > IIS-ов с балансировкой HTTP какой-то стандартной железякой... Вот вопрос в > том, сколько юзеров потянет IIS на каком-нибудь 4-х процессорном интеловском > сервере с гигом памяти и сколько сессий потянет аналогичная нода кластера > MSSQL? Я так понимаю, что IIS будет брать ADO-сессии к БД из пула, но > соотношение сессий БД к количеству активных Веб-юзеров предсказать не берусь > даже приблизительно - опыта нет... 100000 активных коннектов не потянет ни одна реляционная СУБД на Intel, да и на другом железе думаю тоже, можно исходить из этого, а один IIS вроде бы 10000 сессий вполне тянет. В общем, советую поменьше сервер БД нагружать, поменьше логики в процедурах, попроще запросы, минимум индексов и триггеров на таблицах в которые идет активный поток DML, лучше логику на среднем слое делать. -- Илья Бриккер --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/91048352176f.html, оценка из 5, голосов 10
|