ФорумСообществоФлейм → Как гугл плюс устроен внутри?

Как гугл плюс устроен внутри?

  • Абырвалг

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

    Spritz 9 декабря 2011 г. 0:32

    Сабж. Нигде не могу нагуглить как он хранит эти свои круги, как дробит информацию по кругам, приватность вся эта и тд.
  • mario

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

    Spritz 9 декабря 2011 г. 2:00, спустя 1 час 28 минут 46 секунд

    я думаю навряд ли они уже опубликовали такую инфу. Так что думаю нужно ждать, пока на какой либо конференции кто нибудь расскажет )
  • artoodetoo

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

    Spritz 9 декабря 2011 г. 7:44, спустя 5 часов 43 минуты 36 секунд

    Абырвалг, а свои мысли у тебя есть как это могло бы быть сделано?
    ιιlllιlllι унц-унц
  • Givi

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

    Spritz 9 декабря 2011 г. 10:53, спустя 3 часа 9 минут 4 секунды

    artoodetoo, вряд ли, в книжках про такое не написали =))
  • Абырвалг

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

    Spritz 9 декабря 2011 г. 13:09, спустя 2 часа 16 минут 9 секунд


    Абырвалг, а свои мысли у тебя есть как это могло бы быть сделано?


    есть, но это не будет работать на таких объемах.
    Спустя 129 сек.

    artoodetoo, вряд ли, в книжках про такое не написали =))


    а я до сих пор ни одной книжке по программингу и не прочитал, кстати. тупобаран
  • artoodetoo

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

    Spritz 9 декабря 2011 г. 14:16, спустя 1 час 6 минут 45 секунд

    — Папа, а почему солнышко утром выходит, а вечером заходит?
    — Сынок, работает — и хрен с ним!
    ιιlllιlllι унц-унц
  • Абырвалг

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

    Spritz 9 декабря 2011 г. 14:44, спустя 27 минут 45 секунд

    так просто эти его технологии можно применить для моей новостной ленты
  • artoodetoo

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

    Spritz 9 декабря 2011 г. 15:03, спустя 19 минут 42 секунды

    Ну а если тупо:
    далее везде "кто" и "кого" - это id в таблице "чуваки".
    - таблица "лента". {кто, текст}
    - таблица "круги" с {кто, название, читать}
    - таблица "отношения" {кто, круг, кого}

    SELECT лента.*
    FROM
     лента INNER JOIN
     чуваки ON чуваки.ид=лента.кто INNER JOIN
     отношения ON отношения.кто=Я AND чуваки.идлента.кто=отношения.кого INNER JOIN
    круги ON круги.кто=Я AND отношения.кого=лента.кто
    WHERE
    круги.читать=1
     

    не?

    P.S. НЕ, говно. но что-то типа. надеюсь ты разовьешь мысль ;)
    ιιlllιlllι унц-унц
  • Givi

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

    Spritz 9 декабря 2011 г. 15:05, спустя 1 минуту 18 секунд

    artoodetoo, кто кого - звучит весело :)
  • Ivan

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

    Spritz 9 декабря 2011 г. 15:12, спустя 7 минут 25 секунд

    "кто" и "кого"

    "Связь": NoSQL-решение с одним ключом hash, которое равно md5(кто+кого). Базе остается проверять есть ли такой ключ.
    "Друзья": key-value [user_id => friends]. В качестве friends можно хранить json с перечислением "уникальных ключей" друзей ( md5(id + email + дата регистрации) )
    "Друзья" обновляются после каждого изменения/закругления или кроном из "генератора" (например, таблицы с тремя ключами - hash, user, friend)
    Спустя 95 сек.
    "Уникальные ключи" друзей нужны для безопасности приватных настроек пользователей, если ты выстраиваешь клиентской частью отображение, потому что тупо id можно подменить, а ключи почти невозможно
  • phpdude

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

    Spritz 9 декабря 2011 г. 15:18, спустя 6 минут 19 секунд

    потому что тупо id можно подменить, а ключи почти невозможно

    ну давай, сессионный ID подмени :-)
    Сапожник без сапог
  • Ivan

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

    Spritz 9 декабря 2011 г. 15:56, спустя 37 минут 58 секунд

    Посмотрите исходный код страницы https://plus.google.com/
    Там к сожалению не клиентом работа ведется. Там страница наполняется AF_initDataQueue.push() с параметрами в виде объектов жсона: имя фамилия, 6 рандомных друзей из рандомных кругов пользователя, первые N постов его ленты, путь к фотке, и тд
  • Абырвалг

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

    Spritz 9 декабря 2011 г. 16:05, спустя 8 минут 4 секунды

    artoodetoo, да на уровне мускла такое замутить не сложно, проблема в другом: тормозить будет. Джоин-переджоин - слишком много фильтровать всего. У нас такой же паб-саб в ленте и на локалке вообще не можем читать уже эту ленту, только на продакшене
    Спустя 69 сек.
    вот то, что Ivan описывает - интереснее, но я пока не могу въехать что это он такое пишет
  • artoodetoo

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

    Spritz 10 декабря 2011 г. 4:57, спустя 12 часов 52 минуты 21 секунду

    Ну так давай упрощать. Чем проще схема тем быстрее. Ivan вроде пытается, только непонятно )))
    ιιlllιlllι унц-унц
  • artoodetoo

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

    Spritz 10 декабря 2011 г. 12:07, спустя 7 часов 10 минут 2 секунды

    секрет производительности в сокращении числа запрашиваемых источников. причем неважно SQL или noSQL. в случае SQL это позволяет избавиться от каких-то джойнов или вложенностей.

    если я правильно понял Ivan-а, он предлагает формировать таблицу "друзей" при изменении "кругов". ведь состав кругов изменяются редко. это та избыточность, которая позволяет упростить запрос по ленте на один уровень. may be, may be…

    типичная операция для g+ назначение видимости для поста: кнопка Share. можно добавлять из списка: круг1, круг2, …, мои круги, расширенные круги. как то не вырисовывается эффективная схема.
    опять же неизвестно поведение g+ если я выбрал для поста "мои круги", а потом завел себе новый круг и кого-то туда добавил.
    в доступе фиксируется список кругов на момент Share? или список их пользователей? или буквально "все кто в текущий момент в кругах"? — это надо проверить эскрементально
    ιιlllιlllι унц-унц

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