Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.07.2010, 20:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не надо из мемкеша ничего выбрасывать, нужно изменять одновременно с данными в базе. А актуальность и синхронизация данных будет обеспечена прямыми руками. Если оные не есть прямые, тут ничего уж не поделаешь.

Старый 15.07.2010, 20:49
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 12  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
2mikhailk: Да, что работа серьезная - осознаю! Хочется на этом получить достойный опыт. За модель кеширования - спасибо! Есть над чем подумать!

2etc: Будьте добры - дискуссировать объективней? Я понимаю что у вас руки прямые, но я здесь с вами не руками меряюсь! Задача (на данный момент) одна - найти достойное решение обеспечивающее стабильную работу БД при превышении 850 кол-ва коннектов!


Последний раз редактировалось ERrorMAKros; 15.07.2010 в 20:58.
Старый 15.07.2010, 21:05
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 13  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от etc Посмотреть сообщение
Не надо из мемкеша ничего выбрасывать, нужно изменять одновременно с данными в базе. А актуальность и синхронизация данных будет обеспечена прямыми руками. Если оные не есть прямые, тут ничего уж не поделаешь.
В документации к мемкэшу написано, что выставление бессрочного срока хранения данных все равно не гарантирует их бессрочного хранения. Это означает, что мы все равно при обращении клиента к серверу проверяем существование информации в кэше и должны быть готовы ее вычислить заново. Т.е., этот метод все равно будет существовать.

Теперь по логике работы. Допустим, в кэше хранится профиль фермы пользователя в виде объекта. Пользователь купил ослика. От клиента поступил запрос на покупку ослика, по итогам которого сервер отдал клиенту обновленную информацию - добавленное жывотное, обновленная сумма на счету, обновленный рейтинг, клиент получил эти данные и у себя их учел.

Параллельно с отправкой данных клиенту мы должны обеспечить целостность данных.
Я сбрасываю профиль фермы из кэша, он будет автоматически заполнен при следующем обращении к ней методом, который указан в первом абзаце. Имею незначительную избыточность в вычислениях, но простоту и надежность.

В Вашей реализации Вы, на сколько я понимаю, обновляете объект профиля фермы и записываете его заново. Т.е., Вы немного экономите на вычислениях, но имеете более сложный сервер.

Вопрос выбора.


Кстати, я тут подумал, что мне пришлось пойти своим путем и по вполне объективным причинам. Иногда есть потребность одновременно внести изменения, скажем, в тысячу-другу профилей ферм. Например, в стойла вернулись арендованные на сутки ослики. Пересчитывать все эти профили одной задачей - достаточно трудоемко. Проще их сбросить, чтобы потом они постепенно обновились в кэше по мере того, как они будут запрошены.


Последний раз редактировалось mikhailk; 15.07.2010 в 21:14.
Старый 15.07.2010, 21:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
mikhailk, о том, что надо проверять, никто не спорит. Но я предпочту снизить нагрузку на базу.

Старый 15.07.2010, 21:53
membrilius вне форума Посмотреть профиль Отправить личное сообщение для membrilius Найти все сообщения от membrilius
  № 15  
Ответить с цитированием
membrilius
 
Аватар для membrilius

Регистрация: Aug 2008
Сообщений: 258
вставлю тоже пару слов.

Лично на мой взгляд кеширование, этот Memcache не нужная и не удобная штуковина вообще. Кто-то ещё ставит базу ключ=значение, да тот же MemcacheDB. Сидят там пару процентов производительности поднимают.

Ломать себе мозг, как отыграть немного производительности у сервера, в наше время это лишние проблемы. Ещё можно программный код ужимать, а то у нас винчестеры 250кб.

Да максимум поставил сверху Апачи Nginx, поднастроил БД, оптимизировал запросы и оптимизировал таблицы.

Ну если проект большой, сразу арендовал один сервер. За 5 000 в месяц можно нормальный найти. Стало мало места, вынес базу данных на отдельный сервер. Дальше вынес все изображения на отдельный. Можно вообще базу по серверам отмасштабировать. Если вообще всё плохо то настроил "Ферму" на Nginx, или разнёс проект по модульно. Да 100 вариантов есть.

Старый 15.07.2010, 21:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 16  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
У нас без мемкеша сервер загибается за 10 минут. Это при том, что запросы примитивны.

Старый 15.07.2010, 22:04
membrilius вне форума Посмотреть профиль Отправить личное сообщение для membrilius Найти все сообщения от membrilius
  № 17  
Ответить с цитированием
membrilius
 
Аватар для membrilius

Регистрация: Aug 2008
Сообщений: 258
У Вас проекты такого плана с которыми я к сожалению не работал.
Там 25 000 нубов в TimeZero режет крысу, или 10 000 человек в destiny-online передаёт свои координаты местоположения.

Наверно у меня проекты, где люди не так часто запросами кидаются.

Старый 15.07.2010, 22:09
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 18  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я так понимаю, если мемкэш обеспечивает прирост в 2% производительности, то это очень интересное и необычное использование мемкэша.

membrilius, автор топика социальную сеть сделать собирается.
Вам известны движки социальных сетей без кэширования?

Старый 15.07.2010, 23:10
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 19  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
А мы вот apc выбрали все-таки, он удобнее.
Вообще всю статику в любом проекте, где предполагается хоть какая-то более ли менее нагрузка надо кешировать данные, собирать в байт-код пхп, картинки отдавать на всякие nginxы и т.п.


Последний раз редактировалось Сайлас; 15.07.2010 в 23:13.
Старый 16.07.2010, 02:30
membrilius вне форума Посмотреть профиль Отправить личное сообщение для membrilius Найти все сообщения от membrilius
  № 20  
Ответить с цитированием
membrilius
 
Аватар для membrilius

Регистрация: Aug 2008
Сообщений: 258
mikhailk, я просто высказал своё мнение.. я не считаю что мемкэш это минус.

Просто если в конторе работает допустим 20 программистов... да было бы хорошо, если бы они на достойном уровне знали PHP и JavaScript. Вообще моя статистика из 100 человек на собеседование, только 10 видят PHP, JavaScript, HTML глазами хакера. Не в ту степь я пошёл )

Я читал много Ваших постов, Вы всеми руками за производительность - ценный сотрудник.

А я человек которому проще вкладывать деньги в железо.

И за такие понятия как Шардинг, Репликация (хоть это и ужасно, но иногда выручает), Партиционирование, Балансировка, Nginx фермы.

Масштабировать я люблю )

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.