mirror of https://gitee.com/bigwinds/arangodb
Bug fix/issues 23122018 (#7847)
This commit is contained in:
parent
20d5e1655e
commit
f4f61e2947
|
@ -483,7 +483,7 @@ class Utf32String {
|
||||||
Utf32String& operator=(const Utf32String& that) {
|
Utf32String& operator=(const Utf32String& that) {
|
||||||
if (this != &that) {
|
if (this != &that) {
|
||||||
delete[] _data;
|
delete[] _data;
|
||||||
_data = new char32_t[that._length]();
|
_data = new char32_t[that._length + 1]();
|
||||||
_length = that._length;
|
_length = that._length;
|
||||||
memcpy(_data, that._data, sizeof(char32_t) * _length);
|
memcpy(_data, that._data, sizeof(char32_t) * _length);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
devel
|
devel
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
* speed up data-modification operations in exclusive transactions in the RocksDB
|
||||||
|
storage engine
|
||||||
|
|
||||||
* An AQL query that uses the edge index only and returns the opposite side of
|
* An AQL query that uses the edge index only and returns the opposite side of
|
||||||
the edge can now be executed in a more optimized way, e.g.
|
the edge can now be executed in a more optimized way, e.g.
|
||||||
|
|
||||||
|
|
|
@ -206,6 +206,12 @@ void RocksDBTransactionState::createTransaction() {
|
||||||
trxOpts.set_snapshot = true;
|
trxOpts.set_snapshot = true;
|
||||||
// unclear performance implications do not use for now
|
// unclear performance implications do not use for now
|
||||||
// trxOpts.deadlock_detect = !hasHint(transaction::Hints::Hint::NO_DLD);
|
// trxOpts.deadlock_detect = !hasHint(transaction::Hints::Hint::NO_DLD);
|
||||||
|
|
||||||
|
if (isOnlyExclusiveTransaction()) {
|
||||||
|
// we are exclusively modifying collection data here, so we can turn off
|
||||||
|
// all concurrency controls to save time
|
||||||
|
trxOpts.skip_concurrency_control = true;
|
||||||
|
}
|
||||||
|
|
||||||
TRI_ASSERT(_rocksTransaction == nullptr ||
|
TRI_ASSERT(_rocksTransaction == nullptr ||
|
||||||
_rocksTransaction->GetState() == rocksdb::Transaction::COMMITED ||
|
_rocksTransaction->GetState() == rocksdb::Transaction::COMMITED ||
|
||||||
|
|
|
@ -149,9 +149,15 @@ set(ARANGODB_TESTS_SOURCES
|
||||||
|
|
||||||
if (LINUX)
|
if (LINUX)
|
||||||
# add "-fno-var-tracking" to the compiler flags
|
# add "-fno-var-tracking" to the compiler flags
|
||||||
# this speeds up the compilation with newer g++ versions and prevents the
|
# this speeds up the compilation with optimizations and newer g++ versions
|
||||||
# "variable tracking size limit exceeded warnings"
|
# and prevents the "variable tracking size limit exceeded warnings" from
|
||||||
set_source_files_properties(${ARANGODB_TESTS_SOURCES} PROPERTIES COMPILE_FLAGS -fno-var-tracking)
|
# occurring
|
||||||
|
if (CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
# also turn off super-expensive global common subexpression elimination for tests
|
||||||
|
set_source_files_properties(${ARANGODB_TESTS_SOURCES} PROPERTIES COMPILE_FLAGS "-fno-var-tracking -fno-gcse")
|
||||||
|
else ()
|
||||||
|
set_source_files_properties(${ARANGODB_TESTS_SOURCES} PROPERTIES COMPILE_FLAGS -fno-var-tracking)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_executable(
|
add_executable(
|
||||||
|
|
Loading…
Reference in New Issue