Kyoto Cabinet
|
#include <kcdbext.h>
Classes | |
class | FlushThread |
Cache flusher. | |
class | MapChecker |
Checker for the map process. | |
class | MapVisitor |
Visitor for the map process. | |
struct | MergeLine |
Front line of a merging list. | |
class | ReduceTaskQueue |
Task queue for parallel reducer. | |
class | ValueIterator |
Value iterator for the reducer. More... | |
Public Types | |
enum | Option { XNOLOCK = 1 << 0, XPARAMAP = 1 << 1, XPARARED = 1 << 2, XPARAFLS = 1 << 3, XNOCOMP = 1 << 8 } |
Execution options. More... | |
Public Member Functions | |
MapReduce () | |
Default constructor. | |
virtual | ~MapReduce () |
Destructor. | |
virtual bool | map (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)=0 |
Map a record data. | |
virtual bool | reduce (const char *kbuf, size_t ksiz, ValueIterator *iter)=0 |
Reduce a record data. | |
virtual bool | preprocess () |
Preprocess the map operations. | |
virtual bool | midprocess () |
Mediate between the map and the reduce phases. | |
virtual bool | postprocess () |
Postprocess the reduce operations. | |
virtual bool | log (const char *name, const char *message) |
Process a log message. | |
bool | execute (BasicDB *db, const std::string &tmppath="", uint32_t opts=0) |
Execute the MapReduce process about a database. | |
void | tune_storage (int32_t dbnum, int64_t clim, int64_t cbnum) |
Set the storage configurations. | |
void | tune_thread (int32_t mapthnum, int32_t redthnum, int32_t flsthnum) |
Set the thread configurations. | |
Protected Member Functions | |
bool | emit (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz) |
Emit a record from the mapper. |
MapReduce framework.
kyotocabinet::MapReduce::MapReduce | ( | ) | [explicit] |
Default constructor.
virtual kyotocabinet::MapReduce::~MapReduce | ( | ) | [virtual] |
Destructor.
virtual bool kyotocabinet::MapReduce::map | ( | const char * | kbuf, |
size_t | ksiz, | ||
const char * | vbuf, | ||
size_t | vsiz | ||
) | [pure virtual] |
Map a record data.
kbuf | the pointer to the key region. |
ksiz | the size of the key region. |
vbuf | the pointer to the value region. |
vsiz | the size of the value region. |
virtual bool kyotocabinet::MapReduce::reduce | ( | const char * | kbuf, |
size_t | ksiz, | ||
ValueIterator * | iter | ||
) | [pure virtual] |
Reduce a record data.
kbuf | the pointer to the key region. |
ksiz | the size of the key region. |
iter | the iterator to get the values. |
virtual bool kyotocabinet::MapReduce::preprocess | ( | ) | [virtual] |
Preprocess the map operations.
virtual bool kyotocabinet::MapReduce::midprocess | ( | ) | [virtual] |
Mediate between the map and the reduce phases.
virtual bool kyotocabinet::MapReduce::postprocess | ( | ) | [virtual] |
Postprocess the reduce operations.
virtual bool kyotocabinet::MapReduce::log | ( | const char * | name, |
const char * | message | ||
) | [virtual] |
Process a log message.
name | the name of the event. |
message | a supplement message. |
bool kyotocabinet::MapReduce::execute | ( | BasicDB * | db, |
const std::string & | tmppath = "" , |
||
uint32_t | opts = 0 |
||
) |
Execute the MapReduce process about a database.
db | the source database. |
tmppath | the path of a directory for the temporary data storage. If it is an empty string, temporary data are handled on memory. |
opts | the optional features by bitwise-or: MapReduce::XNOLOCK to avoid locking against update operations by other threads, MapReduce::XPARAMAP to run the mapper in parallel, MapReduce::XPARARED to run the reducer in parallel, MapReduce::XNOCOMP to avoid compression of temporary databases. |
void kyotocabinet::MapReduce::tune_storage | ( | int32_t | dbnum, |
int64_t | clim, | ||
int64_t | cbnum | ||
) |
Set the storage configurations.
dbnum | the number of temporary databases. |
clim | the limit size of the internal cache. |
cbnum | the bucket number of the internal cache. |
void kyotocabinet::MapReduce::tune_thread | ( | int32_t | mapthnum, |
int32_t | redthnum, | ||
int32_t | flsthnum | ||
) |
Set the thread configurations.
mapthnum | the number of threads for the mapper. |
redthnum | the number of threads for the reducer. |
flsthnum | the number of threads for the internal flusher. |
bool kyotocabinet::MapReduce::emit | ( | const char * | kbuf, |
size_t | ksiz, | ||
const char * | vbuf, | ||
size_t | vsiz | ||
) | [protected] |
Emit a record from the mapper.
kbuf | the pointer to the key region. |
ksiz | the size of the key region. |
vbuf | the pointer to the value region. |
vsiz | the size of the value region. |