diff --git a/README.md b/README.md index 515dd62b5..b2b4902f2 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,8 @@ Futriix является резидентной субд, т.е. храняще * **База Данных(БД)**-массив информация, хранящийся, например, на флешке, в файле, на кластере * **Резидентная СУБД**- субд, хранящая все свои данные в оперативной памяти, с периодическим сохранением на HDD или SSD. * **Система Управления Базами Данных(СУБД)**- Это программа для внесения изменений в базу данных и поиска по ней +* **Команды, выполняемые с привилегиями суперпользователя (root)**- отмечены символом приглашения **«#»** +* **Команды, выполняемые с правами обычного пользователя(user)** - отмечены символом приглашения **«$»**. ## Подготовка @@ -81,9 +83,9 @@ Futriix является резидентной субд, т.е. храняще * Устанавливаем язык программирования C/C++, соопутствующие утилиты (autoconf и другие) ```sh - unix:$ sudo apt update - unix:$ sudo apt upgrade - unix:$ sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev git hugepages + # sudo apt update + # sudo apt upgrade + # sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev git hugepages ``` * Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install) @@ -93,15 +95,15 @@ Futriix является резидентной субд, т.е. храняще 1. Копируем репозиторий ```sh - unix:$ git clone https://source.futriix.ru/gvsafronov/Futriix + $ git clone https://source.futriix.ru/gvsafronov/Futriix ``` 2. Переходим в каталог с исходном кодом src ```sh - unix:$ cd src/ + $ cd src/ ``` 3. Компилируем Futriix с помощью утилиты Make ```sh - unix:$ make + $ make ``` Futriix может быть скомпилирован для следующих операционных систем: Linux, OSX, OpenBSD, NetBSD, FreeBSD. Мы поддерживаем архитектуры endian и little endian, и 32-битные и 64-битные системы. @@ -110,11 +112,11 @@ Futriix может быть скомпилирован для следующих Для сборки проекта с поддержкой TLS выпоните команду: ```sh - unix:$ make BUILD_TLS=yes + $ make BUILD_TLS=yes ``` Для сбоки проекта с поддержкой TLS, в качестве модуля, выполните команду: ```sh - unix:$ make BUILD_TLS=module + $ make BUILD_TLS=module ``` Для выполнения данной операции вам необходимо библиотека OpenSSL (например, libssl-dev для Debian/Ubuntu). @@ -125,7 +127,7 @@ libssl-dev для Debian/Ubuntu). После компиляции Futriix, рекомендуем запустить утилиту для проверки корректности сборки: ```sh - unix:$ make test + $ make test ``` ## Исправление проблем сборки с зависимостями или кэшированными параметрами сборки. @@ -136,7 +138,7 @@ Futriix содержит некоторые зависимости, которы дерева зависимостей изменен каким-либо другим способом, обязательно используйте следующее команду для того, чтобы действительно все почистить и пересобрать с нуля: ```sh - unix:$ make distclean + $ make distclean ``` В результате работы команды выше будут очищены: аллокатор памяти jemalloc, язык lua, библиотеку hiredis, библиотеку linenoise а также другие зависимости. @@ -155,12 +157,12 @@ malloc по умолчанию, за исключением jemalloc, котор Чтобы принудительно скомпилировать libc malloc, выполните следующую команду: ```sh - unix:$ make MALLOC=libc + $ make MALLOC=libc ``` Для компиляции аллокатора jemalloc на операционной системе Mac OS X, выполните команду: ```sh - unix:$ make MALLOC=jemalloc + $ make MALLOC=jemalloc ``` @@ -169,7 +171,7 @@ malloc по умолчанию, за исключением jemalloc, котор Запускаем клиент Futriix, перейдя в каталог с исходным кодом: ```sh - unix:$ cd src && ./futriix-cli + $ cd src && ./futriix-cli ``` Проверяем доступность сервера, выполняяя команду `ping`, если будет получен ответ `pong`-значит сервер доступен и работает корректно @@ -185,7 +187,7 @@ malloc по умолчанию, за исключением jemalloc, котор Получаем значение переменной `foo`, командой ниже: ```sh - unix:$ get foo + $ get foo "bar" ``` @@ -195,11 +197,11 @@ malloc по умолчанию, за исключением jemalloc, котор 1. Откройте директорию с Futriix: ```sh - unix:$ cd futriix + $ cd futriix ``` 2. Откройте файл конфигурации futriix.conf в любом текстовом редакторе, например nano, как в примере приведённом ниже: ```sh - unix:$ nano futriix/futriix.conf + $ nano futriix/futriix.conf ``` 3. Найдите и установите значения "yes" для параметров "active-replica" и "multi-master". После чего добавьте в файл конфигурации ip-адреса, узлов вашего кластера. Если вы всё сделали правильно у вас должны отобразится строки в файле конфигурации `futriix.conf` как показано ниже: @@ -212,17 +214,17 @@ malloc по умолчанию, за исключением jemalloc, котор ``` 4. Сохраните внесённые вами изменения, выйдите из редактора, воспользовавшись командами ниже: ```sh - unix:$ ctrl+O - unix:$ ctrl+x + $ ctrl+O + $ ctrl+x ``` 5. Перейдите в директорию Futriix и запустите скрипт `cluster.sh` с параметрами `pick` (скрипт запущенный с данным параметром "соберёт кластер"), и `run`,(скрипт запущенный с данным параметром "запустит кластер") как указано ниже: ```sh - unix:$ ./cluster pick - unix:$ ./cluster run + $ ./cluster pick + $ ./cluster run ``` 6. Для остановки кластера запустите скрипт `cluster.sh` с параметром `stop` ```sh - unix:$ ./cluster stop + $ ./cluster stop ```

(К началу)

@@ -239,7 +241,7 @@ malloc по умолчанию, за исключением jemalloc, котор При запуске инстанса сервера futriix, указать корректный путь до файла конфигурации, командой ниже: ```sh - unix:$ ./futriix-server /path/to/futriix.conf + $ ./futriix-server /path/to/futriix.conf ``` 2. **Описание проблемы:** При запуске инстанса Futriix, появляется следующее сообщение: @@ -264,11 +266,12 @@ Futriix использует спинлоки для быстрой синхро - [x] Добавить поддержку хранимых процедур - [x] Добавить поддержку многопоточности - [x] Изменить приглашение командной строки клиента futriix-cli -- [x] Переписать скрипт cluster.sh, формирующий кластер Futriix +- [x] Добавить в скрипт cluster.sh, формирующий кластер Futriix, цветовые текстовые индикаторы состояния процесса с левой стороны - [x] Добавить поддержку модуля для работы с JSON - [x] Удалить поддержку Sentinel - [x] Добавить поддержку хранимых процедур - [x] Добавить поддержку языка запросов SQL +- [x] Добавить поддержку запуска внешних команд ОС из субд - [ ] Реализовать поддержку алгоритма Raft - [ ] Реализовать планировщик задач,основанный на вытесняющей многозадачности - [ ] Реализовать поддержку ACID-транзакций