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

OSCHINA-MIRROR/mirrors_Tencent-mirrors_Tencent_3TS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Tencent Transaction Processing Testbed System (3TS) — это система, разработанная совместно командой TDSQL компании Tencent и Ключевой лабораторией инженерии данных и инженерии знаний Министерства образования Китайского народного университета. Система предназначена для разработки и построения унифицированной структуры обработки транзакций (включая распределённые транзакции). Она позволяет пользователям быстро создавать новые подходы к управлению параллелизмом через интерфейс доступа, предоставляемый структурой. На основе комплексного экспериментального исследования над бенчмарками и абстрагированными приложениями пользователи могут выбрать оптимальный подход к управлению параллелизмом. В настоящее время 3TS интегрировала 13 основных подходов к управлению параллелизмом и предоставляет общие бенчмарки, такие как TPC-C, PPS и YCSB. 3TS также предоставляет тест на уровень согласованности, чтобы решить проблему сложности выбора системы, вызванную взрывным развитием распределённых систем баз данных, и обеспечивает различение уровня согласованности и сравнение производительности.

Если вы хотите лучше понять цели нашего проекта, пожалуйста, ознакомьтесь с открытым объявлением 3TS.

Особенности

  1. Поддержка трёх способов генерации историй: обходное генерирование, случайное генерирование и генерирование из текстового файла.
  2. Встроенные алгоритмы, включая Serializable Algorithm, Conflict Serializable Algorithm, SSI, BOCC, FOCC и другие.
  3. Поддержка оценки стоимости алгоритма с точки зрения времени выполнения и скорости отката.

Зависимости

3TS-Coo

Система проверки согласованности. Пожалуйста, проверьте новейшее обновление в ветке 'coo-consistency-check'.

Мы обновляем результаты на веб-странице отчёта.

3TS-DA

Статический генератор случайных историй. Пожалуйста, проверьте новейшее обновление в ветке 'dev'.

  • компилятор, поддерживающий C++17 или более поздние версии (рекомендуется g++8);
  • libconfig 1.7.2;
  • gflags 2.1.1;
  • gtest 1.6.0.

Deneva

Система проверки производительности и согласованности. Пожалуйста, проверьте новейшее обновление в ветке 'dev'.

  • protobuf 3.9.1;
  • curl 7.29.0;
  • nanomsg 5.1.0.

Использование

  • Запустите make.sh, чтобы скомпилировать код. Если компиляция прошла успешно, будет создан двоичный файл 3TS.
  • Выполните команду cp config/config.cfg.template config.cfg, чтобы скопировать файл конфигурации.
  • Откройте файл vi config.cfg и измените его, чтобы определить поведение тестовой среды.
  • Запустите команду ./3TS --conf_path=config.cfg, чтобы выполнить тест. После завершения теста будет создан файл результатов теста.

Принцип работы

Структуру 3TS можно разделить на четыре части:

  • Runner: Определяет поведение тестовой среды. Тестовая среда теперь поддерживает два раннера. Пожалуйста, укажите раннер за элементом конфигурации Target, например, Target = ["FilterRun"].
    • FilterRun: Выводит результат обнаружения каждого алгоритма для каждой истории, который можно фильтровать.
    • BenchmarkRun: Тестирует производительность, выводя стоимость времени каждого алгоритма, обнаруживающего аномалии из одинакового количества историй при разных количествах транзакций и переменных номеров элементов.
  • Generator: Генерирует истории.
  • Algorithm: Обнаруживает аномалии в каждой истории, созданной Generator. Тестовая среда поддерживает следующие алгоритмы:
    • Serializable Algorithm (определяет, является ли история сериализуемой или нет на основе определения сериализации. Но стандарт проверки согласованности между результатами выполнения параллельной истории и сериализованной историей и стратегией чтения каждой транзакции различаются):
      • Сериализуемые алгоритмы на основе стандарта, согласно которому каждый соответствующий набор транзакционных операций чтения и каждая соответствующая версия переменных элементов одинаковы в четырёх стратегиях чтения.
        • "SerializableAlgorithm_ALL_SAME_RU" // стратегия незафиксированного чтения. «SerializableAlgorithm_ALL_SAME_RC» — стратегия чтения зафиксированных данных (чтение последней зафиксированной версии, что естественным образом позволяет избежать несериализуемых случаев, вызванных аномалией грязного чтения).

«SerializableAlgorithm_ALL_SAME_RR» — стратегия повторяемого чтения (при повторном чтении одного и того же элемента переменной в одной транзакции чтение предыдущей версии, что естественным образом позволяет избежать несериализуемых случаев, вызванных аномалией неповторяемого чтения).

«SerializableAlgorithm_ALL_SAME_SI» — стратегия моментального снимка чтения (естественным образом позволяет избежать несериализуемых случаев, вызванных фантомной аномалией).

В основанных на стандарте сериализуемых алгоритмах все зафиксированные данные транзакций и окончательные версии соответствующих элементов переменных одинаковы для всех четырёх стратегий чтения.

«SerializableAlgorithm_COMMIT_SAME_RU» — стратегия незафиксированного чтения.

«SerializableAlgorithm_COMMIT_SAME_RC» — стратегия зафиксированного чтения.

«SerializableAlgorithm_COMMIT_SAME_RR» — стратегия повторяемого чтения.

«SerializableAlgorithm_COMMIT_SAME_SI» — стратегия моментального снимка чтения.

В основанных на стандарте сериализуемых алгоритмах только окончательные версии соответствующих элементов переменных одинаковы для всех четырёх стратегий чтения.

«SerializableAlgorithm_FINAL_SAME_RU» — стратегия незафиксированного чтения.

«SerializableAlgorithm_FINAL_SAME_RC» — стратегия зафиксированного чтения.

«SerializableAlgorithm_FINAL_SAME_RR» — стратегия повторяемого чтения.

«SerializableAlgorithm_FINAL_SAME_SI» — стратегия моментального снимка чтения.

Конфликтный сериализуемый алгоритм: «ConflictSerializableAlgorithm».

Динамическое пересечение линий (выявление аномалии): «DLI_IDENTIFY».

Сериализуемая изоляция моментальных снимков: «SSI».

Изоляция моментальных снимков записи: «WSI».

Обратный оптимистический контроль параллелизма: «BOCC».

Прямой оптимистический контроль параллелизма: «FOCC».

Для получения разъяснений по другим элементам конфигурации см. комментарии в файле конфигурации.

Лицензия

GPLv3 @ Tencent.

Комментарии ( 0 )

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

Введение

Tencent Transaction Processing Testbed System (3TS) — это система верификации, предназначенная для проверки обработки транзакций в базах данных, разработанная командой CynosDB (TDSQL) компании Tencent совместно с ключевой лабораторией по образованию в области инженерии данных и инженерии знаний Китайского народного университета. Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors_Tencent-mirrors_Tencent_3TS.git
git@api.gitlife.ru:oschina-mirror/mirrors_Tencent-mirrors_Tencent_3TS.git
oschina-mirror
mirrors_Tencent-mirrors_Tencent_3TS
mirrors_Tencent-mirrors_Tencent_3TS
master