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

OSCHINA-MIRROR/deffpuzzl-STVM

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

STVM: высокоэффективная база данных с кешем

STVM (Truck of Virtual memory table) — это открытая база данных, написанная на языке ANSI C. Она поддерживает локальные вызовы API и сетевые вызовы. Данные всей таблицы хранятся в общей памяти IPC. На основе структуры данных strike языка C определяются записи строк, а RB-Tree и hash используются в качестве основных алгоритмов. Это высокоскоростная база данных кэша, которая находится между SQL и NoSQL.

  • Поддерживает основные функции SQL (insert, update, delete, select, group order, count, first).
  • Поддерживает последовательности.
  • Имеет очереди уровня миллионов (gcc версии >= 4.12).
  • Поддерживает уникальные индексы, запросы индексов и составные индексы.
  • Поддерживает многосимвольные динамические запросы.
  • Встроенный счётчик обращений к записям (горячие данные).
  • Кластеризация, синхронизация главный-подчиненный.
  • Функциональность транзакций (псевдотранзакции).
  • Основан на IPC, процесс завершается ненормально, что не приводит к потере данных, за исключением сбоя системы.
  • Поддержка синхронизации сетевого API, асинхронного и прямого вызова локального API.
  • Встроенная версия данных, обеспечение целостности и безопасности данных.
  • Интерфейс импорта и экспорта данных.

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

  • Размер табличного пространства определяется при создании и не может быть изменён после создания.
  • Многомашинный кластер не может использовать транзакции.
  • Данные не могут быть сохранены (в случае сбоя системы).
  • Ограничение длины индекса (по умолчанию 64 байта), требуется компиляция проекта.
  • После запуска нельзя изменять поля таблицы, но можно изменить псевдоним поля.
  • В одномашинном режиме необходимо настроить интерфейс выхода процесса, чтобы избежать ситуации, когда kill -9 завершает работающий процесс с таблицей памяти, вызывая тупик (можно использовать stvm -l table для сброса блокировки).

Рекомендуется использовать в следующих сценариях: кэш базы данных, кэш данных, управление событиями.

Неопределённое обновление: https://my.oschina.net/deffpuzzl/blog/1627626

1. Компиляция

Компиляция проекта

cd src каталог ./make

В каталоге ../lib создаются:

  • libstvm.a
  • libstvm.so
  • libstvm.so.1.2 -> ../lib/libstvm.so

В каталоге ../bin создаются:

  • stvm
  • detvm

2. Запуск

Создайте рабочий каталог stvm: mkdir tvmdb

  • TVMDBD=/home/stvm/tvmdb указывает на рабочий каталог stvm.
  • TVMCFG=$(TVMDBD)/.tvm.run — параметры запуска.

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

Запустите систему: > stvm -w

Остановите систему: > stvm -s

STVM также предоставляет простой инструмент типа sqlpuls. Войдите в интерфейс SQL, этот инструмент в основном используется для обслуживания и отладки.

stvm SQL

Обслуживание домена: > stvm DOM

Для получения дополнительной информации о конфигурации домена см.:

vi stvm.conf

После настройки домена его можно скомпилировать в $TVMCFG:

stvm -c stvm.conf

Затем запустите: > stvm -w.

Рекомендуется запускать в одномашинном 64-битном режиме, чтобы максимально повысить производительность.

Автор: Savens Liu

Электронная почта: deffpuzzl@qq.com

3. Обновление

====Обновление даты: 20180312====

    1. Поддержка динамического создания операторов таблиц.
    1. Добавлена функция экспорта структуры таблицы.

Использование: Пример синтаксиса создания таблицы: tbl_acct_base.def

В stvm SQL используйте create $file для создания таблицы.

====Обновление даты: 20180314====

    1. Добавлены функции экспорта и импорта структуры и данных таблицы.
    1. Добавлено количество кликов горячих данных API.

====Обновление даты: 20180430====

    1. Исправлена проблема с алгоритмом sizeof в скрипте create.
    1. Добавлен асинхронный интерфейс для операций вставки, удаления и обновления.

====Обновление даты: 20180515====

    1. Добавлен скрипт msql для выполнения команд M-SQL в пакетном режиме.
    1. Для полей таблицы добавлены псевдонимы, временно используемые в некоторых сценариях сопоставления полей.
    1. Добавлено ключевое слово comment, которое можно использовать локально в файлах сценариев или M-SQL.
    1. Исправлены проблемы с копированием символов char и нечеловеческими операциями в интерфейсе M-SQL.

====Обновление даты: 20180531====

    1. Добавлена функция replace (обновляется, если она существует, и добавляется, если её нет), включая синхронные и асинхронные интерфейсы.
    1. В M-SQL добавлена поддержка команды show index from tablename.
    1. Улучшен пользовательский опыт M-SQL (TAB автозаполнение, отображение showmode, showsize).

====Обновление даты: 20180610====

    1. Добавлены синхронные и асинхронные сетевые интерфейсы для очередей.
    1. Добавлена возможность экспорта длинных данных из таблицы без использования.

Создание очереди аналогично созданию таблицы: очередь не поддерживает создание индексов, есть два типа очередей на основе таблиц и строковых очередей, подробности см. в API. Пример синтаксиса создания очереди: выполните create que_user_info.def в M-SQL.

Следующая версия:

    1. Добавить распределённую блокировку.
    1. Добавить общий доступ к ресурсам между несколькими машинами.
    1. Основываясь на протоколе raft, вычислить распределённый кластер.
    1. Разработка интерфейса JAVA.

Часто встречающиеся ошибки

Q、failed to boot TVM, Invalid parameter or sem has disappeared
A:echo "500 X  X X" > /proc/sys/kernel/sem

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

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

Введение

STVM (truck of Virtual memory table) — это открытая разработка, написанная на языке ANSI C. Она поддерживает локальные вызовы API и сетевые вызовы. Все табличные данные хранятся в общей памяти IPC. Структура строк определяется с помощью структуры struck языка C. В качестве основных алгоритмов используются RB-Tree и hash. Это высокоскоростная баз... Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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