VeloGraphX
High-performance dynamic graph analytics in C++20
Loading...
Searching...
No Matches
velographx::storage Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  BlockedAdjacency
 
struct  CompressionRecommendation
 
struct  FixedWidthDeltaBlock
 
struct  SimdFriendlyAdjacency
 

Typedefs

using VertexId = std::uint32_t
 

Enumerations

enum class  VectorDecodeBackend { scalar , avx2 , neon }
 
enum class  CompressionCodec { variable_byte , simd_friendly_fixed_width }
 

Functions

std::vector< std::uint32_t > delta_encode (const std::vector< VertexId > &ids)
 
std::vector< VertexIddelta_decode (const std::vector< std::uint32_t > &deltas)
 
void variable_byte_encode_uint32 (std::uint32_t value, std::vector< std::uint8_t > &out)
 
std::uint32_t variable_byte_decode_uint32 (const std::vector< std::uint8_t > &data, std::size_t &offset)
 
std::vector< std::uint8_t > variable_byte_delta_encode (const std::vector< VertexId > &ids)
 
std::vector< VertexIdvariable_byte_delta_decode (const std::vector< std::uint8_t > &data)
 
BlockedAdjacency blocked_variable_byte_encode (const std::vector< VertexId > &ids, std::size_t block_size=128)
 
std::vector< VertexIdblocked_variable_byte_decode (const BlockedAdjacency &encoded)
 
std::uint8_t required_lane_bytes (std::uint32_t max_delta) noexcept
 
void append_fixed_width_uint32 (std::uint32_t value, std::uint8_t lane_bytes, std::vector< std::uint8_t > &out)
 
std::uint32_t read_fixed_width_uint32 (const std::vector< std::uint8_t > &payload, std::size_t offset, std::uint8_t lane_bytes)
 
SimdFriendlyAdjacency simd_friendly_delta_encode (const std::vector< VertexId > &ids, std::size_t block_size=128)
 
std::vector< VertexIdsimd_friendly_delta_decode (const SimdFriendlyAdjacency &encoded)
 
double compression_ratio_bytes (const std::vector< VertexId > &ids, const std::vector< std::uint8_t > &encoded) noexcept
 
double compression_ratio_bytes (const std::vector< VertexId > &ids, const SimdFriendlyAdjacency &encoded) noexcept
 
VectorDecodeBackend vector_decode_backend () noexcept
 
std::vector< VertexIdsimd_friendly_delta_decode_vectorized (const SimdFriendlyAdjacency &encoded)
 
CompressionRecommendation recommend_compression_codec (const std::vector< VertexId > &ids, std::size_t block_size=128, double max_fixed_width_overhead=1.10)
 

Typedef Documentation

◆ VertexId

using velographx::storage::VertexId = typedef std::uint32_t

Definition at line 12 of file compressed_adjacency.hpp.

Enumeration Type Documentation

◆ CompressionCodec

Enumerator
variable_byte 
simd_friendly_fixed_width 

Definition at line 11 of file compression_policy.hpp.

◆ VectorDecodeBackend

Enumerator
scalar 
avx2 
neon 

Definition at line 119 of file compressed_decode_simd.hpp.

Function Documentation

◆ append_fixed_width_uint32()

void velographx::storage::append_fixed_width_uint32 ( std::uint32_t  value,
std::uint8_t  lane_bytes,
std::vector< std::uint8_t > &  out 
)
inline

Definition at line 145 of file compressed_adjacency.hpp.

Referenced by simd_friendly_delta_encode().

◆ blocked_variable_byte_decode()

◆ blocked_variable_byte_encode()

◆ compression_ratio_bytes() [1/2]

double velographx::storage::compression_ratio_bytes ( const std::vector< VertexId > &  ids,
const SimdFriendlyAdjacency encoded 
)
inlinenoexcept

Definition at line 237 of file compressed_adjacency.hpp.

◆ compression_ratio_bytes() [2/2]

double velographx::storage::compression_ratio_bytes ( const std::vector< VertexId > &  ids,
const std::vector< std::uint8_t > &  encoded 
)
inlinenoexcept

Definition at line 230 of file compressed_adjacency.hpp.

◆ delta_decode()

std::vector< VertexId > velographx::storage::delta_decode ( const std::vector< std::uint32_t > &  deltas)
inline

Definition at line 26 of file compressed_adjacency.hpp.

Referenced by variable_byte_delta_decode().

◆ delta_encode()

std::vector< std::uint32_t > velographx::storage::delta_encode ( const std::vector< VertexId > &  ids)
inline

Definition at line 14 of file compressed_adjacency.hpp.

Referenced by variable_byte_delta_encode().

◆ read_fixed_width_uint32()

std::uint32_t velographx::storage::read_fixed_width_uint32 ( const std::vector< std::uint8_t > &  payload,
std::size_t  offset,
std::uint8_t  lane_bytes 
)
inline

Definition at line 151 of file compressed_adjacency.hpp.

Referenced by simd_friendly_delta_decode().

◆ recommend_compression_codec()

CompressionRecommendation velographx::storage::recommend_compression_codec ( const std::vector< VertexId > &  ids,
std::size_t  block_size = 128,
double  max_fixed_width_overhead = 1.10 
)
inline

◆ required_lane_bytes()

std::uint8_t velographx::storage::required_lane_bytes ( std::uint32_t  max_delta)
inlinenoexcept

Definition at line 139 of file compressed_adjacency.hpp.

Referenced by simd_friendly_delta_encode().

◆ simd_friendly_delta_decode()

◆ simd_friendly_delta_decode_vectorized()

◆ simd_friendly_delta_encode()

◆ variable_byte_decode_uint32()

std::uint32_t velographx::storage::variable_byte_decode_uint32 ( const std::vector< std::uint8_t > &  data,
std::size_t &  offset 
)
inline

Definition at line 51 of file compressed_adjacency.hpp.

Referenced by variable_byte_delta_decode().

◆ variable_byte_delta_decode()

std::vector< VertexId > velographx::storage::variable_byte_delta_decode ( const std::vector< std::uint8_t > &  data)
inline

Definition at line 74 of file compressed_adjacency.hpp.

References delta_decode(), and variable_byte_decode_uint32().

Referenced by blocked_variable_byte_decode().

◆ variable_byte_delta_encode()

std::vector< std::uint8_t > velographx::storage::variable_byte_delta_encode ( const std::vector< VertexId > &  ids)
inline

◆ variable_byte_encode_uint32()

void velographx::storage::variable_byte_encode_uint32 ( std::uint32_t  value,
std::vector< std::uint8_t > &  out 
)
inline

Definition at line 43 of file compressed_adjacency.hpp.

Referenced by variable_byte_delta_encode().

◆ vector_decode_backend()

VectorDecodeBackend velographx::storage::vector_decode_backend ( )
inlinenoexcept