• Как вы знаете я использую для своих бессмысленных и ужасных экспериментов один популярный среди гиков шаред хостинг. И вот встала у меня необходимость написать небольшой, но посещаемый чат. История у чата не нужна. Собственно всё что нужно — хранить на диске (а лучше в памяти) 10-20 строчек текста, которые часто изменяются. Я бы конечно всё в мемкеш положил, но это же шаред хостинг, мемкешей там вроде как и не бывает. И моего горячо любимого MongoDB на хостингах тоже нет. Идеи? Предложения? Коментарии? все приветствуется, пока я хожу и думаю.

Replies (66)

  • @bb, а какое это имеет значение в данном случае? :)
  • @bb, хранить последние сообщения как записи в таблице мускуля. он-то на шаред хостинге точно должен быть
  • @bb, зачем на диск класть?
  • @wolong, это понятное и очевидное решение, которое понятно изначально. Оно нифига не оптимальное, потому что процессом флаша данных на диск ты не управляешь, и будет почем зря диск нагружаться.
  • @bormotov, а не надо на диск, в том то и дело. Надо куданибудь.
  • @bb, моего хостера. Не вижу разницы.
  • @bb, вполне оптимальное. пусть мускуль сам заботится о кешировании в память и когда нужно сливает на диск
  • @bb, ты это "что-нибудь", если напишешь, можешь запустить там? Вон, про FastCGI говорят — почему нет?
  • @bb, там и так fastcgi. Но там 4 отдельных форка fastcgi, для стабильности. Как следствие память то не общая :)
  • @bb, держать чтото в памяти на шаред хостинге все равно не получится. если это плохой шаред-хостинг. что позволяет твой?
  • @bb, [bobuk@beltain] ~$ uname -a
    FreeBSD beltain.bz8.ru 7.1-RELEASE-p1 FreeBSD 7.1-RELEASE-p1 #0: Mon Apr 27 02:35:37 MSD 2009 root@beltain.bz8.ru:/usr/obj/usr/src/sys/DREAMLESS amd64
  • @wolong, почему не получится? я например могу сделать базу sqlite в памяти, из интереса.
  • @bb, гм. ты когда последний раз смотрел на производительность shared memory в юниксах? это же будет медленнее чем в mysql положить :)
  • @bb, если пишешь на пхп, но такое не выйдет :) он все удаляет между запросами
  • @wolong, а? ты зачем меня оскорбляешь? какой такой пхп?
  • @bb, судя по всему "посещаемый" означает сотни сообщений в секунду :)
  • @wolong, ну да. сотню хитов в пике, не больше.
  • @bb, читай внимательно. Не сотню сообщений в секунду. Сотня хитов в секунду.
  • @bb, спасибо, паттерн «перегнать в статику» я 10 лет назад тоже знал :)
  • @bb, я вообще к тому, что твой рассказ не предлагает решения. Ты предлагаешь хранить всё на диске. Это хорошо, но диску станет плохо довольно быстро.
  • @bb, через прокси. На шаред хостинге. Спасиииииибо :)
  • @bb, потому что надо разделять работу и хобби
  • @bb, в фон есть возможность повешать хоть чтото? пусть бы один процесс висел на именованном пайпе и отдавал по запросу, что нужно. тоесть выполнял бы обязанность memcached'а
  • @bb, это выйдет чутьли не быстрее самого memcached'а, а вы в начале упомянули, что он бы вполне подошел
  • @bb, да и shared memory думаю с легкостью обгонит memcached
  • @bb, Rackspace. 10$ в месяц и нормальный выделенный сервер для эксперементов который можно в любой момент улучшить
  • @Pavel, зочем? нет ты мне ответь, зочем, если я это не собираюсь минети^Wмонетизировать?
  • @bb, Иметь возможность расширения ? Вдруг хорошо получится и кто-то сделает донейшн чтобы быстрей работало.
    Зачем vps а не shared — чтобы не возникало вопросов как обойтись без memcached
  • @Pavel, донейшн :)) ДОНЕЙШН :)) у радио-т 30-40 тыщ слушателей. Каждую неделю. Как ты думаешь, сколько из них сделало донейшн? :)
  • @bb, Столько сколько способны сделать это :)
    вобще клаудность была не основным параметром по которому я его выбрал, главное суппорт и интерфейс там лучше чем у амазона
  • @bb, кстати, это прикольный оффтопик — выпускайте радиот только по предоплате — как насобирается донейшн на следующий выпуск — так и будет :)
    А еще, еще можно сделать платные темы пользователей :)))
  • @bormotov, гггг, интересно, сколько донейшинов насобирает тема о программисте? :)))
  • @bb, HEAP STORAGE. Есть опасность что прибьём на аварии, но я думаю тебе пофиг на такие случаи. 14-17 дней аптайм сейчас посмотрел на mysql.
  • @schors, я тебя разочарую если расскажу что HEAP (он же MEMORY) на самом то деле сцуко ммапит ФАЙЛ? :(
  • @bb, и что? :) при этом пока есть место для wired, он прекрасно там силит
  • @schors, это правда, да. Скорее всего так и сделаю, все равно альтернативы нету.
  • @bb, memcached мы кстати сделаем. но как только я дойду до публикации статистики по памяти и буду готов к новым тарифам. ничего изобретать уже не надо — механическая работа. но с ним кстати тоже всяких проблем есть. я уже сейчас не помню — выбросил как мусорную информацию, но что-то там было некузявое
  • @bb, Что-то я так и не понял из комментов, почему нельзя один FastCGI процесс запустить?! :)
  • @ugnich, потому что у хостера так все настроено, а я не хочу быть на особом положении :)
  • @ugnich, чтобы треды делили переменную? это изначально грязный хак
  • @bb, Особые задачи требуют особых положений.
    @schors single thread
  • @ugnich, а в чём прикол? не понял тогда мысли
  • @schors, Один FastCGI процесс, однотредовое приложение. Проще некуда, работает как часы и никаких костылей. ;) Что именно не ясно?
  • @bb, я знал, что когда-нибудь, мне понадобится "красивый" uname :))))
  • @ugnich, а, вот так... хм... ну, т.е. сделать обход memcached...
  • @schors, Нафига memcached?! :) В переменных данные хранить — будет летать!
  • @ugnich, суть примерно та же. я знаю :))))) я на efind.ru так 10-минутный кэш делал ;) да ну, надо просто будет со временем хранилище дать. тот же memcached или вот дать tmpfs... главное чтобы руки дошли
  • @wolong, нету такой возможности. пока нету
  • @schors, memcached здесь не нужен, будет тормозить (всё относительно ;) ). Простой задаче — простое решение.
  • @ugnich, я задумался, да... надо будет настройку дать... эээ... кстати, а нафиг он нужен, если он тормознее обёртки из HTTP/CGI?
  • @ugnich, простые системы должны просто масштабироваться, хотябы на 2 ядра
  • @schors, Кто, "он"? Ничего не понял.
    @Pavel Это не "система", а простейшая задачка. ;) Но если добавить треды и синхронизацию — будет масштабироваться.
  • @ugnich, я смысла в memcached тогда не понимаю. никогда не приходилось использовать — но так о нём все вокруг кричат...
  • @ugnich, ну если протокольная обёртка оказывается быстрее
  • @schors, В него удобно ложить большие куски готового HTML, результат работы нескольких и/или сложных SQL-запросов. Или даже целые страницы.
    А данные хранить в СУБД нужно.
    Про "протокольную обертку" не понял. :)
  • @ugnich, FastCGI-процесс — там же ещё будет обёртка разбора достаточно громоздкого CGI
  • @ugnich, т.е. если я на хостинге банально дам tmpfs всем настанет счастье?
  • @schors, А что, можно как-то параметры запроса без разбора CGI получить? :) Это вы уже что-то слишком углубились.
    Какое отношение tmpfs имеет к тому, что я описал?
  • @ugnich, работа с файлом, довольно быстро. я просто как раз думал — memcached или tmpfs мегабайт на [сколько оплатят] выдавать. да я помню, что memcached вроде сам expiration считает.. но тут уж откуда у кого руки
  • @ugnich, хранить в памяти html тем кому уже это реально нужно — они умрут оплачивать это. а вот по мелочи вынести — вроде tmpfs должно сильно помочь. вот и в случае топика — мегабайт 8 было бы просто идеально.
  • @schors, Для юзеров удобнее будет memcached, он банально популярнее и известнее. Но память жрет неэкономно.
    Странные у вас представления о потребностях клиентов. :) Как раз, хранить в памяти HTML нужно очень многим, memcached-плагины для многих CMS есть. А вот кому нужен tmpfs — не знаю.
  • @ugnich, ну я тут социализируюсь — поэтому языком и чешу :) в некотором смысле я демиург — со своей позиции подталкиваю клиентов к расово верным решениям. я вот например знаю что у 90% руки-крюки и поставил mod_wsgi, и вдруг стал популярным :)) memcached... ну вот UMI например (2-ое место по коробкам в РФ однако) его не любят, хотя модуль есть, Bitrix.. ну его никто не любит, поэтому он может любить всё что угодно — проблемы шерифа не :)) Остальные.. а не собирал статистику. Если памяти жрёт много — придётся много платить, к этому тоже не все готовы. HTML'ек обычно очень много... Я придерживаюсь реальной оценки ситуации, если оплата превышает рыночную догму, то можно и не думать над этим. Но иногда хочется сказать "мужик, ну положи ты это в память".. вот у fbsd есть красивая тема с tmpfs. Почему нет? И сделать библиотеки с поддержкой "протухания". Что-нибудь простенькое намутить и пойдёт.
  • @schors, Насчет CMS: не знаю, что такое UMI, а про Bitrix только слышал, что он — говно. Зато знаю, что такое Wordpress и насколько он популярен.
    "Сделать библиотеки..." — нафига? :) Не надо ничего изобретать.
  • @ugnich, ну хорошо, расстановку сил для себя осознал да. wp — да, есть такая тема. хотя и какашка страшная. надо карикатуру на его тему выпустить.
  • @schors, Может и какашка, но юзерам нравится и фиг вы их переубедите.
  • @ugnich, ну... от mod_python и vds потихоньку отучаю :)