Índices Distribuidos

 

Aunque existen muy buenos algoritmos de indexación, realizar todo su proceso para la Web, por ejemplo,  en una simple maquina  puede ser demasiado pesado y tomaría gran cantidad de tiempo.  Por esta razón es que más frecuentemente se utilizan índices distribuidos, que permiten su creación y ejecución entre varias maquinas. Para este fin los clusters son especialmente populares ya que son un conjunto de maquinas que permiten cooperación entre procesadores sin causar congestión y se puede utilizar la memoria RAM de todas como una única memoria principal distribuida [1].
Para la evaluación de consultas, su procesamiento debe distribuirse entre las diferentes maquinas. Sin embargo pese a que el trabajo se reparte bien la cantidad de consultas respondida por segundo (throughput) no es tan escalable y el tiempo de respuesta puede verse un poco afectado [1].  Pero como dijimos antes sería muy difícil ejecutar todo en una sola maquina, en especial para efectos de creación.
A continuación se explicarán algunos métodos para la creación de índices distribuidos:
El primer método consiste en los siguientes pasos [1]:

  1. Se divide la colección entre todas las maquinas.
  2. Cada maquina construye un subíndice local.
  3. Luego cada máquina se asocia con otra, de modo que en un punto una sola maquina tiene el índice completo.
  4. Esta maquina principal es la que distribuye el vocabulario entre las restantes.
  5. Finalmente todo el índice es grabado en un único disco duro para lograr un índice centralizado.

Creacion indice distribuido
Creación de índice distribuido. Tomado de [1]

El segundo método es llamado MapReduce, y se basa en la idea de dividir el trabajo en pequeños fragmentos, de modo que se procesen rápido y que en caso de que alguna maquina falle su fragmento pueda ser fácilmente asignado a otra máquina.