El acrónimo slurpd significa: Standalone LDAP Update Replication Daemon y su misión es propagar los cambios de una base de datos slapd hacia otra. Si slapd está configurado para producir logs de replicación, slurpd los lee y envía los cambios a las instancias slapd esclavas a través del protocolo LDAP. slurpd se arranca, normalmente, en el arranque del sistema.
Una vez arrancado, slurpd normalmente hace un fork de si mismo y se independiza de la tty que lo ha llamado, luego lee el log de replicación (dado bien por la directiva replogfile del archivo de configuración de slapd, bien por la opción -r de la línea de comandos). Si el archivo log de replicación no existe o está vacío, slurpd se duerme. Después, cada cierto tiempo, se despierta y verifica si hay cambios que propagar.
Cuando slurpd encuentra cambios a propagar hacia las instancias slapd esclavas, bloquea el log de replicación, hace una copia privada del mismo, libera el bloqueo anteriormente puesto y crea un fork de si mismo para réplica de slapd que ha de ser actualizada. Cada proceso hijo se asocia con el demonio slapd esclavo, y envía los cambios.
Un ejemplo de replicación podría ser:
El cliente LDAP envía una modificación LDAP al slapd esclavo.
El slapd esclavo devuelve una remisión hacia el cliente LDAP, referenciandolo hacia el servidor slapd maestro.
El cliente LDAP envía la operación de modificación LDAP hacia el slapd maestro.
El slapd maestro realiza la operación de modificación, escribe los cambios en su archivo log de replicación y devuelve un código de éxito hacia el cliente.
El proceso slurpd verifica que se ha añadido una nueva entrada al archivo log de replicación, lee la entrada del log de replicación y envía el cambio hacia el servidor slapd esclavo vía LDAP.
El servidor slapd esclavo realiza la operación de modificación y un código de éxito hacia el proceso slurpd.