test: depend ${TEST_TARGETS}
+gprof-helper.so: test/gprof-helper.c
+ gcc -shared -fPIC test/gprof-helper.c -o gprof-helper.so -lpthread -ldl
import: mds/allmds.o osd/OSD.o msg/FakeMessenger.o import.cc ${COMMON_OBJS}
${CC} ${CFLAGS} ${LIBS} $^ -o $@
!!!
-- make mds shut down with mds_commit_on_shutdown=0 and/or mds_log_flush_on_shutdown=0.
- test mds scaling w/ makedirs, vs mds_log_on_request
+- client needs to choose MDS intelligently
- finish osd replication MOSDOp groundwork
{
//__uint64_t wrsize = 1024*256;
char *buf = new char[wrsize]; // 1 MB
- __uint64_t chunks = (__uint64_t)size * (uint64_t)(1024*1024) / (__uint64_t)wrsize;
+ __uint64_t chunks = (__uint64_t)size * (__uint64_t)(1024*1024) / (__uint64_t)wrsize;
int fd = client->open(fn.c_str(), O_WRONLY|O_CREAT);
dout(5) << "writing to " << fn << " fd " << fd << endl;
timepair_t last_decay; // time of last decay
public:
- DecayCounter() {
+ DecayCounter() : val(0) {
set_halflife( 10.0 );
reset();
}
- DecayCounter(double hl) {
+ DecayCounter(double hl) : val(0) {
set_halflife(hl);
reset();
}
}
void decay(const timepair_t& now) {
- double el = timepair_to_double(now) - timepair_to_double(last_decay);
- if (el > .5) {
- val = val * exp(el * k);
+ timepair_t el = now;
+ el -= last_decay;
+ if (el.first > 1) {
+ val = val * exp(timepair_to_double(el) * k);
+ if (val < .01) val = 0;
last_decay = now;
}
- if (val < .01) val = 0;
}
double get(const timepair_t& now) {
filename += "/";
}
filename += fn;
- cout << "log " << filename << endl;
+ //cout << "log " << filename << endl;
interval = g_conf.log_interval;
start = g_clock.gettimepair(); // time 0!
last_logged = 0;
void Logger::flush(bool force)
{
timepair_t now = g_clock.gettimepair();
- double fromstart = timepair_to_double(now - start);
+ timepair_t fromstart = now - start;
while (force ||
- fromstart - last_logged >= interval) {
+ fromstart.first - last_logged >= interval) {
last_logged += interval;
force = false;
LogType *type;
timepair_t start;
- double last_logged;
- double interval;
+ int last_logged;
+ int interval;
int wrote_header;
string filename;
// profiling and debugging
log_messages: true,
- log_interval: 10.0,
+ log_interval: 10,
log_name: 0,
fake_clock: false,
// profiling
bool log_messages;
- float log_interval;
+ int log_interval;
char *log_name;
bool fake_clock;