libzarr
Header-only C++17 Zarr v2/v3, WASM-compatible
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
sharding.hpp File Reference
#include <cstdint>
#include <limits>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "libzarr/codecs.hpp"
#include "libzarr/detail/common.hpp"
#include "libzarr/metadata.hpp"
#include "libzarr/store.hpp"
#include "libzarr/types.hpp"
#include "libzarr/v2.hpp"
#include "libzarr/v3.hpp"

Go to the source code of this file.

Classes

struct  zarr::shard::Placement
 
struct  zarr::shard::Extent
 

Namespaces

namespace  zarr::shard
 

Functions

Placement zarr::shard::place (const ArrayMeta &meta, const std::string &path, const std::vector< std::uint64_t > &inner_index, std::size_t level=0)
 
Extent zarr::shard::extent (const ArrayMeta &meta, const Bytes &index_bytes, std::uint64_t slot, std::size_t level=0)
 
Bytes zarr::shard::pack (const ArrayMeta &meta, const std::vector< std::optional< Bytes > > &entries, std::size_t level=0)
 

Detailed Description

The sharding_indexed codec, modeled as a Store adapter rather than a codec: a shard is simply the outer chunk's stored object, and ShardStore maps inner-chunk keys onto byte ranges of it via the trailing (or leading) index. The array machinery above stays completely unaware, and nested sharding falls out as ShardStore-wrapping-ShardStore.