Popularity
1.8
Growing
Activity
1.7
Growing
20
10
2

Description

A set of components to take the most advantage of performance and capacity of Azure Storage.

Hydra is Azure Subscription agnostic, which means it is possible to use Storage Accounts from different Azure Subscriptions. This functionality gives the developer configurable IOPS and Disk Space with no upper limits.

Code Quality Rank: L5
Programming language: C#
License: Copyright Mailcloud 2015
Tags: Distributed     Database     Azure     Nosql     Storage     table     Azure Storage     Azure Table Storage     Sharding     Shard    
Latest version: v2.0.0

Mailcloud.Hydra alternatives and similar packages

Based on the "Database" category.
Alternatively, view Mailcloud.Hydra alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Mailcloud.Hydra or a related project?

Add another 'Database' Package

README

Obsolete

This repository will soon be replaced by a .NET Standard 2.1 version, courtesy of Surveily Sp. z o.o.

Hydra

NuGet NuGet Join the chat at https://gitter.im/Mailcloud/Hydra

A set of components to take the most advantage of performance and capacity of Azure Storage.

Hydra is Azure Subscription agnostic, which means it is possible to use Storage Accounts from different Azure Subscriptions. This functionality gives the developer configurable IOPS and Disk Space with no upper limits.

Overview

Link

Hydra.Core

class Hydra : IHydra

A central component for scaling across multiple Storage Accounts. It is using an ISharding strategy to compute consistent hashes that pick a right Storage Account by key provided.

class JumpSharding : ISharding

Default implementation of ISharding provided is JumpSharding that implement's Jump Consistent Hash.

Disclaimer

Hydra.Core doesn't manage shard migration, which means you are constrained the amount of Storage Accounts you start of with. The more the better.

Advanced usage

It is possible to have multiple instances of Hydra, configured to point at different and/or the same Storage Accounts, with different and/or the same ISharding implementations. That feature gives the developer maximum flexibility for making sure the right data is distributed in the right way.

Example

Example usage can be found in the Hydra.Tests.Integration namespace.

Hydra.Events

class StreamContainer : IStreamContainer

A central component for managing Stream's underlying storage. It requires an IHydra component to gain access to the storage.

class Stream : IStream

This component is in charge of writing and reading events to a stream in storage.

Disclaimer

Hydra.Events has a limitation dictated by Azure Storage. Currently one stream can consist of up to 50,000 events and 195GB of space.

Example

Example usage can be found in the Hydra.Tests.Integration namespace.