void doSomething(int tid){ const int iter = 5000; auto t1 = high_resolution_clock::now(); KVStore<int,string> k; //SocketAddress,TableName k.bind("127.1.1.1:8090","ShreeGanesh"); //Exactly once for each KVStore object for(int i=0;i<iter;i++){ k.put(tid*10000+i,"Om Nama Shivay "+to_string(i)); auto kd = k.get(tid*10000+i); if(kd.ierr==-1){ cout<<"Error in thread "<<tid<<" at i="<<i<<endl;//" Got data:"<<kd.value<<endl; } else { //cout<<"Got Data:"<<kd.value<<" for tid:"<<tid<<" i:"<<i<<endl; } k.del(tid*10000+i); kd = k.get(tid*10000+i); if(kd.ierr!=-1){ cout<<"Error in thread "<<tid<<" at i="<<i<<" Got data:"<<kd.value<<endl; } } auto t2 = high_resolution_clock::now(); double dur = duration_cast<microseconds>(t2 -t1).count(); cout<<"TID:"<<tid<<" duration "<<dur<<" microsecond for "<<iter<<" iterrations."<<endl; }
void doReadsOnSameObject(int tid){ const int iter = 5000; auto t1 = high_resolution_clock::now(); KVStore<int,string> k; //SocketAddress,TableName k.bind("127.1.1.1:8090","ShreeGanesh"); //Exactly once for each KVStore object for(int i=0;i<iter;i++){ auto kd = k.get(i); if(kd.ierr==-1){ cout<<"doReadsOnSameObject Error in thread "<<tid<<" at i="<<i<<endl;//" Got data:"<<kd.value<<endl; } } auto t2 = high_resolution_clock::now(); double dur = duration_cast<microseconds>(t2 -t1).count(); cout<<"doReadsOnSameObject TID:"<<tid<<" duration "<<dur<<" microsecond for "<<iter<<" iterrations."<<endl; }
psa_its_status_t psa_its_get_impl(int32_t pid, uint32_t uid, uint32_t data_offset, uint32_t data_length, void *p_data) { KVStore *kvstore = get_kvstore_instance(); MBED_ASSERT(kvstore); // Generate KVStore key char kv_key[PSA_ITS_FILENAME_MAX_LEN] = {'\0'}; generate_fn(kv_key, PSA_ITS_FILENAME_MAX_LEN, uid, pid); KVStore::info_t kv_info; int status = kvstore->get_info(kv_key, &kv_info); if (status == MBED_SUCCESS) { if (data_offset > kv_info.size) { return PSA_ITS_ERROR_OFFSET_INVALID; } // Verify (size + offset) does not wrap around if (data_length + data_offset < data_length) { return PSA_ITS_ERROR_INCORRECT_SIZE; } if (data_offset + data_length > kv_info.size) { return PSA_ITS_ERROR_INCORRECT_SIZE; } size_t actual_size = 0; status = kvstore->get(kv_key, p_data, data_length, &actual_size, data_offset); if (status == MBED_SUCCESS) { if (actual_size < data_length) { status = PSA_ITS_ERROR_INCORRECT_SIZE; } } } return convert_status(status); }