ФорумПрограммированиеPHP для идиотов → Профи, обосрались?

Профи, обосрались?

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Июль 13, 2011, 1:14 д.п., спустя 19 минут 57 секунд

    пользователей сейчас тыщ сто. Активных - десять где-то.
    Под репликацию у нас заведены отдельные коннекты.

    Дело в том, что я мускл знаю постольку-поскольку, и в ближайшие пару месяцев прочитать что-то по high performance не удастся. Так что если заметите, что порю хуйню - не обессудьте.
    Спустя 72 сек.
    короче мне один человек сам того не осознавая подсказал идею. Вот думаю, что она ниче так.
    Добавить в таблицу пользователь2канал колонку is_friend и по ней еще фильтр сделать. И все, обошлись мы без этого вашего WHERE IN
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Июль 13, 2011, 1:16 д.п., спустя 1 минуту 48 секунд

    честно не будет? потому что мы так и будем делать

    если в каждом запросе будет и правда по 10 тыс друзей идов, то будет просто трафик между бд сервером и пхп веб сервером немаленький, тогда решает например гзипование трафика этого … это я тебе небольшой опдводный камень говорю, а если ты про то что выборка по IN + PK (primary key) не будет тормозить - можшь слепо верить, стопудово не будет, будет за 0 выполняться практически на любых размерах бд (миллионы проверено было ..)

    к слову о миллионах - недавно у себя нашел таблицу на 4 млрд или 400 млн ов ли записей xD - крон задача на ее очистку отвалилась )
    Сапожник без сапог
  • Animator

    Сообщения: 194 Репутация: N Группа: Кто попало

    Spritz Июль 13, 2011, 1:29 д.п., спустя 13 минут 9 секунд

    ну как вариант, во первых - если есть возможность (ИМХО больно умнее меня наверно, умнее сделают), ограничь клиентов по какому либо принципу и выдавай им подобные новости порционально, следи и мониторь сервера.
    понимаешь тут как, точно не возможно нарисовать, что вот именно при таких раскладах оно вот так все будет хорошо работать. (ну если ты до этого не налаживал все это на фейсбуке :)
    во вторых - призадумывался ли о том что все эти новости у "монстров" ограничены? можешь ли ты увидеть в контактах новости прошлогодней давности?
    и обращал ли внимание на то что все это они не кидали на общее расмотрение в том виде, в котором мы это видем сегодня? но тут уже - см. правило первое
    Спустя 142 сек.
    phpdude, ну как бы, дело говоришь :) плюсую
    Спустя 156 сек.
    тормозить оно будет, сто пудово, но!!! тут есть важный ньюанс - кеширование
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Июль 13, 2011, 11:52 д.п., спустя 10 часов 23 минуты 8 секунд

    во вторых - призадумывался ли о том что все эти новости у "монстров" ограничены? можешь ли ты увидеть в контактах новости прошлогодней давности?

    не думал на этот счет. Но если в старой блогозаписи появится новый коммент - об этом нужно уведомить же.

    и обращал ли внимание на то что все это они не кидали на общее расмотрение в том виде, в котором мы это видем сегодня? но тут уже - см. правило первое

    да, писал об этом даже) Но заказчик попросил пока сделать так, что б показывались актуальные данные. Это наверно скорее всего прототип мы сейчас делаем, потом будем его допиливать.


    тут есть важный ньюанс - кеширование

    да ну, что ж мы закешируем-то, если у каждого пользователя свои события в ленте + данные все время меняются. Они должны быть моментально доступны
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Ноя. 18, 2011, 1:56 д.п., спустя 127 дней 14 часов 4 минуты

    http://phpclub.ru/talk/threads/%D0%9F%D0%BE%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%83%D0%B9%D1%82%D0%B5-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-pub-sub.69946/
    Спустя 174 сек.
    не помню, кто мне советовал - Дуд или кто другой - использовать MQ-решения. Что-то я присмотрелся - нихуя они не подходят под требования для моей задачи
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Ноя. 18, 2011, 2:10 д.п., спустя 13 минут 51 секунду

    Абырвалг, нахуй тебе персистент решения?) делай как вконтакте. у каждого юзера есть своя лента событий, вот и получай ленты событий для всех друзей да и все :-)

    ну а фильтруй хоть тем же пыхом. данных там не сильно дохуя :-)
    Спустя 34 сек.
    а если надо хайды, то заводишь табличку $hiderID, $eventID (timestamp + $friendid как вариант, ваще похуй)
    Спустя 20 сек.
    ну и в ней ищешь, если есть хайды то тупо вытираешь из результирующей таблицы ленты да и все)
    Спустя 47 сек.
    а у каждой юзерской ленты есть атомарные операции аля eventlog: push(event) + slice(max50) например. :-)

    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Ноя. 18, 2011, 1:45 п.п., спустя 11 часов 35 минут 8 секунд

    По поводу персистентности - тут скорее store-and-forward нужен. Как обычно работают эти MQ - добавили что-то в очередь, прочитали это - из очереди удалили. А мне ж эту ленту все время показывать нужно. Подписались на канал - и сразу в ленте появились прошлые события, вещающие на этот канал.

    вот и получай ленты событий для всех друзей да и все :-)

    не, это не просто то, что делали мои друзья, а это то, на что я подписан + условие что это сделал друг.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Ноя. 18, 2011, 1:57 п.п., спустя 11 минут 15 секунд

    не, это не просто то, что делали мои друзья, а это то, на что я подписан + условие что это сделал друг.

    вот ты блядь теоретик это просто пиздец. для тебя моя и твоя фраза - разные вещи в конечном итоге? :-)
    Спустя 30 сек.
    Как обычно работают эти MQ - добавили что-то в очередь, прочитали это - из очереди удалили

    реально? то есть это не время хранения а "Flush messages" ?
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Ноя. 18, 2011, 2:39 п.п., спустя 42 минуты 26 секунд

    я смотрел несколько вариантов - zeromq, rabbit-mq, … - как я понял из документации - да.

    вот ты блядь теоретик это просто пиздец. для тебя моя и твоя фраза - разные вещи в конечном итоге? :-)
    по факту да.

    твоя фраза - то, что друзья сделали, и похуй, входит ли это в список наших интересов (каналы, на которых мы)
    моя - то что друзья сделали + условие что это среди моих интересов
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Ноя. 18, 2011, 3:05 п.п., спустя 25 минут 25 секунд

    Абырвалг, =)
    если ограничивать колво потоков друзей, то я бы юзал любую базу которая поддерживает "массивы". докуентную например, тотже CouchDB :-)

    и делал как я написал :)
    Спустя 30 сек.
    это бы работало быстро по крайней мере до наполнения базы в лям пользователей на одном сревере точно) и онлайне в пару тысяч
    Сапожник без сапог
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz Ноя. 18, 2011, 4:17 п.п., спустя 1 час 12 минут 28 секунд

    BEER. Helping ugly people have sex since 1862.

    Пиво — один из древнейших напитков, возможно уходящий корнями в ранний неолит (примерно 9500 год до н. э., когда началось выращивание зерновых культур).
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • PandoraBox2007

    Сообщения: 21 Репутация: N Группа: Адекваты

    Spritz Дек. 17, 2011, 6:20 д.п., спустя 28 дней 14 часов 2 минуты

    написать на си перевести в hiphop-php и ободрать код на чистый си %)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!