Slide 81
Slide 81 text
SAFE_CALL( mpool_open( params[ "pool" ].as< std::string >().c_str(),
O_RDWR|O_EXCL, &raw_pool, nullptr ) );
std::shared_ptr< mpool > pool( raw_pool, []( mpool *p ) { if( p )
mpool_close( p ); } );
uint64_t log1 = 0;
uint64_t log2 = 0;
if( !params.count( "object" ) ) {
mdc_capacity cap;
memset( reinterpret_cast< void* >( &cap ), 0, sizeof( cap ) );
cap.mdt_captgt = 4 * 1024 * 1024;
SAFE_CALL( mpool_mdc_alloc( pool.get(), &log1, &log2, MP_MED_CAPACITY,
&cap, nullptr ) );
std::cout << "object id: " << log1 << ":" << log2 << std::endl;
SAFE_CALL( mpool_mdc_commit( pool.get(), log1, log2 ) )
}
else {
auto v = params[ "object" ].as< std::string >();
boost::fusion::vector< uint64_t, uint64_t > parsed;
namespace qi = boost::spirit::qi;
if( !qi::parse( v.begin(), v.end(), qi::ulong_long >> ':' >>
qi::ulong_long, parsed ) ) {
mdcͷAPI
mpool_mdc_allocͰmdcΛ࡞Δ
2ຊͷmlog͕࡞ΒΕͯobject id͕2ͭฦͬͯ͘Δ
Ҿͷmdc_capacityͰmlog1ຊ͋ͨΓͷαΠζΛࢦఆ͢Δ