Sign inSign up

gauteh/dars

By gauteh

•Updated over 5 years ago

𓃢 A fast and light OPeNDAP server

Image
1

295

gauteh/dars repository overview

Build Status Docker Automated build Rust nightly

⁠𓃢 DARS

DARS is an asynchronous DAP/2 server written in Rust aimed at being fast and lightweight. It supports a subset of the OPeNDAP protocol⁠. It aims to only serve the DAP protocol, not common services like a catalog or a WMS.

See below for installation instructions⁠.

⁠OPeNDAP server implementation and file formats

Variable and hyperslab constraints⁠, except strides, are implemented. File formats based on HDF5 are supported:

HDF5 is read through hidefix⁠, which is an experimental HDF5 reader for concurrent reading.

⁠Some simple benchmarks

It is difficult to do meaningful benchmarks. However, here is an attepmt to show a simple comparsion between Dars, Thredds and Hyrax. See comparsion/report.md⁠ and comparison/benchmarks.sh⁠ for more details. wrk⁠ is used to measure the maximum requests per second for a duration using 10 concurrent connections. For Thredds and the large dataset wrk2⁠ was used with a limit on 2 request/sec to avoid too many Out-of-memory-errors. The servers were run one at the time using their default docker images. It would be interesting to show latency (hdr)histograms⁠ for the different tests, but the performance (acceptable latency at certain requests per second) between the servers is so different that it is difficult to make any meaningful plots. Still, they should be included in further analysis, but done individiually for each server.

Requests per second for Dars, Thredds and Hyrax

Requests per second for Dars, Thredds and Hyrax

It is also interesting to note that the server load was very different during these benchmarks:

CPU and memory during load testing

⁠Installation and basic usage

Set up rustup nightly⁠.

Running from the repository:

$ cargo run --release

or install with:

$ cargo install --path dars

By default a simple catalog can be explored using a browser, if the catalog is disabled a list of datasets and DAP URLs can be queried at: http://localhost:8001/data/ (use curl -Haccept:application/json http://localhost:8001/data/ to get JSON). Use e.g. ncdump -h http://.. to explore the datasets.

⁠Docker

Use gauteh/dars⁠ or build yourself:

$ docker build -t dars .
$ docker run -it -p 8001:80 dars

mount your data at /data.

Tag summary

Content type

Image

Digest

Size

1.1 GB

Last updated

over 5 years ago

docker pull gauteh/dars