Browse Source

上条没注释完全

pull/2/head
augurier 8 months ago
parent
commit
90a15c06fe
3 changed files with 59 additions and 59 deletions
  1. +4
    -4
      fielddb/field_db.cpp
  2. +54
    -54
      fielddb/field_db.h
  3. +1
    -1
      fielddb/request.cpp

+ 4
- 4
fielddb/field_db.cpp View File

@ -136,7 +136,7 @@ Status FieldDB::HandleRequest(Request &req, const WriteOptions &op) {
//waiting_elasped += env_->NowMicros() - start_waiting;
if(req.done) {
//elapsed += env_->NowMicros() - start_;
count ++;
//count ++;
// dumpStatistics();
return req.s; //在返回时自动释放锁L
}
@ -164,7 +164,7 @@ Status FieldDB::HandleRequest(Request &req, const WriteOptions &op) {
//uint64_t start_meta = env_->NowMicros();
status = metaDB_->Write(op, &MetaBatch);
//write_meta_elapsed += env_->NowMicros() - start_meta;
write_bytes += MetaBatch.ApproximateSize();
//write_bytes += MetaBatch.ApproximateSize();
assert(status.ok());
}
//TODO:index的写入需要在另外一个线程中同时完成
@ -172,14 +172,14 @@ Status FieldDB::HandleRequest(Request &req, const WriteOptions &op) {
//uint64_t start_index = env_->NowMicros();
status = indexDB_->Write(op, &IndexBatch);
//write_index_elapsed += env_->NowMicros() - start_index;
write_bytes += IndexBatch.ApproximateSize();
//write_bytes += IndexBatch.ApproximateSize();
assert(status.ok());
}
if(KVBatch.ApproximateSize() > 12) {
//uint64_t start_kv = env_->NowMicros();
status = kvDB_->Write(op, &KVBatch);
//write_kv_elapsed += env_->NowMicros() - start_kv;
write_bytes += KVBatch.ApproximateSize();
//write_bytes += KVBatch.ApproximateSize();
assert(status.ok());
}
//3. 将meta数据清除

+ 54
- 54
fielddb/field_db.h View File

@ -91,60 +91,60 @@ private:
Status HandleRequest(Request &req, const WriteOptions &op); //
Request *GetHandleInterval(); //
private:
int count = 0;
int count_Batch = 0;
int count_Batch_Sub = 0;
uint64_t elapsed = 0;
uint64_t construct_elapsed = 0;
uint64_t construct_BatchReq_init_elapsed = 0;
uint64_t construct_BatchReq_elapsed = 0;
uint64_t construct_BatchReq_Sub_elapsed = 0;
uint64_t construct_BatchReq_perSub_elapsed = 0;
uint64_t construct_FieldsReq_Read_elapsed = 0;
uint64_t write_elapsed = 0;
uint64_t write_meta_elapsed = 0;
uint64_t write_index_elapsed = 0;
uint64_t write_kv_elapsed = 0;
uint64_t write_clean_elapsed = 0;
uint64_t write_bytes = 0;
uint64_t write_step = 500 * 1024 * 1024;
uint64_t write_bytes_lim = write_step;
uint64_t temp_elapsed = 0;
uint64_t waiting_elasped = 0;
inline void dumpStatistics() {
if(count && count % 500000 == 0 || write_bytes && write_bytes > write_bytes_lim) {
std::cout << "=====================================================\n";
std::cout << "Total Count : " << count;
std::cout << "\tTotal Write Bytes(MB) : " << write_bytes / 1048576.0 << std::endl;
std::cout << "Average Time(ms) : " << elapsed * 1.0 / count;
std::cout << "\tAverage Write rates(MB/s) : " << write_bytes / 1048576.0 / elapsed * 1000000 << std::endl;
std::cout << "Construct Time(ms) : " << construct_elapsed * 1.0 / count << std::endl;
std::cout << "\tConstruct BatchReq Init Time(ms) : " << construct_BatchReq_init_elapsed * 1.0 / count << std::endl;
std::cout << "\tConstruct BatchReq Time(ms) : " << construct_BatchReq_elapsed * 1.0 / count << std::endl;
std::cout << "\tConstruct BatchReq Sub Time(ms) : " << construct_BatchReq_Sub_elapsed * 1.0 / count << std::endl;
std::cout << "\tConstruct BatchReq perSub Time(ms) : " << construct_BatchReq_perSub_elapsed * 1.0 / count_Batch_Sub << std::endl;
std::cout << "\tConstruct FieldsReq Read Time(ms) : " << construct_FieldsReq_Read_elapsed * 1.0 / count << std::endl;
std::cout << "Write Time(ms) : " << write_elapsed * 1.0 / count << std::endl;
std::cout << "\tWrite Meta Time(ms) : " << write_meta_elapsed * 1.0 / count << std::endl;
std::cout << "\tWrite Index Time(ms) : " << write_index_elapsed * 1.0 / count << std::endl;
std::cout << "\tWrite KV Time(ms) : " << write_kv_elapsed * 1.0 / count << std::endl;
std::cout << "\tWrite Clean Time(ms) : " << write_clean_elapsed * 1.0 / count << std::endl;
std::cout << "TaskQueue Size : " << taskqueue_.size() << std::endl;
std::cout << "temp_elased : " << temp_elapsed * 1.0 / count << std::endl;
std::cout << "waiting elapsed : " << waiting_elasped * 1.0 / count << std::endl;
// std::cout << MetaBatch.ApproximateSize() << " " << IndexBatch.ApproximateSize() << " " << KVBatch.ApproximateSize() << std::endl;
std::cout << "=====================================================\n";
write_bytes_lim = write_bytes + write_step;
std::fflush(stdout);
}
}
// private:
// int count = 0;
// int count_Batch = 0;
// int count_Batch_Sub = 0;
// uint64_t elapsed = 0;
// uint64_t construct_elapsed = 0;
// uint64_t construct_BatchReq_init_elapsed = 0;
// uint64_t construct_BatchReq_elapsed = 0;
// uint64_t construct_BatchReq_Sub_elapsed = 0;
// uint64_t construct_BatchReq_perSub_elapsed = 0;
// uint64_t construct_FieldsReq_Read_elapsed = 0;
// uint64_t write_elapsed = 0;
// uint64_t write_meta_elapsed = 0;
// uint64_t write_index_elapsed = 0;
// uint64_t write_kv_elapsed = 0;
// uint64_t write_clean_elapsed = 0;
// uint64_t write_bytes = 0;
// uint64_t write_step = 500 * 1024 * 1024;
// uint64_t write_bytes_lim = write_step;
// uint64_t temp_elapsed = 0;
// uint64_t waiting_elasped = 0;
// inline void dumpStatistics() {
// if(count && count % 500000 == 0 || write_bytes && write_bytes > write_bytes_lim) {
// std::cout << "=====================================================\n";
// std::cout << "Total Count : " << count;
// std::cout << "\tTotal Write Bytes(MB) : " << write_bytes / 1048576.0 << std::endl;
// std::cout << "Average Time(ms) : " << elapsed * 1.0 / count;
// std::cout << "\tAverage Write rates(MB/s) : " << write_bytes / 1048576.0 / elapsed * 1000000 << std::endl;
// std::cout << "Construct Time(ms) : " << construct_elapsed * 1.0 / count << std::endl;
// std::cout << "\tConstruct BatchReq Init Time(ms) : " << construct_BatchReq_init_elapsed * 1.0 / count << std::endl;
// std::cout << "\tConstruct BatchReq Time(ms) : " << construct_BatchReq_elapsed * 1.0 / count << std::endl;
// std::cout << "\tConstruct BatchReq Sub Time(ms) : " << construct_BatchReq_Sub_elapsed * 1.0 / count << std::endl;
// std::cout << "\tConstruct BatchReq perSub Time(ms) : " << construct_BatchReq_perSub_elapsed * 1.0 / count_Batch_Sub << std::endl;
// std::cout << "\tConstruct FieldsReq Read Time(ms) : " << construct_FieldsReq_Read_elapsed * 1.0 / count << std::endl;
// std::cout << "Write Time(ms) : " << write_elapsed * 1.0 / count << std::endl;
// std::cout << "\tWrite Meta Time(ms) : " << write_meta_elapsed * 1.0 / count << std::endl;
// std::cout << "\tWrite Index Time(ms) : " << write_index_elapsed * 1.0 / count << std::endl;
// std::cout << "\tWrite KV Time(ms) : " << write_kv_elapsed * 1.0 / count << std::endl;
// std::cout << "\tWrite Clean Time(ms) : " << write_clean_elapsed * 1.0 / count << std::endl;
// std::cout << "TaskQueue Size : " << taskqueue_.size() << std::endl;
// std::cout << "temp_elased : " << temp_elapsed * 1.0 / count << std::endl;
// std::cout << "waiting elapsed : " << waiting_elasped * 1.0 / count << std::endl;
// // std::cout << MetaBatch.ApproximateSize() << " " << IndexBatch.ApproximateSize() << " " << KVBatch.ApproximateSize() << std::endl;
// std::cout << "=====================================================\n";
// write_bytes_lim = write_bytes + write_step;
// std::fflush(stdout);
// }
// }
};
Status DestroyDB(const std::string& name,

+ 1
- 1
fielddb/request.cpp View File

@ -414,7 +414,7 @@ void BatchReq::ConstructBatch(WriteBatch &KVBatch,WriteBatch &IndexBatch,
(*subreq)->ConstructBatch(Sub_KVBatch, Sub_IndexBatch, Sub_MetaBatch, DB, Sub_batchKeySet);
// (*subreq)->ConstructBatch(KVBatch, IndexBatch, MetaBatch, DB, batchKeySet);
//DB->construct_BatchReq_perSub_elapsed += DB->env_->NowMicros() - start_sub;
DB->count_Batch_Sub ++;
//DB->count_Batch_Sub ++;
//所有的对于pendreq的调用传入的参数被改成了this->parent,因此,对于subrequests来说,
//pendreq的传参为对应的Batchreq,因此,此处判断batchreq是否pending可以得到subreq是否有冲突
if(isPending()) {

Loading…
Cancel
Save