oid_t DataTable::AddDefaultTileGroup() { column_map_type column_map; oid_t tile_group_id = INVALID_OID; // Figure out the partitioning for given tilegroup layout column_map = GetTileGroupLayout((LayoutType)peloton_layout_mode); // Create a tile group with that partitioning std::shared_ptr<TileGroup> tile_group(GetTileGroupWithLayout(column_map)); assert(tile_group.get()); tile_group_id = tile_group->GetTileGroupId(); LOG_TRACE("Trying to add a tile group "); { LOG_TRACE("Added a tile group "); tile_group_lock_.WriteLock(); tile_groups_.push_back(tile_group_id); tile_group_lock_.Unlock(); // add tile group metadata in locator catalog::Manager::GetInstance().AddTileGroup(tile_group_id, tile_group); // we must guarantee that the compiler always add tile group before adding // tile_group_count_. COMPILER_MEMORY_FENCE; tile_group_count_++; LOG_TRACE("Recording tile group : %u ", tile_group_id); } return tile_group_id; }
oid_t DataTable::AddDefaultTileGroup(const size_t &active_tile_group_id) { column_map_type column_map; oid_t tile_group_id = INVALID_OID; // Figure out the partitioning for given tilegroup layout column_map = GetTileGroupLayout((LayoutType)peloton_layout_mode); // Create a tile group with that partitioning std::shared_ptr<TileGroup> tile_group(GetTileGroupWithLayout(column_map)); PL_ASSERT(tile_group.get()); tile_group_id = tile_group->GetTileGroupId(); LOG_TRACE("Added a tile group "); tile_groups_.Append(tile_group_id); // add tile group metadata in locator catalog::Manager::GetInstance().AddTileGroup(tile_group_id, tile_group); COMPILER_MEMORY_FENCE; active_tile_groups_[active_tile_group_id] = tile_group; // we must guarantee that the compiler always add tile group before adding // tile_group_count_. COMPILER_MEMORY_FENCE; tile_group_count_++; LOG_TRACE("Recording tile group : %u ", tile_group_id); return tile_group_id; }