| 150 | } |
| 151 | |
| 152 | std::vector<DataConfig> divideFiles(const DataConfig& data, int num) { |
| 153 | // evenly divide files |
| 154 | std::vector<DataConfig> parts; |
| 155 | for (int i = 0; i < num; ++i) { |
| 156 | DataConfig dc = data; dc.clear_file(); |
| 157 | for (int j = 0; j < data.file_size(); ++j) { |
| 158 | if (j % num == i) dc.add_file(data.file(j)); |
| 159 | int32 load_limit = data.max_num_files_per_worker(); |
| 160 | if (load_limit >= 0 && dc.file_size() >= load_limit) { |
| 161 | break; |
| 162 | } |
| 163 | } |
| 164 | parts.push_back(dc); |
| 165 | } |
| 166 | return parts; |
| 167 | } |
| 168 | |
| 169 | DataConfig shuffleFiles(const DataConfig& data) { |
| 170 | DataConfig ret = data; ret.clear_file(); |
no test coverage detected