Любая идея / предположение о том, как твиттер сохраняет свои твиты в базе данных и обновляет их в режиме реального времени - PullRequest
0 голосов
/ 23 февраля 2011

Я делаю сайт типа твиттер (не такой большой, как твиттер :), но без использования API-интерфейса для твиттера), я должен решить, какую базу данных мне следует использовать и как поддерживать ее в согласованном состоянии.

Основная проблема: предположим, что мой веб-сайт является клоном Twitter (это облегчит мой вопрос), если у меня есть пользователь «А», у которого 100 друзей, и все его друзья пишут в Твиттере что-то одновременно, когда логи «А» так что в этот момент твиты будут извлечены из базы данных, но база данных обновляется сообщениями его друзей => база данных находится в несогласованном состоянии

Q1> Каким будет лучшее решение? поддерживать 2 базы данных, использовать многопоточность и т. д.? Может кто-нибудь объяснить подробно.

Q2> Какая база данных лучше всего подойдет для этого конкретного случая?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011

Twitter использует базу данных noSQL под названием cassandra.
Присмотритесь сюда: Apache Cassandra

0 голосов
/ 23 февраля 2011

когда кто-то пишет в таблицу базы данных - сама таблица не заблокирована, поэтому другие могут писать туда одновременно. И прочитайте это. Таким образом, пользователь А получит все, что другие успели написать (если их транзакции были успешно совершены). Так что я не вижу здесь никакого несоответствия

...