You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
Reformat all code to coding standard
This commit is contained in:
@ -10,18 +10,20 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
void timespec_sub(const struct timespec &tv1,
|
||||
const struct timespec &tv2,
|
||||
struct timespec &diff)
|
||||
void timespec_sub(const struct timespec& tv1,
|
||||
const struct timespec& tv2,
|
||||
struct timespec& diff)
|
||||
{
|
||||
if (tv2.tv_nsec < tv1.tv_nsec) {
|
||||
diff.tv_sec = tv2.tv_sec - tv1.tv_sec - 1;
|
||||
diff.tv_nsec = tv1.tv_nsec - tv2.tv_nsec;
|
||||
}
|
||||
else {
|
||||
diff.tv_sec = tv2.tv_sec - tv1.tv_sec;
|
||||
diff.tv_nsec = tv2.tv_nsec - tv1.tv_nsec;
|
||||
}
|
||||
if (tv2.tv_nsec < tv1.tv_nsec)
|
||||
{
|
||||
diff.tv_sec = tv2.tv_sec - tv1.tv_sec - 1;
|
||||
diff.tv_nsec = tv1.tv_nsec - tv2.tv_nsec;
|
||||
}
|
||||
else
|
||||
{
|
||||
diff.tv_sec = tv2.tv_sec - tv1.tv_sec;
|
||||
diff.tv_nsec = tv2.tv_nsec - tv1.tv_nsec;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO:
|
||||
@ -31,146 +33,163 @@ void timespec_sub(const struct timespec &tv1,
|
||||
|
||||
// main()
|
||||
//
|
||||
int main(int argc, char **argv)
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
uint64_t acc=0;
|
||||
uint64_t readBlocks=0; // read size ib blocks
|
||||
uint64_t readSize=0; // read size ib bytes
|
||||
uint64_t readBufferSz=0;
|
||||
const uint64_t blockSize=8192;
|
||||
char* alignedbuff=0;
|
||||
boost::scoped_array<char> realbuff;
|
||||
const unsigned pageSize = 4096; //getpagesize();
|
||||
WriteEngine::FileOp fFileOp;
|
||||
BRM::OID_t oid;
|
||||
char fname[256];
|
||||
struct timespec tm;
|
||||
struct timespec tm2;
|
||||
struct timespec tm3;
|
||||
struct timespec starttm;
|
||||
struct timespec endtm;
|
||||
struct timespec tottm;
|
||||
bool odirect=true;
|
||||
int fd = 0;
|
||||
char response='Y';
|
||||
uint64_t acc = 0;
|
||||
uint64_t readBlocks = 0; // read size ib blocks
|
||||
uint64_t readSize = 0; // read size ib bytes
|
||||
uint64_t readBufferSz = 0;
|
||||
const uint64_t blockSize = 8192;
|
||||
char* alignedbuff = 0;
|
||||
boost::scoped_array<char> realbuff;
|
||||
const unsigned pageSize = 4096; //getpagesize();
|
||||
WriteEngine::FileOp fFileOp;
|
||||
BRM::OID_t oid;
|
||||
char fname[256];
|
||||
struct timespec tm;
|
||||
struct timespec tm2;
|
||||
struct timespec tm3;
|
||||
struct timespec starttm;
|
||||
struct timespec endtm;
|
||||
struct timespec tottm;
|
||||
bool odirect = true;
|
||||
int fd = 0;
|
||||
char response = 'Y';
|
||||
|
||||
if (argc <= 1) {
|
||||
cerr << "usage: testread <oid> <buffer size in blocks>" << endl;
|
||||
return -1;
|
||||
}
|
||||
if (argc <= 1)
|
||||
{
|
||||
cerr << "usage: testread <oid> <buffer size in blocks>" << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
oid=atoi(argv[1]);
|
||||
if (oid <=0)
|
||||
exit(-1);
|
||||
oid = atoi(argv[1]);
|
||||
|
||||
if (argc >=2) {
|
||||
readBlocks = atoi(argv[2]);
|
||||
if (readBlocks <= 0)
|
||||
readBlocks = 8;
|
||||
}
|
||||
if (oid <= 0)
|
||||
exit(-1);
|
||||
|
||||
if (argc >=4) {
|
||||
odirect=false;
|
||||
}
|
||||
if (argc >= 2)
|
||||
{
|
||||
readBlocks = atoi(argv[2]);
|
||||
|
||||
readSize=readBlocks*blockSize;
|
||||
readBufferSz=readSize+pageSize;
|
||||
if (readBlocks <= 0)
|
||||
readBlocks = 8;
|
||||
}
|
||||
|
||||
realbuff.reset(new char[readBufferSz]);
|
||||
if (realbuff.get() == 0) {
|
||||
cerr << "thr_popper: Can't allocate space for a whole extent in memory" << endl;
|
||||
return 0;
|
||||
}
|
||||
if (argc >= 4)
|
||||
{
|
||||
odirect = false;
|
||||
}
|
||||
|
||||
if (fFileOp.getFileName(oid, fname) != WriteEngine::NO_ERROR) {
|
||||
fname[0]=0;
|
||||
throw std::runtime_error("fileOp.getFileName failed");
|
||||
}
|
||||
else {
|
||||
cout << "Reading oid: " << oid << " od: " << odirect << " file: " << fname << endl;
|
||||
}
|
||||
readSize = readBlocks * blockSize;
|
||||
readBufferSz = readSize + pageSize;
|
||||
|
||||
realbuff.reset(new char[readBufferSz]);
|
||||
|
||||
if (realbuff.get() == 0)
|
||||
{
|
||||
cerr << "thr_popper: Can't allocate space for a whole extent in memory" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (fFileOp.getFileName(oid, fname) != WriteEngine::NO_ERROR)
|
||||
{
|
||||
fname[0] = 0;
|
||||
throw std::runtime_error("fileOp.getFileName failed");
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Reading oid: " << oid << " od: " << odirect << " file: " << fname << endl;
|
||||
}
|
||||
|
||||
#if __LP64__
|
||||
alignedbuff=(char*)((((ptrdiff_t)realbuff.get() >> 12) << 12) + pageSize);
|
||||
alignedbuff = (char*)((((ptrdiff_t)realbuff.get() >> 12) << 12) + pageSize);
|
||||
#else
|
||||
alignedbuff=(char*)(((((ptrdiff_t)realbuff.get() >> 12) << 12) & 0xffffffff) + pageSize);
|
||||
alignedbuff = (char*)(((((ptrdiff_t)realbuff.get() >> 12) << 12) & 0xffffffff) + pageSize);
|
||||
#endif
|
||||
idbassert(((ptrdiff_t)alignedbuff - (ptrdiff_t)realbuff.get()) < (ptrdiff_t)pageSize);
|
||||
idbassert(((ptrdiff_t)alignedbuff % pageSize) == 0);
|
||||
idbassert(((ptrdiff_t)alignedbuff - (ptrdiff_t)realbuff.get()) < (ptrdiff_t)pageSize);
|
||||
idbassert(((ptrdiff_t)alignedbuff % pageSize) == 0);
|
||||
|
||||
if (odirect)
|
||||
fd=open(fname, O_RDONLY|O_DIRECT|O_LARGEFILE|O_NOATIME);
|
||||
else
|
||||
fd=open(fname, O_RDONLY|O_LARGEFILE|O_NOATIME);
|
||||
if (odirect)
|
||||
fd = open(fname, O_RDONLY | O_DIRECT | O_LARGEFILE | O_NOATIME);
|
||||
else
|
||||
fd = open(fname, O_RDONLY | O_LARGEFILE | O_NOATIME);
|
||||
|
||||
if (fd<0) {
|
||||
cerr << "Open failed" << endl;
|
||||
perror("open");
|
||||
throw runtime_error("Error opening file");
|
||||
}
|
||||
if (fd < 0)
|
||||
{
|
||||
cerr << "Open failed" << endl;
|
||||
perror("open");
|
||||
throw runtime_error("Error opening file");
|
||||
}
|
||||
|
||||
while (toupper(response) != 'N') {
|
||||
uint64_t i=1;
|
||||
uint64_t rCnt=0;
|
||||
clock_gettime(CLOCK_REALTIME, &starttm);
|
||||
while (i!=0) {
|
||||
//clock_gettime(CLOCK_REALTIME, &tm);
|
||||
i = pread(fd, alignedbuff, readSize, acc);
|
||||
//clock_gettime(CLOCK_REALTIME, &tm2);
|
||||
idbassert(i==0||i==readSize);
|
||||
idbassert(i%pageSize==0);
|
||||
idbassert(acc%pageSize==0);
|
||||
if (i < 0 && errno == EINTR) {
|
||||
timespec_sub(tm, tm2, tm3);
|
||||
cout << "* "
|
||||
<< i << " "
|
||||
<< right << setw(2) << setfill(' ') << tm3.tv_sec << "."
|
||||
<< right << setw(9) << setfill('0') << tm3.tv_nsec
|
||||
<< endl;
|
||||
continue;
|
||||
}
|
||||
else if (i < 0) {
|
||||
timespec_sub(tm, tm2, tm3);
|
||||
cout << "* i: "
|
||||
<< i << " sz: " << readSize << " acc: " << acc
|
||||
<< right << setw(2) << setfill(' ') << tm3.tv_sec << " "
|
||||
<< right << tm3.tv_nsec
|
||||
<< endl;
|
||||
perror("pread");
|
||||
//make loop exit
|
||||
i=0;
|
||||
}
|
||||
while (toupper(response) != 'N')
|
||||
{
|
||||
uint64_t i = 1;
|
||||
uint64_t rCnt = 0;
|
||||
clock_gettime(CLOCK_REALTIME, &starttm);
|
||||
|
||||
acc += i;
|
||||
if (i>0)
|
||||
rCnt++;
|
||||
while (i != 0)
|
||||
{
|
||||
//clock_gettime(CLOCK_REALTIME, &tm);
|
||||
i = pread(fd, alignedbuff, readSize, acc);
|
||||
//clock_gettime(CLOCK_REALTIME, &tm2);
|
||||
idbassert(i == 0 || i == readSize);
|
||||
idbassert(i % pageSize == 0);
|
||||
idbassert(acc % pageSize == 0);
|
||||
|
||||
//timespec_sub(tm, tm2, tm3);
|
||||
//cout
|
||||
// << i << " "
|
||||
// << right << setw(2) << setfill(' ') << tm3.tv_sec << " "
|
||||
// << right << tm3.tv_nsec
|
||||
// << endl;
|
||||
if (i < 0 && errno == EINTR)
|
||||
{
|
||||
timespec_sub(tm, tm2, tm3);
|
||||
cout << "* "
|
||||
<< i << " "
|
||||
<< right << setw(2) << setfill(' ') << tm3.tv_sec << "."
|
||||
<< right << setw(9) << setfill('0') << tm3.tv_nsec
|
||||
<< endl;
|
||||
continue;
|
||||
}
|
||||
else if (i < 0)
|
||||
{
|
||||
timespec_sub(tm, tm2, tm3);
|
||||
cout << "* i: "
|
||||
<< i << " sz: " << readSize << " acc: " << acc
|
||||
<< right << setw(2) << setfill(' ') << tm3.tv_sec << " "
|
||||
<< right << tm3.tv_nsec
|
||||
<< endl;
|
||||
perror("pread");
|
||||
//make loop exit
|
||||
i = 0;
|
||||
}
|
||||
|
||||
} // while(acc...
|
||||
acc += i;
|
||||
|
||||
clock_gettime(CLOCK_REALTIME, &endtm);
|
||||
timespec_sub(starttm, endtm, tottm);
|
||||
if (i > 0)
|
||||
rCnt++;
|
||||
|
||||
cout << "Total reads: " << rCnt
|
||||
<< " sz: " << acc/(1024*1024) << "MB"
|
||||
<< " tm: " << tottm.tv_sec << "secs "
|
||||
<< tottm.tv_nsec << "ns"
|
||||
<< endl;
|
||||
//timespec_sub(tm, tm2, tm3);
|
||||
//cout
|
||||
// << i << " "
|
||||
// << right << setw(2) << setfill(' ') << tm3.tv_sec << " "
|
||||
// << right << tm3.tv_nsec
|
||||
// << endl;
|
||||
|
||||
cout << "Repeat the last scan[Y,N]?" << endl;
|
||||
cin >> response;
|
||||
acc=0;
|
||||
|
||||
} // while response...
|
||||
} // while(acc...
|
||||
|
||||
close(fd);
|
||||
return 0;
|
||||
clock_gettime(CLOCK_REALTIME, &endtm);
|
||||
timespec_sub(starttm, endtm, tottm);
|
||||
|
||||
cout << "Total reads: " << rCnt
|
||||
<< " sz: " << acc / (1024 * 1024) << "MB"
|
||||
<< " tm: " << tottm.tv_sec << "secs "
|
||||
<< tottm.tv_nsec << "ns"
|
||||
<< endl;
|
||||
|
||||
cout << "Repeat the last scan[Y,N]?" << endl;
|
||||
cin >> response;
|
||||
acc = 0;
|
||||
|
||||
} // while response...
|
||||
|
||||
close(fd);
|
||||
return 0;
|
||||
|
||||
} //main
|
||||
|
||||
|
Reference in New Issue
Block a user