ndbd es el proceso que se usa para tratar todos los datos en las tablas usando el motor de almacenamiento NDB Cluster. Este proceso fuerza un nodo de almacenamiento a que cumpla el tratamiento de transacciones distribuídas, recuperación de nodos, realización de checkpoints, copia de seguridad en línea, y tareas relacionadas.
En MySQL Cluster, un conjunto de procesos ndbd cooperan para tratar datos. Estos procesos pueden ejecutarse en la misma máquina (equipo) o en máquinas distintas. Las correspondencias entre nodos de datos y máquinas cluster son completamente configurables.
        En MySQL 5.0, ndbd genera un conjunto de
        ficheros de log que se guardan en el directorio especificado por
        DataDir en el fichero de configuración.
        Estos ficheros de log se listan a continuación. Tenga en cuenta
        que <NodeID> representa el
        identificador único del nodo. Por ejemplo,
        ndb_2_error.log es el log de error generado
        por el nodo de almacenamiento cuyo ID de nodo es
        2.
      
            ndb_
            es un fichero que contiene registros de todas las caídas
            que ha encontrado el proceso referenciado
            ndbd. Cada registro en este fichero
            contiene un breve mensaje de error y una referencia a un
            fichero de traceo para este fallo. Una entrada típica en
            este fichero puede ser parecida a:
          <NodeID>_error.log
Date/Time: Saturday 30 July 2004 - 00:20:01 Type of error: error Message: Internal program error (failed ndbrequire) Fault ID: 2341 Problem data: DbtupFixAlloc.cpp Object of reference: DBTUP (Line: 173) ProgramName: NDB Kernel ProcessID: 14909 TraceFile: ndb_2_trace.log.2 ***EOM***
            ndb_
            es un fichero de traceo que describe exactamente qué ha
            ocurrido jusnto antes de que ocurra el error. Esta
            información es útil para su análisis por parte del equipo
            de desarrollo de MySQL Cluster .
          <NodeID>_trace.log.<TraceID>
            Es posible configurar el número de estos ficheros de traceo
            que se crean antes que los ficheros antiguos se
            sobreescriban. <TraceID> es
            un número que se incrementa para cada fichero de traceo
            sucesivo.
          
            ndb_
            es el fichero que se encarga del siguiente número de traceo
            para fichero a asignar.
          <NodeID>_trace.log.next
            ndb_
            es un fichero que contiene cualquier salida de datos del
            proceso ndbd . Este fichero se crea sólo
            si ndbd se arranca como demonio.
          <NodeID>_out.log
            ndb_
            es un fichero que contiene el ID de proceso del proceso
            ndbd cuando se arranca como demonio.
            También funciona como fichero de bloqueo para evitar
            arrancar los nodos con el mismo identificador.
          <NodeID>.pid
            ndb_
            es un fichero usado sólo en versiones de depuración de
            ndbd, donde es posible tracear toda la
            entrada, salida, y mensajes internos con sus datos en el
            proceso ndbd .
          <NodeID>_signal.log
Se recomiendo no usar un directorio montado mediante NFS porque en algunos entornos puede causar problemas donde el bloqueo del fichero pid sigue en efecto tras la finalización del proceso.
Al reiniciar ndbd puede ser necesario especificar un nombre de equipo del servidor de administración y el puerto en que está escuchando. (Opcionalmente, se puede especificar el ID de nodo que usará el proceso.
shell> ndbd --connect-string="nodeid=2;host=ndb_mgmd.mysql.com:1186"
        Consulte Sección 16.4.4.2, “El connectstring de MySQL Cluster” para más
        información sobre este tema.
      
Cuando ndbd arranca, inicia dos procesos. El primero de ellos se llama el proceso “angel process”; su trabajo es descubrir cuándo se completa el proceso de ejecución, y luego reinicia el proceso ndbd si se configura para hacerlo. Por lo tanto, is trata de matar ndbd via comando Unix kill , es necesario matar a ambos procesos. Una forma más adecuada de matar un proceso ndbd es usar el cliente de administración y parar el proceso desde allí.
El proceso en ejecución usa un flujo para lectura, escritura y escaneo de datos, así como otras actividades. Este flujo se implementa asíncronamente para que pueda tratar fácilmente miles de actividades concurrentes. Además, un flujo watch-dog supervisa el flujo de ejecución para asegurarse que no se cuelga en un bucle infinito. Un pool de flujos trata ficheros de entrada/salida, siendo cada flujo capaz de tratar un fichero abierto. Los flujos pueden usarse por las conexiones en el proceso de transporet de ndbd . En un sistema que realice un gran número de operaciones, incluyendo actualizaciones, el proceso ndbd consume hasta 2 CPUs si se permite hacerlo. Para máquinas con varias CPUs se recomienda usar varios procesos ndbd que pertenecen a diferentes grupos de nodos.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

