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

OSCHINA-MIRROR/paradigm4-pmemstore

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

PmemStore

PmemStore — это ответвление проекта Intel pmemkv, представляющего собой локальное/встроенное хранилище данных «ключ-значение», оптимизированное для постоянной памяти.

В дополнение к исходному pmemkv в PmemStore добавлен ещё один механизм хранения под названием PSKIPLIST, чтобы он больше подходил для поддержки рабочих нагрузок по разработке и извлечению функций в приложениях искусственного интеллекта. Постоянный skiplist впервые представлен в нашей статье VLDB'21 («Оптимизация механизма базы данных в памяти для онлайн-дополнения решений с использованием искусственного интеллекта на основе постоянной памяти». Чен Чен, Цзюнь Ян, Мянь Лу, Тайцзе Ван, Чжао Чжэн, Юйцян Чен, Вэньюань Дай, Биншэн Хэ, Вен-Фай Вонг, Гоань У, Юпинг Чжао, Энди Рудофф). Пожалуйста, ознакомьтесь с документом для получения более подробной информации.

Использовать PmemStore можно аналогично использованию pmemkv (дополнительную информацию см. в README-pmemkv.md).

Содержание

  1. Зависимость подмодуля (#Зависимость подмодуля)
  2. Сборка из исходных кодов (#Сборка из исходных кодов)
  3. Сообщество (#Сообщество)

Зависимость подмодуля

pskiplist

pskiplist — это подмодуль в PmemStore. Это постоянное и параллельное хранилище, основанное на skiplist, реализованном с помощью Persistent Compare and Swap (PCAS). Мы поддерживаем его в отдельном репозитории, потому что такая низкоуровневая реализация структуры данных может быть повторно использована и интегрирована с другими системами. Дополнительную информацию смотрите в репозитории.

Сборка из исходных кодов

Предварительные требования

  • Linux 64-bit (OSX и Windows пока не поддерживаются)
  • libpmem и libpmemobj, которые являются частью PMDK — Persistent Memory Development Kit 1.9.1
  • libpmemobj-cpp — C++ PMDK bindings 1.12
  • memkind — менеджер энергозависимой памяти 1.8.0 (требуется для механизмов vsmap и vcmap)
  • TBB — Thread Building Blocks (требуется для механизма vcmap)
  • RapidJSON — парсер JSON 1.0.0 (требуется библиотеке-помощнику libpmemkv_json_config)
  • Используется только для тестирования:
    • pmempool — утилита pmempool, часть PMDK
    • valgrind — инструмент для профилирования и обнаружения утечек памяти. Рекомендуется версия pmem, разветвлённая с инструментом pmemcheck, но также совместим исходный valgrind (требуется пакет valgrind-devel)
  • Используется только для разработки:
    • pandoc — конвертер разметки для создания manpages
    • doxygen — инструмент для генерации документации из аннотированных источников C++
    • graphviz — программное обеспечение для визуализации графов, необходимое для doxygen
    • perl — для скрипта проверки пробелов
    • clang format — форматировать и проверять стиль кодирования, требуется версия 9.0

Сборка PmemStore и запуск тестов

git clone https://github.com/4paradigm/pmemstore
cd pmemstore
mkdir ./build
cd ./build
cmake .. -DBUILD_EXAMPLES=OFF -DENGINE_VCMAP=OFF -DENGINE_VSMAP=OFF -DENGINE_PSKIPLIST=ON -DCMAKE_BUILD_TYPE=Debug      # run CMake, prepare Debug version
make -j$(nproc)                 # build everything

Запустите тесты

Измените tests/engines/pskiplist/default.cmake, чтобы указать свой собственный путь монтирования pmem (по умолчанию: /mnt/pmem0), затем запустите:

ctest --output-on-failure -R pskiplist

Будет добавлено больше тестовых случаев.

Сообщество

PmemStore разработан MemArk (https://memark.io/), техническим сообществом, которое фокусируется на расширении возможностей эволюции современной архитектуры памяти и оптимизации её применения. MemArk возглавляет 4Paradigm (https://www.4paradigm.com/) и другие спонсоры (например, Intel). Используя PmemStore, вы можете присоединиться к нашему интерактивному каналу для обсуждений в Slack: #pskiplist (https://join.slack.com/t/memarkworkspace/shared_invite/zt-o1wa5wqt-euKxFgyrUUrQCqJ4rE0oPw).

Обсуждение разработки: если вы хотите сообщить об ошибке, пожалуйста, используйте GitHub Issues; если вы хотите предложить новую функцию или начать запрос на вытягивание (pull request), пожалуйста, используйте обсуждения GitHub, и наши разработчики ответят вам оперативно.

Форум (на китайском): https://discuss.memark.io/.

Вы также можете связаться с авторами напрямую для получения обратной связи: — ЯН Джун: yangjun@4paradigm.com; — ЛУ Мянь: lumian@4paradigm.com; — ЧЖАН Хао: zhanghao@4apradigm.com; — ЧЭНЬ Чэн: chencheng@4apradigm.com.

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

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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