1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kt10-VSDB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 00:58 4f22973

CHANGE LOG

v0.61.x

Внутренние оптимизации

  • Добавлен новый опциональный движок на основе parity-db.
    • Включите функцию rocks_backend, чтобы использовать rocksdb по умолчанию.
    • Включите функцию parity_backend, чтобы использовать parity-db.

v0.60.x

Внутренние оптимизации

  • Оптимизация производительности.

v0.59.x

Внутренние оптимизации

  • Убраны все связанные с sled функции.

Исправления ошибок

  • Исправлена ошибка с диапазоном для отрицательных целых чисел (ключ).

v0.57.x

Внутренние оптимизации

  • Глобально переключен на rocksdb в качестве движка по умолчанию.
  • Переключён кодек с bcs на msgpack по умолчанию.
  • Добавлена новая подбиблиотека: slot db (utils/slot_db).

v0.56.x

Внутренние оптимизации

  • Детали настройки.
  • Обновлена версия rocksdb-rs.

Новые API

  • Orphan: добавлены два новых API:
    • is_uninitialized.
    • initialize_if_empty.
  • Orphan: сделан публичным метод set_value.

v0.55.x

Изменения функций

  • Проект sled, похоже, мёртв, поэтому мы переключаем движок по умолчанию на rocksdb.

v0.54.x

Изменения функций

  • По умолчанию отключены встроенные реализации KeyEnDe и ValueEnDe, основанные на serde.

v0.53.x

Новые API

  • Добавились различные функции на основе trie/mpt.

Изменения функций

  • Функция «vs» по умолчанию отключена.

v0.52.x

Изменения функций

  • Расширена функция «derive» до «vs».

v0.51.x

Изменения функций

  • Используется bcs как кодек по умолчанию.

Внутренние оптимизации

  • Документы согласованы с кодовой базой.

v0.50.x

Внутренние оптимизации

  • Реализован KeyEnDeOrdered для некоторых примитивных типов.
  • Оптимизирован дизайн некоторых связанных с кодированием признаков:
    • KeyEn, KeyDe, KeyEnDe.
    • ValueEn, ValueDe, ValueEnDe.

v0.49.x

Исправление ошибок

Внутренняя оптимизация

  • Переключение кодека по умолчанию с json на bcs.
  • Добавление «message pack» обратно в список альтернативных кодеков (соответствующая функция: msgpack).

v0.48.x

Исправление ошибок

  • Исправление проблем, связанных с операцией prune.

Внутренняя оптимизация

  • Настройка параметров функций и деталей кода.
  • Поддержка встраивания для primitive-types v0.12.x.
  • Переключение кодека по умолчанию с msgpack на json для лучшей универсальности и совместимости.

v0.47.x

Новый API

  • Добавлено больше функций преобразования для структур, связанных с версией/ветвью.

Исправление ошибок

  • Исправлено несколько проблем, связанных с операцией prune.

v0.46.x

Никаких функциональных изменений, только обновление необходимых зависимостей.

v0.45.x

Внутренняя оптимизация

  • Избегание хранения полей, которые могут быть получены из других полей для экономии места, повышения эффективности.
    • НО использование памяти во время выполнения увеличится.
    • НО время перезапуска процесса увеличится.
  • Повышение гарантий атомарности при изменении данных.

Изменение API

  • Использование более коротких имён во всех API:
    • branch_id ==> br_id.
    • branch_name ==> br_name.
    • version_id ==> ver_id.
    • version_name ==> ver_name.

v0.44.x

Внутренняя оптимизация

  • Будут очищены «удалённые» KVs самой старой версии.
  • Улучшена способность prune и оптимизирована её производительность.
  • Запущен фоновый поток для асинхронной очистки потерянных экземпляров.
  • Включена встроенная LRU-кэш rocksdb, если feature = "rocks_engine".
  • Сделана поддержка primitive-types необязательной.

Новый API

  • version_chgset_trie_root:
    • Возвращает корень хеша набора изменений целевой версии (операция реального времени).

v0.43.x

Внутренняя оптимизация

  • Оптимизация производительности:
    • Настройка низкоуровневого механизма кодирования/декодирования.
    • Избежание использования iter().last(), использование iter().next_back().

v0.42.x

Изменение API

  • Разделение оригинального монолита на две части:
    • vsdb (путь: «vsdb/wrappers»).
    • vsdb_core (путь: «vsdb/core»).
  • Семантика clone была изменена на глубокую копию.
    • Семантика исходного clone унаследована shadow.
    • Примечание: недавно добавленный API shadow помечен как unsafe.
  • Добавлены методы _mut для различных Iter:
    • iter_mut.
    • values_mut.
    • range_mut.
  • Низкоуровневое выражение «не существует» было изменено с None на &[]. Назначьте значение &[], vec![] или Box<[]> ключу, ключ будет рассматриваться как «удаленный»

Внутренние оптимизации

  • Удалить кэш LRU.
  • Настройка area idx для хранилища, дружественного к LSM.
  • Оптимизация реализации внутреннего счетчика длины.

v0.41.1

Внутренние оптимизации

  • Включить кэш LRU при использовании sled в качестве бэкенда.

v0.41.0

Изменения API

  • Функции записи теперь имеют определения &mut self.

v0.37.2

Изменение метаинформации

  • Перенести адрес репозитория на github.com/rust-util-collections.

v0.36.0

Внутренние оптимизации

  • Оптимизировать условные атрибуты компиляции.
  • По умолчанию включить функцию сжатия.

v0.35.3

Внутренние оптимизации

  • Использовать абсолютный путь импорта в области определения макросов.

v0.35.0

Функциональные изменения

  • Удален встроенный MerkleTree.

v0.34.3

Внутренние оптимизации

  • Ослабить условия привязки K/V всех структурированных видов.

v0.34.2

Модульные тесты

  • Добавить больше модульных тестов, покрытие тестами достигло 75%.

v0.34.1

Внутренние оптимизации

  • Настроить параметры бэкэнда БД.

v0.34.0

Новые API

  • branch_keep_only: удалить все остальные ветки из целевого списка. Также очистит все сиротские версии.

Исправления ошибок

  • Счетчики длины экземпляров не являются атомарными. Многопоточная безопасность не может быть гарантирована.
  • branch_remove: очистка идентификатора ветки неполная. Поле branch_id_to_branch_name грязное.

v0.33.0

Изменения API

  • Изменить определение параметра обратного вызова iter_op.

v0.32.0

Новый API

Добавить итеративные функции в 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.

v0.31.4

Исправление ошибок

  • Исправить некорректную логику в функции branch_has_versions.

v0.31.3

Исправление ошибок

  • Исправить некорректную логику в функции prune.

Внутренняя оптимизация

  • Разрешить создание новых веток из пустой базовой ветки. Начальная версия не должна существовать. Это может сделать prune бесполезным (общие версии могут никогда не существовать). Результаты этих API xxx_list_xxx ненадежны. Будет пытаться вернуть первый непустой список для справки, так как эта версия. Ветви или версии каждого дочернего экземпляра составного экземпляра Vs могут быть разными. > Например: есть три структуры Vs-структур struct Vs0(Vs1, Vs2); struct Vs1; struct Vs2, вызывающий Vs0 не может гарантировать, что другие вызывающие объекты не будут напрямую создавать ветви и версии на Vs1 или Vs2.

v0.30.0

Изменения API

  • branch_create_xxx: добавить параметр «force» во все функции с префиксом branch_create. Если значение «force» равно true, ветвь с тем же именем, что и целевая ветвь, будет автоматически удалена.

v0.29.0

Исправление ошибок

  • Избежать некорректного паники в некоторых API OrphanVs. get_value -> Value :=> get_value -> Option<Value>. get_mut -> MutValue :=> get_mut -> Option<MutValue>.

v0.28.0

Новый API

  • 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: удалить указанную версию из глобального масштаба.

    • Опасно.
    • Сама версия и соответствующие ей изменения будут полностью удалены из всех ветвей.

v0.27.3

Внутренние оптимизации

  • Для осиротевших версий не будет выполняться очистка в реальном времени.
  • Они будут очищены во время операции «prune».
  • Вызовите version_clean_up_globally вручную, когда вам это нужно.

v0.27.2

Внутренние оптимизации

  • Игнорируйте пустые ветви во время обрезки.

v0.27.0

Новые API

  • branch_merge_to_force: объединить вашу ветку с целевой веткой, даже если на целевой ветке существуют разные новые версии.
    • Опасно.

Изменения API

  • prune: больше не выполняется в основной ветке, логика теперь заключается в том, чтобы вычислить общий префикс списка версий всех непустых ветвей, а затем обрезать этот список префиксов.

  • prune_by_branch: был удалён.

  • branch_merge_to_parent :=> branch_merge_to: поддержка безопасного слияния в любую статическую родительскую ветвь.

Внешние функциональные изменения

  • Операция слияния версий больше не ограничивается слиянием с родительской ветвью.

  • Поддержка слияния с любой существующей ветвью.

  • Исходная ветка, которая была объединена, больше не будет автоматически удаляться.

  • Переименуйте двусмысленный суффикс «Rk» в некоторых структурах в «RawKey».

  • Переименуйте двусмысленный суффикс «Rv» в некоторых структурах в «RawValue».

Внутренние оптимизации

  • Каждая ветка будет хранить полную копию последовательности версий.

  • Сделайте индексацию данных более эффективной.

  • Устраните необходимость в рекурсивных запросах.

  • Уровень ветки удаляется из карты ключ-значение с несколькими элементами.

  • Идентификатор версии гарантированно уникален в глобальном масштабе, поэтому этот уровень больше не имеет практического значения.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kt10-VSDB.git
git@api.gitlife.ru:oschina-mirror/kt10-VSDB.git
oschina-mirror
kt10-VSDB
kt10-VSDB
master