libgrape-lite
A C++ library for parallel graph processing
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
grape::BasicVCDSFragmentLoader< FRAG_T > Class Template Reference

Public Member Functions

 BasicVCDSFragmentLoader (const CommSpec &comm_spec, int64_t vnum, int load_concurrency)
 
void RecordEdge (const oid_t &src, const oid_t &dst)
 
void AllocateBuffers ()
 
void AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data)
 
void ConstructFragment (std::shared_ptr< fragment_t > &fragment)
 

Private Types

using fragment_t = FRAG_T
 
using oid_t = typename fragment_t::oid_t
 
using vdata_t = typename fragment_t::vdata_t
 
using edata_t = typename fragment_t::edata_t
 
using edge_t = typename fragment_t::edge_t
 
using vertices_t = typename fragment_t::vertices_t
 

Private Member Functions

void edgeRecvRoutine ()
 

Private Attributes

std::vector< std::vector< size_t > > partition_bucket_edge_num_
 
CommSpec comm_spec_
 
VCPartitioner< oid_t > partitioner_
 
int bucket_num_
 
std::unique_ptr< VCEdgeBucketer< oid_t > > bucketer_
 
int64_t vnum_
 
int load_concurrency_
 
std::vector< std::atomic< size_t > > bucket_cursor_
 
std::vector< edge_t > edges_
 
std::vector< ShuffleOut< oid_t, oid_t, edata_t > > edges_to_frag_
 
std::thread edge_recv_thread_
 
bool recv_thread_running_
 
BlockingQueue< ShuffleBufferTuple< oid_t, oid_t, edata_t > > got_edges_
 
std::vector< std::thread > edge_move_threads_
 

Static Private Attributes

static constexpr size_t shuffle_out_size = 4096000
 
static constexpr int edge_tag = 6