- Feb 03, 2017
-
-
Konstantin Nazarov authored
Jenkinsfile is a script, akin to .travis.yml that contains instructions how to build code in the repo. I'm experimenting to see if we can implement a similar workflow to what we have on travis.ci
-
Roman Tsisyk authored
-
Roman Tsisyk authored
Totally disable /usr/lib/rpm/brp-strip-* scripts on all versions of rpmbuild. Fixes #1901
-
Vladimir Davydov authored
Caused by a typo: range -> result Closes #2057
-
Vladimir Davydov authored
To improve incapsulation, make vy_recovery struct private to vy_log.c and provide vy_log methods needed for recovery.
-
Vladimir Davydov authored
-
- Feb 02, 2017
-
-
Konstantin Osipov authored
* fix a bug with partial initialization of tuple_format in case of zero field count (space with no indexes, we still may allocate a tuple for this space, so need an initialized format, but will fail to insert it) * replace assert() for small field_map_size with an error message, introduce a new error code for field count limit, i.e. limit on how many fields can participate in indexes * renames & comments
-
Roman Tsisyk authored
Optimize tuple format for cases when all keys are sequential and start from the first field: box.schema.space.create('memtx') box.space.memtx:create_index('sequential0', { parts = { 1, 'unsigned' }}) box.space.memtx:create_index('sequential1', { parts = { 1, 'unsigned', 2, 'unsigned' }}) box.space.memtx:create_index('sequential2', { parts = { 1, 'unsigned', 2, 'unsigned', 3, 'unsigned', 4, 'unsigned' }}) box.space.memtx:create_index('random1', { parts = { 3, 'unsigned' } }) In the example above only field 3 is now indexed by offset (was 2, 3, 4). + Improve error message in field_type_create() Closes #2046
-
Vladimir Davydov authored
- VY_LOG_TX_BUF_SIZE: macro -> enum - Fix say_debug() format in vy_log_tx_commit() - Cleanup vy_log_flush_f() ret code convention - Add a separate function, vy_log_tx_try_commit(), instead of passing no_discard=true to vy_log_tx_commit() - Refactor 'if' statement in vy_index_drop() - Fix comments: * vy_log_flush(): why entire buffer is flushed * vy_log_open(): mention that we abort recovery if we can't flush the log * vy_log_tx_commit(): explain why the log can be not open * vy_log_tx_commit(): add comment stating that we rollback transaction on failure
-
Vladislav Shpilevoy authored
Secondary index now store tuples with offsets. Needed for #1908
-
Vladislav Shpilevoy authored
Needed for #1908
-
Roman Tsisyk authored
* Remove unused part_count * Unify arguments order Needed for #1908
-
Vladimir Davydov authored
- Name vinyl metadata log as <lsn>.vymeta, where <lsn> is the last snapshot signature. - Create a new log on checkpoint, discarding records left from dead indexes and records that cancel each other. - Log rotation is done asynchronously from a coeio thread so as not to stall ongoing transactions. - While the log is being rotated, all log writers are locked out. This should be OK, because log is rotated fairly quickly and the scheduler, which is the primary user of the log, runs rarely. Closes #2031
-
Vladimir Davydov authored
We need to log index drop requests in order to be able to filter out dropped indexes from the metadata log on rotation, which is yet to be implemented. The problem is that we can't fail vy_index_drop(), because index drop request has already been written to WAL by the time it is called. We cope with it by writing VY_LOG_DROP_INDEX record with @no_discard flag set to true, so that even if vy_log_tx_commit() fails, it stays in the buffer and can be flushed along with the next transaction. If it isn't flushed before the server is restarted, we replay the record in the metadata log buffer on WAL recovery, returning to exactly the same condition we had before restart. While we are at it, rename VY_LOG_NEW_INDEX to VY_LOG_CREATE_INDEX for consistency.
-
Vladimir Davydov authored
- vy_log_write() now simply appends a record to the internal log buffer, hence it cannot fail, which simplifies the log API. - vy_log_tx_commit() flushes the buffer to xlog. It has a new flag @no_discard. If it is set, the buffer won't be reset on failure, so that the next transaction will retry to flush the records. Currently, it is not used by any caller, but it is required for a drop index record, which will be introduced later. - vy_log_write() can be used before the log was opened, in which case records will be flushed when the log is first opened. This is needed for drop records too. - vy_log_tx_rollback() is removed as it is not needed any more with vy_log_write() never failing.
-
Vladimir Davydov authored
In order to implement index drop logging, we will need to be able to use vy_log during local recovery when its xlog hasn't been open yet (it is open when recovery is complete). So let's extract the code opening xlog file from vy_log_new() and put it in a separate function, vy_log_open(), to be called after local recovery has completed, while creating vy_log from vy_env constructor.
-
Vladimir Davydov authored
So that we can access next_run_id and next_range_id directly. In order not to introduce dependency on latch.h, allocate a latch from heap and use forward declaration.
-
Vladimir Davydov authored
Currently, vy_recovery_load_index() only calls the callback for VY_LOG_INSERT_RANGE and VY_LOG_INSERT_RUN types of records, but not for VY_LOG_NEW_INDEX, because the latter is not needed during index recovery. However, we will need this event for vinyl metadata log rotation, so let's make vy_recovery_load_index() call the callback for this type of record too.
-
Konstantin Osipov authored
-
Vladimir Davydov authored
Not necessary as log records are checksummed.
-
- Feb 01, 2017
-
-
bigbes authored
net.box: set default timeout to 10s tarantoolctl: set console connection timeout to inifinity Closes #2054
-
bigbes authored
closes gh-1925
-
Roman Tsisyk authored
-
Roman Tsisyk authored
* Don't start tarantool on install * Don't restart tarantool on upgrade Fix #2053
-
Konstantin Osipov authored
We don't pass the WAL error to the caller, so at least log it in the error log. Do not try to sync data range in case of write error in xlog_write_row().
-
Georgy Kirichenko authored
Move fiber_pool struct to separate file. Prepare for detach fiber_pool from cbus.
-
Georgy Kirichenko authored
-
Georgy Kirichenko authored
-
Roman Tsisyk authored
-
- Jan 31, 2017
-
-
Vladimir Davydov authored
In order to rotate vinyl metadata log, we need to destroy the old xlog and create a new one instead, so we can't embed the xlog structure in vy_log. Let's store a pointer to xlog in vy_log instead.
-
Georgy Kirichenko authored
-
Roman Tsisyk authored
* Remove "raw" comparators and dead code * Fix inlining of comparison function * Switch vinyl to specialized code from tuple_compare.cc * Improve comments and minor renames Prepare for #2046 and #2048
-
Roman Tsisyk authored
Remove struct vy_stmt * -> char * -> struct vy_stmt * conversion from vy_task_compact_new().
-
Vladimir Davydov authored
We use ev_time() everywhere except xlog_init(), the latter uses ev_now() for some reason. This prevents xlog from being created/opened from a coeio task. Fix this.
-
Konstantin Osipov authored
* move cbus declaration to cbus.c, since going forward it's a private singleton * rename cbus_item to cbus_endpoint. It represents the state of a single cord in the cbus (but in the future, a single cord may have more than one endpoint. * move declaration of cbus_endpoint to cbus.c * factor out cbus_find_endpoint() * add/update comments * move cbus_init()/cbus_free() to main.cc * replace pthread_cond_signal() with pthread_cond_broadcast(), since in theory there can be many waiters on an endpoint to join.
-
Georgy Kirichenko authored
Now we can create one-direction cbus connections and each cbus consumer can have more than one producers. cbus_join will connect cord to cbus with given name and cpipe_create will create a route to corresponding destination
-
Roman Tsisyk authored
Fixes #2036
-
bigbes authored
-
Roman Tsisyk authored
-
Vladimir Davydov authored
This is pure refactoring. No functional changes intended.
-