Skip to content
Bill Katz edited this page Jan 20, 2015 · 23 revisions

Welcome to DVID

DVID is a distributed, versioned, image-oriented datastore written to support Janelia Farm Research Center's brain imaging, analysis and visualization efforts.

DVID aspires to be a "github for large image-oriented data" because each DVID server can manage multiple repositories, each of which contains an image-oriented repo with related data like an image volume, labels, and skeletons. The goal is to provide scientists with a github-like web client + server that can push/pull data to a collaborator's DVID server.

Although DVID is easily extensible by adding custom data types, each of which fulfill a minimal interface (e.g., HTTP request handling), DVID's initial focus is on efficiently storing and retrieving 3d grayscale and label data in a variety of ways:

  • subvolumes
  • images in XY, XZ, YZ, and arbitrary orientation
  • multiscale 2d and 3d, similar to quadtrees and octrees
  • sparse volumes determined by a label
  • label maps that handle mapping of labels X -> Y
  • label graphs
  • regions of interest represented via a coarse subdivision of space using block indices

Each of the above is handled by built-in data types via a Level 2 REST HTTP API implemented by Go language packages within the datatype directory. When dealing with novel data, we typically use the generic keyvalue data type and store JSON-encoded or binary data until we understand the desired access patterns and API. When we outgrow the keyvalue type's GET, POST, and DELETE operations, we create a custom data type package with a specialized HTTP API.

Web app for 3d inspection being served from and sending requests to DVID

Clone this wiki locally