Warning: Constant WP_MEMORY_LIMIT already defined in /home/elorenzo/domains/arvo.es/public_html/dspace/wp-config.php on line 94
La estructura del assetstore en Dspace | Hablando de DSpace

La estructura del assetstore

Mientras que el modelo de datos de Dspace (metadatos, workflows, estructura del repositorio, usuarios..) está soportado por la base de datos Oracle o Postgresql, los contenidos de los ítems se almacenan en el sistema de ficheros denominado assetstore.

La configuración tradicional del assetstore se realiza en el fichero dspace.cfg, mediante el parámetro:

assetstore.dir = [dspace]/assetstore para un solo sistema
assetstore.dir = [dspace]/assetstore_0
assetstore.dir.1 = /mnt/other_filesystem/assetstore_1       para más de un sistema.

La localización física de un objeto se guarda en la base de datos por lo que es de especial importancia NO mover los bitstreams entre assestores (además, el backup del assetstore tiene que formar parte de cualquier estrategia de backup). Aunque hay procedimientos para fusionar y mover assetstores, no son triviales, y los explicaremos en algún momento futuro.

Por defecto, los bitstreams nuevos se guardan en el assetstore 0 (es decir el especificado por la propiedad assetstore.dir) Para usar nuevos assetstores (cuando se nos está llenando el que usemos) hay que añadir un linea a dspace.cfg que referencie dónde deben ir los nuevos bitstreams:

assetstore.incoming = 1

Cuando se rearranque Tomcat, los nuevos envíos se archivarán en el assetstore especificado en assetstore.dir.1

Recordemos que además del fichero de contenido «tal cual» que se ingesta en el sistema, Dspace guarda una variedad de ficheros adicionales (los comentamos en este post).  Todos estos ficheros se almacenan en el assetstore en una estructura del tipo:

Clipboard05

 

Siguiendo con este mismo ejemplo,  la referencia de un ítem a «sus» ficheros se encuentra en la tabla bitstream, campo Internal_id. Así, por ejemplo, si me encuentro este identificador,  110832826281924074367996140570931140204, este fichero (bitstream, en nomenclatura dspace) se encuentra buscando los seis primeros dígitos del identificador, que indican en que Subdirectorio de tercer nivel está el item ( 11 >> 08 >> 32) y el nombre real del fichero será 826281924074367996140570931140204 (ha desaparecido toda referencia a xxx.pdf, y similar).

Clipboard07

p.d: Incidentalmente esto parece indicar que el límite máximo de un assetstore es referenciar/almacenar 100*100*100 bitstreams
p.d: Si tenemos mas de un assetstore, deberemos buscar el fichero en el assetstore indicado en el campo bitstream.store_number de la tabla bitstream.

2 Comentarios.

  1. Claudio Escobar

    Interesante el tema del almacenamiento.

    Lo que no me queda claro es si se pueden tener assetstores en diferentes servidores

    • Buenas Claudio, intentaré clarificar esto.
      El almacenamiento puede expandirse a diferentes assetstores, siempre y cuando la máquina en donde Dspace se ejecuta (el sistema de ficheros) pueda «ver» el almacenamiento que Vd le conecte. Desde el punto de vista de DSPACE los assetstores son únicamente directorios del sistema de ficheros, por lo que puede usar cualquier método estándar para «montar» un directorio remotamente, es decir de la propia máquina, desde otros servidores o desde almacenamiento en red. Normalmente se usan métodos estándar en el mundo Unix como NFS o SMB, y hay documentados metodos via SRB.

      No obstante recuerde que los nuevos items se almacenan o dirigen hacia un único assetstore (el indicado en el parámetro assetstore.incoming). No existen aún capacidades de «balanceo» de solicitudes de almacenamiento…que no sabria decirle si es un requisito critico, ya que no parece que las instalaciones Dspace demanden de sus sistemas de almacenamiento rendimientos «premium».
      Saludos
      Emilio