John Readey, The HDF Group
Before there was HSDS, there was h5serv. Released in 2015, h5serv was the first implementation of the HDF Rest API. Designed mainly as a way to demonstrate the RESTful interface for HDF, h5serv had a fairly simple implementation: A single threaded application that on receiving an HTTP request, made the equivalent HDF5 library call and converted the result to a JSON response which was returned to the client.
Though useful for some applications, in the context of building a scalable web service, there were limitations with this approach. Since there was only one process in the h5serv application, each HTTP request had to be completely processed before handling the next one. This made it quite easy to overwhelm the service when multiple clients were making requests. Still h5serv was quite a useful exercise that demonstrated the viability of the HDF REST API and was the first target used in the development of the h5pyd Python client library. In fact, other than a few extensions, the HDF REST API has been more or less unchanged since the h5serv release. This is due mainly to the thoughtful design work that went into the creation of the interface. Case in point, this early white paper on RESTful HDF5 is still a good read.
While the h5serv validated the HDF Rest API, to build a truly scalable web service an entirely new design was needed and that was the basis for the development of HSDS. Thanks to its container based implementation and task-based parallelism, HSDS can scale with the number of clients and the number of HDF objects.
All good things must end and now that HSDS is established, The HDF Group will no longer be supporting h5serv. Of course, everyone is free to continuing using it, but at this time it seems a better investment of The HDF Group’s resources to support and enhance HSDS going forward.
If you are an h5serv user and have questions about migrating to HSDS, please contact help@hdfgroup.org or post to the HSDS forum: https://forum.hdfgroup.org/c/hsds. We’ll do our best to answer any questions you might have.