All Projects → janelia-flyem → Dvid

janelia-flyem / Dvid

Licence: other
Distributed, Versioned, Image-oriented Dataservice

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Dvid

bftkv
A distributed key-value storage that's tolerant to Byzantine fault.
Stars: ✭ 27 (-84.48%)
Mutual labels:  big-data, key-value
bigtable
TypeScript Bigtable Client with 🔋🔋 included.
Stars: ✭ 13 (-92.53%)
Mutual labels:  big-data, key-value
Redislite
Redis in a python module.
Stars: ✭ 464 (+166.67%)
Mutual labels:  big-data, key-value
Geni
A Clojure dataframe library that runs on Spark
Stars: ✭ 152 (-12.64%)
Mutual labels:  big-data
Bolt
An embedded key/value database for Go.
Stars: ✭ 12,415 (+7035.06%)
Mutual labels:  key-value
Erplab
ERPLAB Toolbox is a free, open-source Matlab package for analyzing ERP data. It is tightly integrated with EEGLAB Toolbox, extending EEGLAB’s capabilities to provide robust, industrial-strength tools for ERP processing, visualization, and analysis. A graphical user interface makes it easy for beginners to learn, and Matlab scripting provides enormous power for intermediate and advanced users.
Stars: ✭ 166 (-4.6%)
Mutual labels:  neuroscience
Visbrain
A multi-purpose GPU-accelerated open-source suite for brain data visualization
Stars: ✭ 172 (-1.15%)
Mutual labels:  neuroscience
Spark.jl
Julia binding for Apache Spark
Stars: ✭ 153 (-12.07%)
Mutual labels:  big-data
Lucid
High performance and distributed KV store w/ REST API. 🦀
Stars: ✭ 171 (-1.72%)
Mutual labels:  key-value
Fastkv
FastKV is a real-time and high-performance persistent key-value store implemented by mmap. FastKV是由mmap实现的一个高实时性、高性能key-value持久化存储组件。
Stars: ✭ 163 (-6.32%)
Mutual labels:  key-value
Fooof
Parameterizing neural power spectra into periodic & aperiodic components.
Stars: ✭ 162 (-6.9%)
Mutual labels:  neuroscience
Presto
The official home of the Presto distributed SQL query engine for big data
Stars: ✭ 12,957 (+7346.55%)
Mutual labels:  big-data
Brainflow
BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG and other kinds of data from biosensors
Stars: ✭ 170 (-2.3%)
Mutual labels:  neuroscience
Dotnet Etcd
A C# .NET (dotnet) GRPC client for etcd v3 +
Stars: ✭ 157 (-9.77%)
Mutual labels:  key-value
Keyvi
Keyvi - a key value index that powers Cliqz search engine. It is an in-memory FST-based data structure highly optimized for size and lookup performance.
Stars: ✭ 171 (-1.72%)
Mutual labels:  big-data
Kiwi
A minimalistic in-memory key value store.
Stars: ✭ 154 (-11.49%)
Mutual labels:  key-value
Attic Predictionio
PredictionIO, a machine learning server for developers and ML engineers.
Stars: ✭ 12,522 (+7096.55%)
Mutual labels:  big-data
Keyvi
Keyvi - the key value index. It is an in-memory FST-based data structure highly optimized for size and lookup performance.
Stars: ✭ 161 (-7.47%)
Mutual labels:  big-data
Sdb
Simple and fast string based key-value database with support for arrays and json
Stars: ✭ 159 (-8.62%)
Mutual labels:  key-value
Geopyspark
GeoTrellis for PySpark
Stars: ✭ 167 (-4.02%)
Mutual labels:  big-data

DVID Picture

Status: In production use at Janelia. See wiki page for outside lab use of DVID.

Go Report Card GoDoc Travis CI Status

Both high-level and detailed descriptions of DVID and its ecosystem can found here:

High-level architecture of DVID

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

  • Easily extensible data types that allow tailoring of access speeds, storage space, and APIs.
  • The ability to use a variety of storage systems by either creating a data type for that system or using a storage engine, currently limited to ordered key/value databases.
  • A framework for thinking of distribution and versioning of data similar to distributed version control systems like git.
  • A stable science-driven API that can be implemented either by native DVID data types and storage engines or by proxying to other connectomics services like Google BrainMaps, BOSS, etc.

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, annotations, 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 handling data essential for Janelia's connectomics research:

  • image and 64-bit label 3d volumes, including multiscale support
  • 2d images in XY, XZ, YZ, and arbitrary orientation
  • multiscale 2d images in XY, XZ, and YZ, similar to quadtrees
  • sparse volumes, corresponding to each unique label in a volume, that can be merged or split
  • point annotations (e.g., synapse elements) that can be quickly accessed via subvolumes or labels
  • label graphs
  • regions of interest represented via a coarse subdivision of space using block indices
  • 2d and 3d image and label data using Google BrainMaps API and other cloud-based services

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 datatype 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 datatype package with a specialized HTTP API.

DVID allows you to assign different storage systems to data instances within a single repo, which allows great flexibility in optimizing storage for particular use cases. For example, easily compressed label data can be store in fast, expensive SSDs while larger, immutable grayscale image data can be stored in petabyte-scale read-optimized systems.

DVID is written in Go and supports different storage backends, a REST HTTP API, and command-line access (likely minimized in near future). Some components written in C, e.g., storage engines like Leveldb and fast codecs like lz4, are embedded or linked as a library.

Mutations and activity logging can be sent to a Kafka server. We use kafka activity topics to feed Kibana for analyzing DVID performance.

Snapshot of Kibana web page for DVID metrics

DVID has been tested on MacOS X, Linux (Fedora 16, CentOS 6, Ubuntu), and Windows 10+ Bash Shell. It comes out-of-the-box with an embedded leveldb for storage although you can configure other storage backends.

Command-line and HTTP API documentation can be found in help constants within packages or by visiting the /api/help HTTP endpoint on a running DVID server.

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].