[PATCH v2 2/5] vinyl: rename vy_index::id to index_id
Vladimir Davydov
vdavydov.dev at gmail.com
Tue Mar 20 14:29:02 MSK 2018
Throughout Vinyl we use the term 'id' for calling members representing
unique object identifiers: vy_slice::id, vy_run::id, vy_range::id.
There's one exception though: vy_index::id is the ordinal number of the
index in a space. This is confusing. Besides, I'm planning to assign a
unique id to each vinyl index so that I could look them up in vylog.
I'd like to call the new member 'id' for consistency. So let's rename
vy_index::id to index_id.
---
src/box/vinyl.c | 38 ++++++++++++++++++++------------------
src/box/vy_index.c | 18 +++++++++---------
src/box/vy_index.h | 4 ++--
src/box/vy_point_lookup.c | 2 +-
src/box/vy_read_iterator.c | 5 +++--
src/box/vy_scheduler.c | 19 ++++++++++---------
src/box/vy_tx.c | 4 ++--
test/unit/vy_point_lookup.c | 6 +++---
8 files changed, 50 insertions(+), 46 deletions(-)
diff --git a/src/box/vinyl.c b/src/box/vinyl.c
index d3659b0b..af3621df 100644
--- a/src/box/vinyl.c
+++ b/src/box/vinyl.c
@@ -830,7 +830,7 @@ vinyl_index_commit_create(struct index *base, int64_t lsn)
* recovery.
*/
vy_log_tx_begin();
- vy_log_create_index(index->commit_lsn, index->id,
+ vy_log_create_index(index->commit_lsn, index->index_id,
index->space_id, index->key_def);
vy_log_insert_range(index->commit_lsn, range->id, NULL, NULL);
vy_log_tx_try_commit();
@@ -1305,7 +1305,7 @@ vinyl_index_bsize(struct index *base)
struct vy_index *index = vy_index(base);
ssize_t bsize = vy_index_mem_tree_size(index) +
index->page_index_size + index->bloom_size;
- if (index->id > 0)
+ if (index->index_id > 0)
bsize += index->stat.disk.count.bytes;
return bsize;
}
@@ -1425,7 +1425,8 @@ vy_check_is_unique(struct vy_env *env, struct vy_tx *tx, struct space *space,
if (found) {
tuple_unref(found);
diag_set(ClientError, ER_TUPLE_FOUND,
- index_name_by_id(space, index->id), space_name(space));
+ index_name_by_id(space, index->index_id),
+ space_name(space));
return -1;
}
return 0;
@@ -1448,7 +1449,7 @@ vy_insert_primary(struct vy_env *env, struct vy_tx *tx, struct space *space,
{
assert(vy_stmt_type(stmt) == IPROTO_INSERT);
assert(tx != NULL && tx->state == VINYL_TX_READY);
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
/*
* A primary index is always unique and the new tuple must not
* conflict with existing tuples.
@@ -1477,7 +1478,7 @@ vy_insert_secondary(struct vy_env *env, struct vy_tx *tx, struct space *space,
assert(vy_stmt_type(stmt) == IPROTO_INSERT ||
vy_stmt_type(stmt) == IPROTO_REPLACE);
assert(tx != NULL && tx->state == VINYL_TX_READY);
- assert(index->id > 0);
+ assert(index->index_id > 0);
/*
* If the index is unique then the new tuple must not
* conflict with existing tuples. If the index is not
@@ -1529,7 +1530,7 @@ vy_replace_one(struct vy_env *env, struct vy_tx *tx, struct space *space,
(void)env;
assert(tx != NULL && tx->state == VINYL_TX_READY);
struct vy_index *pk = vy_index(space->index[0]);
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
if (tuple_validate_raw(pk->mem_format, request->tuple))
return -1;
struct tuple *new_tuple =
@@ -1589,7 +1590,7 @@ vy_replace_impl(struct vy_env *env, struct vy_tx *tx, struct space *space,
return -1;
/* Primary key is dumped last. */
assert(!vy_is_committed_one(env, space, pk));
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
if (tuple_validate_raw(pk->mem_format, request->tuple))
return -1;
new_stmt = vy_stmt_new_replace(pk->mem_format, request->tuple,
@@ -1729,7 +1730,7 @@ vy_index_full_by_key(struct vy_index *index, struct vy_tx *tx,
tuple_unref(key);
if (rc != 0)
return -1;
- if (index->id == 0 || found == NULL) {
+ if (index->index_id == 0 || found == NULL) {
*result = found;
return 0;
}
@@ -1835,7 +1836,7 @@ vy_delete(struct vy_env *env, struct vy_tx *tx, struct txn_stmt *stmt,
assert(stmt->old_tuple != NULL);
return vy_delete_impl(env, tx, space, stmt->old_tuple);
} else { /* Primary is the single index in the space. */
- assert(index->id == 0);
+ assert(index->index_id == 0);
struct tuple *delete =
vy_stmt_new_surrogate_delete_from_key(request->key,
pk->key_def,
@@ -1874,7 +1875,8 @@ vy_check_update(struct space *space, const struct vy_index *pk,
if (!key_update_can_be_skipped(pk->key_def->column_mask, column_mask) &&
vy_tuple_compare(old_tuple, new_tuple, pk->key_def) != 0) {
diag_set(ClientError, ER_CANT_UPDATE_PRIMARY_KEY,
- index_name_by_id(space, pk->id), space_name(space));
+ index_name_by_id(space, pk->index_id),
+ space_name(space));
return -1;
}
return 0;
@@ -1918,7 +1920,7 @@ vy_update(struct vy_env *env, struct vy_tx *tx, struct txn_stmt *stmt,
/* Apply update operations. */
struct vy_index *pk = vy_index(space->index[0]);
assert(pk != NULL);
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
/* Primary key is dumped last. */
assert(!vy_is_committed_one(env, space, pk));
uint64_t column_mask = 0;
@@ -2007,7 +2009,7 @@ vy_insert_first_upsert(struct vy_env *env, struct vy_tx *tx,
assert(space->index_count > 0);
assert(vy_stmt_type(stmt) == IPROTO_INSERT);
struct vy_index *pk = vy_index(space->index[0]);
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
if (vy_tx_set(tx, pk, stmt) != 0)
return -1;
struct vy_index *index;
@@ -2292,7 +2294,7 @@ vy_insert(struct vy_env *env, struct vy_tx *tx, struct txn_stmt *stmt,
if (pk == NULL)
/* The space hasn't the primary index. */
return -1;
- assert(pk->id == 0);
+ assert(pk->index_id == 0);
/* Primary key is dumped last. */
assert(!vy_is_committed_one(env, space, pk));
if (tuple_validate_raw(pk->mem_format, request->tuple))
@@ -3571,7 +3573,7 @@ vy_squash_process(struct vy_squash *squash)
struct key_def *def = index->cmp_def;
/* Upserts enabled only in the primary index. */
- assert(index->id == 0);
+ assert(index->index_id == 0);
/*
* Use the committed read view to avoid squashing
@@ -3666,7 +3668,7 @@ vy_squash_process(struct vy_squash *squash)
tuple_unref(result);
return 0;
}
- assert(index->id == 0);
+ assert(index->index_id == 0);
struct tuple *applied =
vy_apply_upsert(mem_stmt, result, def, mem->format,
mem->upsert_format, true);
@@ -3860,7 +3862,7 @@ vinyl_iterator_primary_next(struct iterator *base, struct tuple **ret)
{
assert(base->next = vinyl_iterator_primary_next);
struct vinyl_iterator *it = (struct vinyl_iterator *)base;
- assert(it->index->id == 0);
+ assert(it->index->index_id == 0);
struct tuple *tuple;
if (it->tx == NULL) {
@@ -3894,7 +3896,7 @@ vinyl_iterator_secondary_next(struct iterator *base, struct tuple **ret)
{
assert(base->next = vinyl_iterator_secondary_next);
struct vinyl_iterator *it = (struct vinyl_iterator *)base;
- assert(it->index->id > 0);
+ assert(it->index->index_id > 0);
struct tuple *tuple;
if (it->tx == NULL) {
@@ -3977,7 +3979,7 @@ vinyl_index_create_iterator(struct index *base, enum iterator_type type,
}
iterator_create(&it->base, base);
- if (index->id == 0)
+ if (index->index_id == 0)
it->base.next = vinyl_iterator_primary_next;
else
it->base.next = vinyl_iterator_secondary_next;
diff --git a/src/box/vy_index.c b/src/box/vy_index.c
index 9c199ddd..e4f567e2 100644
--- a/src/box/vy_index.c
+++ b/src/box/vy_index.c
@@ -62,7 +62,7 @@ vy_index_validate_formats(const struct vy_index *index)
assert(index->upsert_format != NULL);
uint32_t index_field_count = index->mem_format->index_field_count;
(void) index_field_count;
- if (index->id == 0) {
+ if (index->index_id == 0) {
assert(index->disk_format == index->mem_format);
assert(index->disk_format->index_field_count ==
index_field_count);
@@ -115,7 +115,7 @@ vy_index_name(struct vy_index *index)
{
char *buf = tt_static_buf();
snprintf(buf, TT_STATIC_BUF_LEN, "%u/%u",
- (unsigned)index->space_id, (unsigned)index->id);
+ (unsigned)index->space_id, (unsigned)index->index_id);
return buf;
}
@@ -236,7 +236,7 @@ vy_index_new(struct vy_index_env *index_env, struct vy_cache_env *cache_env,
index->in_dump.pos = UINT32_MAX;
index->in_compact.pos = UINT32_MAX;
index->space_id = index_def->space_id;
- index->id = index_def->iid;
+ index->index_id = index_def->iid;
index->opts = index_def->opts;
index->check_is_unique = index->opts.is_unique;
vy_index_read_set_new(&index->read_set);
@@ -355,7 +355,7 @@ vy_index_create(struct vy_index *index)
int rc;
char path[PATH_MAX];
vy_index_snprint_path(path, sizeof(path), index->env->path,
- index->space_id, index->id);
+ index->space_id, index->index_id);
char *path_sep = path;
while (*path_sep == '/') {
/* Don't create root */
@@ -404,10 +404,10 @@ vy_index_recover_run(struct vy_index *index,
run->dump_lsn = run_info->dump_lsn;
if (vy_run_recover(run, index->env->path,
- index->space_id, index->id) != 0 &&
+ index->space_id, index->index_id) != 0 &&
(!force_recovery ||
vy_run_rebuild_index(run, index->env->path,
- index->space_id, index->id,
+ index->space_id, index->index_id,
index->cmp_def, index->key_def,
index->mem_format, index->upsert_format,
&index->opts) != 0)) {
@@ -553,7 +553,7 @@ vy_index_recover(struct vy_index *index, struct vy_recovery *recovery,
*/
struct vy_index_recovery_info *index_info;
index_info = vy_recovery_lookup_index(recovery,
- index->space_id, index->id);
+ index->space_id, index->index_id);
if (is_checkpoint_recovery) {
if (index_info == NULL) {
/*
@@ -565,7 +565,7 @@ vy_index_recover(struct vy_index *index, struct vy_recovery *recovery,
diag_set(ClientError, ER_INVALID_VYLOG_FILE,
tt_sprintf("Index %u/%u not found",
(unsigned)index->space_id,
- (unsigned)index->id));
+ (unsigned)index->index_id));
return -1;
}
if (lsn > index_info->index_lsn) {
@@ -850,7 +850,7 @@ vy_index_commit_upsert(struct vy_index *index, struct vy_mem *mem,
* UPSERT is enabled only for the spaces with the single
* index.
*/
- assert(index->id == 0);
+ assert(index->index_id == 0);
const struct tuple *older;
int64_t lsn = vy_stmt_lsn(stmt);
diff --git a/src/box/vy_index.h b/src/box/vy_index.h
index 4368f6a5..7a5a8aa8 100644
--- a/src/box/vy_index.h
+++ b/src/box/vy_index.h
@@ -148,8 +148,8 @@ struct vy_index {
* until all pending operations have completed.
*/
int refs;
- /** Index ID visible to the user. */
- uint32_t id;
+ /** Ordinal index number in the index array. */
+ uint32_t index_id;
/** ID of the space this index belongs to. */
uint32_t space_id;
/** Index options. */
diff --git a/src/box/vy_point_lookup.c b/src/box/vy_point_lookup.c
index ab0bc6b8..d92cb94f 100644
--- a/src/box/vy_point_lookup.c
+++ b/src/box/vy_point_lookup.c
@@ -267,7 +267,7 @@ vy_point_lookup_scan_slice(struct vy_index *index, struct vy_slice *slice,
vy_run_iterator_open(&run_itr, &index->stat.disk.iterator, slice,
ITER_EQ, key, rv, index->cmp_def, index->key_def,
index->disk_format, index->upsert_format,
- index->id == 0);
+ index->index_id == 0);
struct tuple *stmt;
rc = vy_run_iterator_next_key(&run_itr, &stmt);
while (rc == 0 && stmt != NULL) {
diff --git a/src/box/vy_read_iterator.c b/src/box/vy_read_iterator.c
index a265f587..3b5e34fc 100644
--- a/src/box/vy_read_iterator.c
+++ b/src/box/vy_read_iterator.c
@@ -649,7 +649,7 @@ vy_read_iterator_squash_upsert(struct vy_read_iterator *itr,
struct tuple *t = itr->curr_stmt;
/* Upserts enabled only in the primary index. */
- assert(vy_stmt_type(t) != IPROTO_UPSERT || index->id == 0);
+ assert(vy_stmt_type(t) != IPROTO_UPSERT || index->index_id == 0);
tuple_ref(t);
while (vy_stmt_type(t) == IPROTO_UPSERT) {
struct tuple *next;
@@ -755,7 +755,8 @@ vy_read_iterator_add_disk(struct vy_read_iterator *itr)
iterator_type, itr->key,
itr->read_view, index->cmp_def,
index->key_def, index->disk_format,
- index->upsert_format, index->id == 0);
+ index->upsert_format,
+ index->index_id == 0);
}
}
diff --git a/src/box/vy_scheduler.c b/src/box/vy_scheduler.c
index 382cf071..05234532 100644
--- a/src/box/vy_scheduler.c
+++ b/src/box/vy_scheduler.c
@@ -207,7 +207,7 @@ vy_dump_heap_less(struct heap_node *a, struct heap_node *b)
* ahead of secondary indexes of the same space, i.e. it must
* be dumped last.
*/
- return i1->id > i2->id;
+ return i1->index_id > i2->index_id;
}
#define HEAP_NAME vy_dump_heap
@@ -637,7 +637,7 @@ vy_task_write_run(struct vy_scheduler *scheduler, struct vy_task *task)
struct vy_run_writer writer;
if (vy_run_writer_create(&writer, task->new_run, index->env->path,
- index->space_id, index->id,
+ index->space_id, index->index_id,
index->cmp_def, index->key_def,
task->page_size, task->bloom_fpr,
task->max_output_count) != 0)
@@ -839,7 +839,7 @@ delete_mems:
index->is_dumping = false;
vy_scheduler_update_index(scheduler, index);
- if (index->id != 0)
+ if (index->index_id != 0)
vy_scheduler_unpin_index(scheduler, index->pk);
assert(scheduler->dump_task_count > 0);
@@ -893,7 +893,7 @@ vy_task_dump_abort(struct vy_scheduler *scheduler, struct vy_task *task,
index->is_dumping = false;
vy_scheduler_update_index(scheduler, index);
- if (index->id != 0)
+ if (index->index_id != 0)
vy_scheduler_unpin_index(scheduler, index->pk);
assert(scheduler->dump_task_count > 0);
@@ -935,7 +935,7 @@ vy_task_dump_new(struct vy_scheduler *scheduler, struct vy_index *index,
assert(scheduler->dump_generation < scheduler->generation);
struct errinj *inj = errinj(ERRINJ_VY_INDEX_DUMP, ERRINJ_INT);
- if (inj != NULL && inj->iparam == (int)index->id) {
+ if (inj != NULL && inj->iparam == (int)index->index_id) {
diag_set(ClientError, ER_INJECTION, "vinyl index dump");
goto err;
}
@@ -990,7 +990,7 @@ vy_task_dump_new(struct vy_scheduler *scheduler, struct vy_index *index,
struct vy_stmt_stream *wi;
bool is_last_level = (index->run_count == 0);
wi = vy_write_iterator_new(index->cmp_def, index->disk_format,
- index->upsert_format, index->id == 0,
+ index->upsert_format, index->index_id == 0,
is_last_level, scheduler->read_views);
if (wi == NULL)
goto err_wi;
@@ -1010,7 +1010,7 @@ vy_task_dump_new(struct vy_scheduler *scheduler, struct vy_index *index,
index->is_dumping = true;
vy_scheduler_update_index(scheduler, index);
- if (index->id != 0) {
+ if (index->index_id != 0) {
/*
* The primary index must be dumped after all
* secondary indexes of the same space - see
@@ -1124,7 +1124,8 @@ vy_task_compact_complete(struct vy_scheduler *scheduler, struct vy_task *task)
vy_log_tx_begin();
rlist_foreach_entry(run, &unused_runs, in_unused) {
if (vy_run_remove_files(index->env->path,
- index->space_id, index->id,
+ index->space_id,
+ index->index_id,
run->id) == 0) {
vy_log_forget_run(run->id);
}
@@ -1265,7 +1266,7 @@ vy_task_compact_new(struct vy_scheduler *scheduler, struct vy_index *index,
struct vy_stmt_stream *wi;
bool is_last_level = (range->compact_priority == range->slice_count);
wi = vy_write_iterator_new(index->cmp_def, index->disk_format,
- index->upsert_format, index->id == 0,
+ index->upsert_format, index->index_id == 0,
is_last_level, scheduler->read_views);
if (wi == NULL)
goto err_wi;
diff --git a/src/box/vy_tx.c b/src/box/vy_tx.c
index 01130020..1b583240 100644
--- a/src/box/vy_tx.c
+++ b/src/box/vy_tx.c
@@ -525,7 +525,7 @@ vy_tx_prepare(struct vy_tx *tx)
MAYBE_UNUSED uint32_t current_space_id = 0;
stailq_foreach_entry(v, &tx->log, next_in_log) {
struct vy_index *index = v->index;
- if (index->id == 0) {
+ if (index->index_id == 0) {
/* The beginning of the new txn_stmt is met. */
current_space_id = index->space_id;
repsert = NULL;
@@ -816,7 +816,7 @@ vy_tx_set(struct vy_tx *tx, struct vy_index *index, struct tuple *stmt)
struct txv *old = write_set_search_key(&tx->write_set, index, stmt);
/* Found a match of the previous action of this transaction */
if (old != NULL && vy_stmt_type(stmt) == IPROTO_UPSERT) {
- assert(index->id == 0);
+ assert(index->index_id == 0);
uint8_t old_type = vy_stmt_type(old->stmt);
assert(old_type == IPROTO_UPSERT ||
old_type == IPROTO_INSERT ||
diff --git a/test/unit/vy_point_lookup.c b/test/unit/vy_point_lookup.c
index 52f4427e..c324160f 100644
--- a/test/unit/vy_point_lookup.c
+++ b/test/unit/vy_point_lookup.c
@@ -19,7 +19,7 @@ write_run(struct vy_run *run, const char *dir_name,
{
struct vy_run_writer writer;
if (vy_run_writer_create(&writer, run, dir_name,
- index->space_id, index->id,
+ index->space_id, index->index_id,
index->cmp_def, index->key_def,
4096, 0.1, 100500) != 0)
goto fail;
@@ -193,7 +193,7 @@ test_basic()
}
struct vy_stmt_stream *write_stream
= vy_write_iterator_new(pk->cmp_def, pk->disk_format,
- pk->upsert_format, pk->id == 0,
+ pk->upsert_format, true,
true, &read_views);
vy_write_iterator_new_mem(write_stream, run_mem);
struct vy_run *run = vy_run_new(&run_env, 1);
@@ -228,7 +228,7 @@ test_basic()
}
write_stream
= vy_write_iterator_new(pk->cmp_def, pk->disk_format,
- pk->upsert_format, pk->id == 0,
+ pk->upsert_format, true,
true, &read_views);
vy_write_iterator_new_mem(write_stream, run_mem);
run = vy_run_new(&run_env, 2);
--
2.11.0
More information about the Tarantool-patches
mailing list