Add ability to append TSDB value at specific timestamp (#256)
This commit is contained in:
parent
a208b1555b
commit
0d1b438947
|
@ -59,6 +59,7 @@ bool fdb_kv_iterate (fdb_kvdb_t db, fdb_kv_iterator_t itr);
|
|||
|
||||
/* Time series log API like a TSDB */
|
||||
fdb_err_t fdb_tsl_append (fdb_tsdb_t db, fdb_blob_t blob);
|
||||
fdb_err_t fdb_tsl_append_with_ts(fdb_tsdb_t db, fdb_blob_t blob, fdb_time_t timestamp);
|
||||
void fdb_tsl_iter (fdb_tsdb_t db, fdb_tsl_cb cb, void *cb_arg);
|
||||
void fdb_tsl_iter_reverse(fdb_tsdb_t db, fdb_tsl_cb cb, void *cb_arg);
|
||||
void fdb_tsl_iter_by_time(fdb_tsdb_t db, fdb_time_t from, fdb_time_t to, fdb_tsl_cb cb, void *cb_arg);
|
||||
|
|
|
@ -381,10 +381,10 @@ static fdb_err_t update_sec_status(fdb_tsdb_t db, tsdb_sec_info_t sector, fdb_bl
|
|||
return result;
|
||||
}
|
||||
|
||||
static fdb_err_t tsl_append(fdb_tsdb_t db, fdb_blob_t blob)
|
||||
static fdb_err_t tsl_append(fdb_tsdb_t db, fdb_blob_t blob, fdb_time_t *timestamp)
|
||||
{
|
||||
fdb_err_t result = FDB_NO_ERR;
|
||||
fdb_time_t cur_time = db->get_time();
|
||||
fdb_time_t cur_time = timestamp == NULL ? db->get_time() : *timestamp;
|
||||
|
||||
/* check the append length, MUST less than the db->max_len */
|
||||
if(blob->size > db->max_len)
|
||||
|
@ -441,7 +441,31 @@ fdb_err_t fdb_tsl_append(fdb_tsdb_t db, fdb_blob_t blob)
|
|||
}
|
||||
|
||||
db_lock(db);
|
||||
result = tsl_append(db, blob);
|
||||
result = tsl_append(db, blob, NULL);
|
||||
db_unlock(db);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a new log to TSDB with specific timestamp.
|
||||
*
|
||||
* @param db database object
|
||||
* @param blob log blob data
|
||||
*
|
||||
* @return result
|
||||
*/
|
||||
fdb_err_t fdb_tsl_append_with_ts(fdb_tsdb_t db, fdb_blob_t blob, fdb_time_t timestamp)
|
||||
{
|
||||
fdb_err_t result = FDB_NO_ERR;
|
||||
|
||||
if (!db_init_ok(db)) {
|
||||
FDB_INFO("Error: TSL (%s) isn't initialize OK.\n", db_name(db));
|
||||
return FDB_INIT_FAILED;
|
||||
}
|
||||
|
||||
db_lock(db);
|
||||
result = tsl_append(db, blob, ×tamp);
|
||||
db_unlock(db);
|
||||
|
||||
return result;
|
||||
|
|
Loading…
Reference in New Issue