parity-db
.
rocks_backend
, чтобы использовать rocksdb
по умолчанию.parity_backend
, чтобы использовать parity-db
.sled
функции.rocksdb
в качестве движка по умолчанию.bcs
на msgpack
по умолчанию.utils/slot_db
).rocksdb-rs
.is_uninitialized
.initialize_if_empty
.set_value
.sled
, похоже, мёртв, поэтому мы переключаем движок по умолчанию на rocksdb
.KeyEnDe
и ValueEnDe
, основанные на serde.bcs
как кодек по умолчанию.KeyEnDeOrdered
для некоторых примитивных типов.KeyEn
, KeyDe
, KeyEnDe
.ValueEn
, ValueDe
, ValueEnDe
.json
на bcs
.msgpack
).prune
.primitive-types v0.12.x
.msgpack
на json
для лучшей универсальности и совместимости.prune
.Никаких функциональных изменений, только обновление необходимых зависимостей.
branch_id
==> br_id
.branch_name
==> br_name
.version_id
==> ver_id
.version_name
==> ver_name
.prune
и оптимизирована её производительность.rocksdb
, если feature = "rocks_engine"
.primitive-types
необязательной.version_chgset_trie_root
:
iter().last()
, использование iter().next_back()
.vsdb
(путь: «vsdb/wrappers»).vsdb_core
(путь: «vsdb/core»).clone
была изменена на глубокую копию.
clone
унаследована shadow
.shadow
помечен как unsafe
._mut
для различных Iter
:
iter_mut
.values_mut
.range_mut
.None
на &[]
. Назначьте значение &[]
, vec![]
или Box<[]>
ключу, ключ будет рассматриваться как «удаленный»
area idx
для хранилища, дружественного к LSM.&mut self
.github.com/rust-util-collections
.branch_keep_only
: удалить все остальные ветки из целевого списка. Также очистит все сиротские версии.branch_remove
: очистка идентификатора ветки неполная. Поле branch_id_to_branch_name
грязное.iter_op
.Добавить итеративные функции в MapxMkVs
и его производные.
iter_op
.iter_op_by_branch
.iter_op_by_branch_version
.iter_op_with_key_prefix
.iter_op_with_key_prefix_by_branch
.iter_op_with_key_prefix_by_branch_version
.branch_has_versions
.prune
.prune
бесполезным (общие версии могут никогда не существовать). Результаты этих API xxx_list_xxx
ненадежны. Будет пытаться вернуть первый непустой список для справки, так как эта версия. Ветви или версии каждого дочернего экземпляра составного экземпляра Vs могут быть разными. > Например: есть три структуры Vs-структур struct Vs0(Vs1, Vs2); struct Vs1; struct Vs2
, вызывающий Vs0
не может гарантировать, что другие вызывающие объекты не будут напрямую создавать ветви и версии на Vs1
или Vs2
.branch_create_xxx
: добавить параметр «force» во все функции с префиксом branch_create
. Если значение «force» равно true, ветвь с тем же именем, что и целевая ветвь, будет автоматически удалена.OrphanVs
. get_value -> Value
:=> get_value -> Option<Value>
. get_mut -> MutValue
:=> get_mut -> Option<MutValue>
.branch_swap
: поменять местами базовый экземпляр двух ветвей. Небезопасно. Не потокобезопасно. Необходимо убедиться, что во время выполнения нет операций чтения и записи в эти две ветви. Логически похоже на std::ptr::swap
. > Например: если у вас есть основная ветка и тестовая ветка, данные всегда тестируются на тестовой ветке, а затем периодически объединяются обратно в основную ветку. Вместо того чтобы объединять тестовую ветку с основной веткой, а затем воссоздавать новую тестовую ветку, эффективнее просто поменять местами две ветки, а затем воссоздать новую тестовую ветку.
branch_is_empty
: проверить, пуста ли указанная ветка. Пустая означает, что на этой ветке нет фактических данных, даже если на ней есть несколько пустых версий.
branch_get_default
: получить имя ветки по умолчанию указанного экземпляра.
branch_list
: перечислить все имена веток указанного экземпляра.
version_list
: перечислить все имена версий по умолчанию.
version_list_by_branch
: перечислить все. Имена версий указанной ветви
version_list_globally
: вывести все имена версий глобального масштаба.
version_exists_globally
: проверить, существует ли версия в глобальном масштабе.
version_has_change_set
: проверить, были ли внесены изменения в версию.
version_clean_up_globally
: очистить все осиротевшие версии в глобальном масштабе.
version_revert_globally
: удалить указанную версию из глобального масштаба.
version_clean_up_globally
вручную, когда вам это нужно.branch_merge_to_force
: объединить вашу ветку с целевой веткой, даже если на целевой ветке существуют разные новые версии.
prune
: больше не выполняется в основной ветке, логика теперь заключается в том, чтобы вычислить общий префикс списка версий всех непустых ветвей, а затем обрезать этот список префиксов.
prune_by_branch
: был удалён.
branch_merge_to_parent
:=> branch_merge_to
: поддержка безопасного слияния в любую статическую родительскую ветвь.
Операция слияния версий больше не ограничивается слиянием с родительской ветвью.
Поддержка слияния с любой существующей ветвью.
Исходная ветка, которая была объединена, больше не будет автоматически удаляться.
Переименуйте двусмысленный суффикс «Rk» в некоторых структурах в «RawKey».
Переименуйте двусмысленный суффикс «Rv» в некоторых структурах в «RawValue».
Каждая ветка будет хранить полную копию последовательности версий.
Сделайте индексацию данных более эффективной.
Устраните необходимость в рекурсивных запросах.
Уровень ветки удаляется из карты ключ-значение с несколькими элементами.
Идентификатор версии гарантированно уникален в глобальном масштабе, поэтому этот уровень больше не имеет практического значения.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )