Rafał Słota - Student of Computer Science at AGH University of Science and Technology. Erlang and C++ Developer of PLGrid PLUS project at ACK Cyfronet AGH. He works mainly on massively distributed and scalable, high availability systems.
Increasing availability of computational platforms like Grids and Clouds generates new challenges in the field of data accessibility. One of the objectives of PL-Grid PLUS project  is to provide a meta file system operating in user space, which virtualizes organizationally and geographically distributed, heterogeneous storage systems - called VeilFS .
As a basic technology of VeilFS implementation Erlang/OTP  and noSQL database BigCouch  were selected. This choice of technology ensures the implementation of many of system requirements, but also affects the rise of many difficulties especially in terms of system security and performance of I/O operations.
In this paper, the authors discuss problems encountered during the VeilFS implementation.
Description of VeilFS implementation:
A key element of VeilFS is management cluster which handles requests from clients. One cluster cooperates with thousands of clients and each client sends several requests concurrently. To meet this challenge, each machine in cluster is able to host all kinds of VeilFS modules. The module processes each request with a new process. The load of modules and nodes is monitored and instances of modules are dynamically added/deleted. It causes a problem with requests' routing. For this reason, the requests dispatcher works at each node. Additionally, the dispatcher works as a load balancer.
Erlang/OTP is a natural choice for realization of this architecture. Unfortunately, this raises certain problems in the implementation of some parts of the system.
Security and performance issues:
One of the key requirements for VeilFS are system security and its performance in terms of I/O operations.
To meet the security requirements:
- open ports were reduced to 443 (HTTPS) and 53 (DNS) only,
- all network traffic, including file data, is encrypted using SSL,
- authentication is achieved with Grid Security Infrastructure (GSI) and OpenID.
To meet the I/O performance requirements:
- the most critical parts of I/O infrastructure were implemented in C language, as it offers low-level interfacing to storage systems,
- own mechanism of communication with DB was created.
During the presentation the possibility of obtaining high VeilFS requirements using Erlang/OTP, and the problems and solutions associated with obtaining security and performance of I/O operations, will be discussed.
Acknowledgments. This research is supported partly by the European Regional Development Fund program no. POIG.02.03.00-00-096/10 as part of the PL-Grid Plus and AGH-UST grant nr 11.11.230.015. Thanks go to the rest of our team, especially to Jacek Kitowski and Renata Słota for their support and many discussions.
1. PL-Grid PLUS project - http://www.plgrid.pl/en/projects/plus
2. R. Słota, L. Dutka, B. Kryza, D. Nikolow, D. Król, M. Wrzeszcz, J. Kitowski, Storage Systems for Organizationally Distributed Environments - PLGrid PLUS Case Study, presented at PPAM 2013, Warsaw, 2013; accepted for publication in LNCS
3. Erlang Programming Language - http://www.erlang.org
4. BigCouch - A Highly Available, Fault-tolerant, Clustered Version of Apache CouchDB - http://bigcouch.cloudant.com