¿Cómo se implementa Quora? ¿Qué estructuras de datos y algoritmos se usan internamente?

Quora es un sitio web de preguntas y respuestas donde una comunidad de usuarios hace, responde, edita y organiza preguntas.

¿Cómo funciona Quora?

Los usuarios se registran en Quora con sus nombres reales en lugar de un seudónimo de Internet (nombre de pantalla), y el sitio es esencialmente inutilizable si un usuario no ha iniciado sesión y utiliza cookies. Los usuarios también pueden iniciar sesión con sus cuentas de Google o Facebook utilizando el protocolo OpenID. Pueden votar a favor (me gusta) o rechazar (no me gusta) las respuestas y sugerir modificaciones a las respuestas proporcionadas por otros usuarios.

Tecnologías utilizadas en Quora:

  • Back-end: Pilones y tecnologías de cometas
  • Sistema operativo: Ubuntu Linux
  • Base de datos: MySQL
  • Estructuras de datos (lado del servidor): árboles B + y árboles B
  • Estructuras de datos (lado del cliente): matrices, objetos (matrices asociativas), pila, árbol de sufijos y árbol de prefijos
  • Control de revisión distribuido: Git
  • Sistema de memoria caché de objetos distribuidos: Memcached
  • Servidor proxy inverso: Nginx
  • Servidor de equilibrio de carga: HAProxy
  • Algoritmo de clasificación de respuestas: Algoritmo similar al Google PageRank
  • Tecnología de alojamiento de servidores: tecnología Amazon Elastic Compute Cloud
  • Implementación de infraestructura: implementación de Python PyPy

No es necesario prestar atención a estas complejidades ahora … Quora se encargará de estas …

Disfruta escribiendo !!!

Quora requiere que los usuarios se registren con sus nombres reales en lugar de un nombre de pantalla, y el sitio es esencialmente inutilizable si un usuario no está conectado y utiliza cookies. Los usuarios de Quora también pueden iniciar sesión en Quora con sus cuentas de Google o Facebook utilizando la tecnología OpenID.

Quora usa las tecnologías Pylons y Comet para su backend y Ubuntu Linux como su sistema operativo con MySQL como su base de datos. También usa Git y memcached. Quora usa Nginx como servidor proxy inverso y HAProxy para el equilibrio de carga.

Quora ha desarrollado su propio algoritmo para clasificar las respuestas, que funciona de manera similar a PageRank. Se llama PeopleRank.

El rango de personas funciona de la siguiente manera:

  • Las respuestas con más votos a favor están mejor clasificadas.
  • Las respuestas con más votos negativos se clasifican más abajo.
  • Un voto de un usuario que ha escrito buenas respuestas en el pasado tiene más peso (tanto votos positivos como negativos).
  • Las respuestas escritas por los usuarios que han escrito buenas respuestas en el pasado se clasificarán más arriba.
  • Los votos de personas detectadas para jugar en el sistema (colusión de votos, spam, acoso escolar, etc.) serán ignorados o minimizados. Esto también va en contra de la política y puede resultar en una prohibición.
  • Si un usuario es administrador o revisor no afecta las puntuaciones en este sistema.

Quora utiliza la tecnología Amazon Elastic Compute Cloud para alojar los servidores que ejecutan su sitio web.

En agosto de 2011, Quora cambió la implementación de Python de su infraestructura de CPython a PyPy, para mejorar el tiempo de respuesta.

Fuente: Quora, http://readwrite.com/

Quora usa las tecnologías Pylons y Comet para su backend y Ubuntu Linux como su sistema operativo con MySQL como su base de datos. También usa Git y memcached. Quora usa Nginx como servidor proxy inverso y HAProxy para el equilibrio de carga. Quora ha desarrollado su propio algoritmo para clasificar las respuestas, que funciona de manera similar al PageRank. Quora utiliza la tecnología Amazon Elastic Compute Cloud para alojar los servidores que ejecutan su sitio web. En agosto de 2011, Quora cambió la implementación de Python de su infraestructura de CPython a PyPy, para mejorar el tiempo de respuesta.