Developing a Data Storage Back-End Module

Introduction

The current CDMI server implementation allows you to write different storage back-end modules. These modules can be injected at any deployed CDMI server and connects a specific storage back-end to the CDMI server.

This guide describes the basic steps to develop your own storage back-end module, that is used for the data path of a CDMI server.

Getting Started

To get started please follow the steps described in the Developing the CDMI Server section to set-up your development environment.

The data path module still has to be developed within the CDMI server project at this moment, but you might be able to use a similar procedure as described in the Developing a QoS Storage Back-End Module section in the future.

Spring Profiles

At the moment, the data path modules are configured via Spring Profiles.

To activate different profiles you have to configure the CDMI service accordingly, see the Configuration section.

Example File-System Data Path

The default file-system data path configuration can be found at edu.kit.scc.filesystem.FilesystemConfiguration and edu.kit.scc.filesystem.FilesystemBeanConfiguration.

  • edu.kit.scc.filesystem.FilesystemConfiguration: this configuration is used to set-up directories and meta-data files at the server start-up phase

  • edu.kit.scc.filesystem.FilesystemBeanConfiguration: this configuration is used to wire the data path implementations with the CDMI data access objects (Java Beans)

Your own module would have to provide a new Spring profile and according configuration.

Moreover, you need to implement the CDMI data access objects (DAOs). Current minimum recommended DAOs are:

  • org.snia.cdmiserver.daoCapabilityDao

  • org.snia.cdmiserver.CdmiObjectDao

  • org.snia.cdmiserver.ContainerDao

  • org.snia.cdmiserver.DataObjectDao

For further help you can look at the concrete DAO implementations for the example file-system data path.

Last updated