Cond cond;
int rvalue = 0;
+ utime_t start = g_clock.now();
+
bool done = false;
C_Client_Cond *onfinish = new C_Client_Cond(&cond, &done, &rvalue);
C_Client_HackUnsafe *onsafe = new C_Client_HackUnsafe(this);
unsafe_sync_write++;
- dout(-20) << " sync write start " << onfinish << endl;
+ dout(20) << " sync write start " << onfinish << endl;
filer->write(in->inode, size, offset, blist, 0,
//NULL,NULL); // no wait hack
while (!done) {
cond.Wait(client_lock);
- dout(-20) << " sync write bump " << onfinish << endl;
+ dout(20) << " sync write bump " << onfinish << endl;
}
- dout(-20) << " sync write done " << onfinish << endl;
+ // time
+ utime_t lat = g_clock.now();
+ lat -= start;
+ client_logger->finc("wrlsum",(double)lat);
+ client_logger->inc("wrlnum");
+
+ dout(20) << " sync write done " << onfinish << endl;
}
}
#include "messages/MExportDirNotifyAck.h"
#include "messages/MExportDirFinish.h"
+#include "messages/MHashReaddir.h"
+#include "messages/MHashReaddirReply.h"
+
#include "messages/MHashDirDiscover.h"
#include "messages/MHashDirDiscoverAck.h"
#include "messages/MHashDirPrep.h"
break;
+ case MSG_MDS_HASHREADDIR:
+ m = new MHashReaddir();
+ break;
+ case MSG_MDS_HASHREADDIRREPLY:
+ m = new MHashReaddirReply();
+ break;
+
case MSG_MDS_HASHDIRDISCOVER:
m = new MHashDirDiscover();
break;
size_t s = blist.length();
Message *m = decode_message(env, blist);
+ if (logger) {
+ logger->inc("in");
+ logger->inc("inb", s+sizeof(env));
+ }
+
dout(DBL) << "tcp_recv got " << s << " byte message from " << MSG_ADDR_NICE(m->get_source()) << endl;
return m;
//dout(1) << "inthread got " << m << " from sd " << sd << " who is " << who << endl;
// give to dispatch loop
- size_t sz;
+ size_t sz = m->get_payload().length();
incoming_lock.Lock();
{
incoming.push_back(m);
incoming_cond.Signal();
stat_inq++;
- sz = m->get_payload().length();
stat_inqb += sz;
}
incoming_lock.Unlock();
if (logger) {
- logger->inc("in");
- logger->inc("inb", sz);
+ //logger->inc("in");
+ //logger->inc("inb", sz);
}
}
# clnode latency?
if ($fn =~ /cl/) {
+ $s->{$k}->{'wrlat'} = $s->{$k}->{'wrlsum'} / $s->{$k}->{'wrlnum'} if $s->{$k}->{'wrlnum'} > 0;
$s->{$k}->{'lat'} = $s->{$k}->{'lsum'} / $s->{$k}->{'lnum'} if $s->{$k}->{'lnum'} > 0;
$s->{$k}->{'latw'} = $s->{$k}->{'lwsum'} / $s->{$k}->{'lwnum'} if $s->{$k}->{'lwnum'} > 0;
$s->{$k}->{'latr'} = $s->{$k}->{'lrsum'} / $s->{$k}->{'lrnum'} if $s->{$k}->{'lrnum'} > 0;
exit 1;
}
-open(W, "$out/in");
+open(W, ">$out/in");
print W $raw;
close W;
print join("\t", '#rows', map { $rows } @c) . "\n";
print join("\t", '#files', map { $files } @c) . "\n";
print join("\t", '#avgval', #map int,
- map { $_ / ($rows*$files) } map { $avg{$col{$_}} } @c ) . "\n";
+ map { ($rows*$files) ? ($_ / ($rows*$files)):0 } map { $avg{$col{$_}} } @c ) . "\n";
print join("\t", '#avgsum', #map int,
map { $_ / $rows } map { $avg{$col{$_}} } @c ) . "\n";