Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 25 Май, 2012, 07:42:13

Страниц: [1] 2 3 ... 6
Печать
Автор Тема: Как гугл плюс устроен внутри?  (Прочитано 766 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Абырвалг    ↓ 
09 Декабрь, 2011, 12:32:09
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

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

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
mario    ↓ 
09 Декабрь, 2011, 02:00:55 , спустя 1 час 28 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

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

с ув. mario.
Контакты
artoodetoo    ↓ 
09 Декабрь, 2011, 07:44:31 , спустя 5 часов 43 минуты 36 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

Абырвалг, а свои мысли у тебя есть как это могло бы быть сделано?
Записан
Givi    ↓ 
09 Декабрь, 2011, 10:53:35 , спустя 3 часа 9 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

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

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Абырвалг    ↓ 
09 Декабрь, 2011, 01:09:44 , спустя 2 часа 16 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31


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

есть, но это не будет работать на таких объемах.
Спустя 2 минуты 9 секунд добавил

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

а я до сих пор ни одной книжке по программингу и не прочитал, кстати. тупобаран
« Последнее редактирование: 09 Декабрь, 2011, 01:09:44 от artoodetoo » Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
artoodetoo    ↓ 
09 Декабрь, 2011, 02:16:29 , спустя 1 час 6 минут 45 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

— Папа, а почему солнышко утром выходит, а вечером заходит?
— Сынок, работает — и хрен с ним!
Записан
Абырвалг    ↓ 
09 Декабрь, 2011, 02:44:14 , спустя 27 минут 45 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

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

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
artoodetoo    ↓ 
09 Декабрь, 2011, 03:03:56 , спустя 19 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

Ну а если тупо:
далее везде "кто" и "кого" - это id в таблице "чуваки".
- таблица "лента". {кто, текст}
- таблица "круги" с {кто, название, читать}
- таблица "отношения" {кто, круг, кого}
 
SELECT лента.*
FROM
 лента INNER JOIN
 чуваки ON чуваки.ид=лента.кто INNER JOIN
 отношения ON отношения.кто=Я AND чуваки.идлента.кто=отношения.кого INNER JOIN
  круги ON круги.кто=Я AND отношения.кого=лента.кто
WHERE
  круги.читать=1
 
 
не?
 
P.S. НЕ, говно. но что-то типа. надеюсь ты разовьешь мысль ;)
« Последнее редактирование: 09 Декабрь, 2011, 03:03:56 от artoodetoo » Записан
Givi    ↓ 
09 Декабрь, 2011, 03:05:14 , спустя 1 минуту 18 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

artoodetoo, кто кого - звучит весело :)
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Ivan    ↓ 
09 Декабрь, 2011, 03:12:39 , спустя 7 минут 25 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

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

phpdude    ↓ 
09 Декабрь, 2011, 03:18:58 , спустя 6 минут 19 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

потому что тупо id можно подменить, а ключи почти невозможно
ну давай, сессионный ID подмени :-)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Ivan    ↓ 
09 Декабрь, 2011, 03:56:56 , спустя 37 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

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

Абырвалг    ↓ 
09 Декабрь, 2011, 04:05:00 , спустя 8 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

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

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
artoodetoo    ↓ 
10 Декабрь, 2011, 04:57:21 , спустя 12 часов 52 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

Ну так давай упрощать. Чем проще схема тем быстрее. Ivan вроде пытается, только непонятно )))
Записан
artoodetoo    ↓ 
10 Декабрь, 2011, 12:07:23 , спустя 7 часов 10 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

секрет производительности в сокращении числа запрашиваемых источников. причем неважно SQL или noSQL. в случае SQL это позволяет избавиться от каких-то джойнов или вложенностей.
 
если я правильно понял Ivan-а, он предлагает формировать таблицу "друзей" при изменении "кругов". ведь состав кругов изменяются редко. это та избыточность, которая позволяет упростить запрос по ленте на один уровень. may be, may be…
 
типичная операция для g+ назначение видимости для поста: кнопка Share. можно добавлять из списка: круг1, круг2, …, мои круги, расширенные круги. как то не вырисовывается эффективная схема.
опять же неизвестно поведение g+ если я выбрал для поста "мои круги", а потом завел себе новый круг  и кого-то туда добавил.
в доступе фиксируется список кругов на момент Share? или список их пользователей? или буквально "все кто в текущий момент в кругах"? — это надо проверить эскрементально
Записан
Страниц: [1] 2 3 ... 6
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd