Changeset: ffeb48d21d52 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ffeb48d21d52
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk_logger.c
gdk/gdk_logger.h
sql/storage/bat/bat_logger.c
Branch: resource_management
Log Message:
The logger doesn't use an allocator.
diffs (241 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -553,17 +553,17 @@ gdk_return log_bat_persists(logger *lg,
gdk_return log_bat_transient(logger *lg, log_id id);
lng log_changes(logger *lg);
gdk_return log_constant(logger *lg, int type, const void *val, log_id id, lng
offset, lng cnt, lng total_cnt);
-logger *log_create(allocator *ma, int debug, const char *fn, const char
*logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr
postfuncp, void *funcdata);
+logger *log_create(int debug, const char *fn, const char *logdir, int version,
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata);
gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id);
void log_destroy(logger *lg);
log_bid log_find_bat(logger *lg, log_id id);
-gdk_return log_flush(allocator *ma, logger *lg, ulng saved_id);
+gdk_return log_flush(logger *lg, ulng saved_id);
void log_printinfo(logger *lg);
int log_sequence(logger *lg, int seq, lng *id);
gdk_return log_tend(logger *lg);
gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts);
gdk_return log_tsequence(logger *lg, int seq, lng id);
-gdk_return log_tstart(allocator *ma, logger *lg, bool flushnow, ulng
*log_file_id);
+gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
ATOMIC_TYPE lvl_per_component[];
void *ma_alloc(allocator *sa, size_t sz);
void ma_close(allocator *sa, const allocator_state *);
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -378,14 +378,13 @@ struct offset {
};
static log_return
-log_read_updates(allocator *ma, logger *lg, trans *tr, logformat *l, log_id
id, BAT **cands, bool skip_entry)
+log_read_updates(logger *lg, trans *tr, logformat *l, log_id id, BAT **cands,
bool skip_entry)
{
log_return res = LOG_OK;
lng nr, pnr;
bte type_id = -1;
int tpe;
- (void) ma;
assert(!lg->inmemory);
TRC_DEBUG(WAL, "found %d %s", id, l->flag == LOG_UPDATE ? "update" :
"update_buld");
@@ -1401,7 +1400,7 @@ log_open_input(logger *lg, const char *f
}
static log_return
-log_read_transaction(allocator *ma, logger *lg, BAT *ids_to_omit, uint32_t
*updated, BUN maxupdated, time_t *t)
+log_read_transaction(logger *lg, BAT *ids_to_omit, uint32_t *updated, BUN
maxupdated, time_t *t)
{
logformat l;
trans *tr = NULL;
@@ -1544,7 +1543,7 @@ log_read_transaction(allocator *ma, logg
if (tr == NULL)
err = LOG_EOF;
else {
- err = log_read_updates(ma, lg, tr, &l, l.id,
cands ? &cands : NULL, skip_entry);
+ err = log_read_updates(lg, tr, &l, l.id, cands
? &cands : NULL, skip_entry);
}
break;
case LOG_CREATE:
@@ -1609,7 +1608,7 @@ log_read_transaction(allocator *ma, logg
}
static gdk_return
-log_readlog(allocator *ma, logger *lg, const char *filename, BAT *ids_to_omit,
bool *filemissing)
+log_readlog(logger *lg, const char *filename, BAT *ids_to_omit, bool
*filemissing)
{
log_return err = LOG_OK;
time_t t0;
@@ -1625,7 +1624,7 @@ log_readlog(allocator *ma, logger *lg, c
GDKtracer_flush_buffer();
}
while (err != LOG_EOF && err != LOG_ERR) {
- err = log_read_transaction(ma, lg, ids_to_omit, NULL, 0, &t0);
+ err = log_read_transaction(lg, ids_to_omit, NULL, 0, &t0);
}
log_close_input(lg);
lg->input_log = NULL;
@@ -1695,7 +1694,7 @@ end:
* processed in the same sequence.
*/
static gdk_return
-log_readlogs(allocator *ma, logger *lg, const char *filename)
+log_readlogs(logger *lg, const char *filename)
{
gdk_return ret = GDK_FAIL;
char log_filename[FILENAME_MAX];
@@ -1721,7 +1720,7 @@ log_readlogs(allocator *ma, logger *lg,
GDKerror("Logger filename path is too large\n");
goto end;
}
- res = log_readlog(ma, lg, log_filename, ids_to_omit,
&filemissing);
+ res = log_readlog(lg, log_filename, ids_to_omit,
&filemissing);
if (!filemissing) {
lg->saved_id++;
lg->id++;
@@ -2279,7 +2278,7 @@ clean_bbp(logger *lg)
* unless running in read-only mode
* Load data and persist it in the BATs */
static gdk_return
-log_load(allocator *ma, const char *fn, logger *lg, char
filename[FILENAME_MAX])
+log_load(const char *fn, logger *lg, char filename[FILENAME_MAX])
{
FILE *fp = NULL;
char bak[FILENAME_MAX];
@@ -2545,7 +2544,7 @@ log_load(allocator *ma, const char *fn,
if (readlogs) {
ulng log_id = lg->saved_id + 1;
bool earlyexit = GDKgetenv_isyes("process-wal-and-exit");
- if (log_readlogs(ma, lg, filename) != GDK_SUCCEED) {
+ if (log_readlogs(lg, filename) != GDK_SUCCEED) {
goto error;
}
if (!earlyexit) {
@@ -2625,7 +2624,7 @@ log_load(allocator *ma, const char *fn,
/* Initialize a new logger
* It will load any data in the logdir and persist it in the BATs*/
static logger *
-log_new(allocator *ma, int debug, const char *fn, const char *logdir, int
version, preversionfix_fptr prefuncp,
+log_new(int debug, const char *fn, const char *logdir, int version,
preversionfix_fptr prefuncp,
postversionfix_fptr postfuncp, void *funcdata)
{
logger *lg;
@@ -2707,7 +2706,7 @@ log_new(allocator *ma, int debug, const
MT_lock_init(&lg->flush_lock, "flush_lock");
MT_cond_init(&lg->excl_flush_cv, "flush_cond");
- if (log_load(ma, fn, lg, filename) == GDK_SUCCEED) {
+ if (log_load(fn, lg, filename) == GDK_SUCCEED) {
return lg;
}
return NULL;
@@ -2798,7 +2797,7 @@ log_destroy(logger *lg)
/* Create a new logger */
logger *
-log_create(allocator *ma, int debug, const char *fn, const char *logdir, int
version,
+log_create(int debug, const char *fn, const char *logdir, int version,
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp,
void *funcdata)
{
@@ -2807,7 +2806,7 @@ log_create(allocator *ma, int debug, con
TRC_INFO_ENDIF(WAL, "Started processing logs %s/%s version
%d\n", fn, logdir, version);
GDKtracer_flush_buffer();
}
- lg = log_new(ma, debug, fn, logdir, version, prefuncp, postfuncp,
funcdata);
+ lg = log_new(debug, fn, logdir, version, prefuncp, postfuncp, funcdata);
if (lg == NULL)
return NULL;
TRC_INFO_IF(WAL) {
@@ -2929,7 +2928,7 @@ log_activate(logger *lg)
}
gdk_return
-log_flush(allocator *ma, logger *lg, ulng ts)
+log_flush(logger *lg, ulng ts)
{
logged_range *pending = log_next_logfile(lg, ts);
ulng lid = pending ? pending->id : 0, olid = lg->saved_id;
@@ -3021,7 +3020,7 @@ log_flush(allocator *ma, logger *lg, uln
nupdated = n;
}
lg->flushing = true;
- res = log_read_transaction(ma, lg, NULL, updated, nupdated,
NULL);
+ res = log_read_transaction(lg, NULL, updated, nupdated, NULL);
lg->flushing = false;
log_unlock(lg);
if (res == LOG_EOF) {
@@ -3852,7 +3851,7 @@ log_find_bat(logger *lg, log_id id)
gdk_return
-log_tstart(allocator *ma, logger *lg, bool flushnow, ulng *file_id)
+log_tstart(logger *lg, bool flushnow, ulng *file_id)
{
rotation_lock(lg);
if (flushnow) {
@@ -3879,7 +3878,7 @@ log_tstart(allocator *ma, logger *lg, bo
rotation_unlock(lg);
if (lg->saved_id + 1 < lg->id)
- log_flush(ma, lg, (1ULL << 63));
+ log_flush(lg, (1ULL << 63));
lg->flushnow = flushnow;
assert(lg->updated == NULL);
diff --git a/gdk/gdk_logger.h b/gdk/gdk_logger.h
--- a/gdk/gdk_logger.h
+++ b/gdk/gdk_logger.h
@@ -46,9 +46,9 @@ typedef int log_id;
#define LOG_BATGROUP_ID 5
#define LOG_BATGROUP_END 6
-gdk_export logger *log_create(allocator *ma, int debug, const char *fn, const
char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr
postfuncp, void *funcdata);
+gdk_export logger *log_create(int debug, const char *fn, const char *logdir,
int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void
*funcdata);
gdk_export void log_destroy(logger *lg);
-gdk_export gdk_return log_flush(allocator *ma, logger *lg, ulng saved_id); /*
try to flush a part of the logs, including the passed saved_id transaction id */
+gdk_export gdk_return log_flush(logger *lg, ulng saved_id); /* try to flush a
part of the logs, including the passed saved_id transaction id */
gdk_export gdk_return log_activate(logger *lg); /* when the server has been
idle, activate logger to make more cleanup possible */
gdk_export lng log_changes(logger *lg);
@@ -69,7 +69,7 @@ gdk_export gdk_return log_bat_group_end(
/* mark end of batgroup insert or clear */
//gdk_export gdk_return log_batgroup_end(logger *lg, oid id);
-gdk_export gdk_return log_tstart(allocator *ma, logger *lg, bool flushnow,
ulng *log_file_id);
+gdk_export gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
gdk_export gdk_return log_tend(logger *lg);
gdk_export gdk_return log_tflush(logger *lg, ulng log_file_id, ulng
commit_ts); /* Flush the WAL to disk using group commit */
diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -966,7 +966,7 @@ bl_create(sqlstore *store, int debug, co
if (store->logger)
return LOG_ERR;
allocator_state ta_state = ma_open(store->ta);
- store->logger = log_create(store->ta, debug, "sql", logdir,
cat_version, (preversionfix_fptr)&bl_preversion,
(postversionfix_fptr)&bl_postversion, store);
+ store->logger = log_create(debug, "sql", logdir, cat_version,
(preversionfix_fptr)&bl_preversion, (postversionfix_fptr)&bl_postversion,
store);
ma_close(store->ta, &ta_state);
if (store->logger)
return LOG_OK;
@@ -987,7 +987,7 @@ static int
bl_flush(sqlstore *store, lng save_id)
{
if (store->logger) {
- int res = log_flush(store->ta, store->logger, save_id) ==
GDK_SUCCEED ? LOG_OK : LOG_ERR;
+ int res = log_flush(store->logger, save_id) == GDK_SUCCEED ?
LOG_OK : LOG_ERR;
ma_reset(store->ta);
return res;
}
@@ -1027,7 +1027,7 @@ bl_log_isnew(sqlstore *store)
static int
bl_tstart(sqlstore *store, bool flush, ulng *log_file_id)
{
- return log_tstart(store->ta, store->logger, flush, log_file_id) ==
GDK_SUCCEED ? LOG_OK : LOG_ERR;
+ return log_tstart(store->logger, flush, log_file_id) == GDK_SUCCEED ?
LOG_OK : LOG_ERR;
}
static int
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]