Update README.md
This commit is contained in:
parent
aae5e18ae4
commit
9edcb70228
131
README.md
131
README.md
@ -41,6 +41,10 @@
|
||||
<li><a href="#основные-термины">Основные термины</a></li>
|
||||
<li><a href="#подготовка">Подготовка</a></li>
|
||||
<li><a href="#компиляция">Компиляция</a></li>
|
||||
<li><a href="#примеры">Примеры</a></li>
|
||||
<li><a href="#кластер">Кластер</a></li>
|
||||
<li><a href="#проблемы">Проблемы</a></li>
|
||||
<li><a href="#дорожнаякарта">Дорожная карта</a></li>
|
||||
<li><a href="#вклад">Вклад</a></li>
|
||||
<li><a href="#контакты">Контакты</a></li>
|
||||
</ol>
|
||||
@ -119,7 +123,132 @@ Futriix является резидентной субд, т.е. храняще
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
> **Rfut также может быть скомпилирован для следующих операционных систем: `Linux`, `OSX`, `Open Indiana`, `FreeBSD`, но сборка для этих операционных систем не проводилась!!!**
|
||||
> **Futriix также может быть скомпилирован для следующих операционных систем: `Linux`, `OSX`, `Open Indiana`, `FreeBSD`, но сборка для этих операционных систем не проводилась!!!**
|
||||
|
||||
<!-- USAGE EXAMPLES -->
|
||||
## Примеры
|
||||
|
||||
В данном разделе приведён пример основных команд субд Futriix
|
||||
|
||||
Запускаем клиент Futriix, перейдя в каталог с исходным кодом:
|
||||
```sh
|
||||
$ cd src && ./futriix-cli
|
||||
```
|
||||
|
||||
Проверяем доступность сервера, выполняяя команду `ping`, если будет получен ответ `pong`-значит сервер доступен и работает корректно
|
||||
```sh
|
||||
127.0.0.1:futriix:~> ping
|
||||
PONG
|
||||
```
|
||||
Присваеваем значение переменной `foo` равное `bar`, командой ниже:
|
||||
```sh
|
||||
127.0.0.1:futriix:~> set foo bar
|
||||
OK
|
||||
```
|
||||
|
||||
Получаем значение переменной `foo`, командой ниже:
|
||||
```sh
|
||||
$ get foo
|
||||
"bar"
|
||||
```
|
||||
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
## Кластер
|
||||
|
||||
1. Откройте директорию с Futriix:
|
||||
```sh
|
||||
$ cd futriix
|
||||
```
|
||||
2. Откройте файл конфигурации futriix.conf в любом текстовом редакторе, например nano, как в примере приведённом ниже:
|
||||
```sh
|
||||
$ nano futriix/futriix.conf
|
||||
```
|
||||
3. Проверьте, установлены ли значения "yes" для параметров "active-replica" и "multi-master" в файле конфигурации `futriix.conf`
|
||||
После чего добавьте в файл конфигурации ip-адреса, узлов вашего кластера.
|
||||
Если вы всё сделали правильно у вас должны отобразится строки в файле конфигурации `futriix.conf` как показано ниже:
|
||||
```sh
|
||||
port 7000
|
||||
cluster-enabled yes
|
||||
cluster-config-file nodes.conf
|
||||
cluster-node-timeout 5000
|
||||
appendonly yes
|
||||
|
||||
```
|
||||
4. Сохраните внесённые вами изменения, выйдите из редактора, воспользовавшись командами ниже:
|
||||
```sh
|
||||
$ ctrl+O
|
||||
$ ctrl+x
|
||||
```
|
||||
5. Перейдите в директорию Futriix и запустите скрипт `cluster.sh` с параметрами `pick` (скрипт запущенный с данным параметром "соберёт кластер"), и `run`,(скрипт запущенный с данным параметром "запустит кластер") как указано ниже:
|
||||
```sh
|
||||
$ ./cluster pick
|
||||
$ ./cluster run
|
||||
```
|
||||
6. Для остановки кластера запустите скрипт `cluster.sh` с параметром `stop`
|
||||
```sh
|
||||
$ ./cluster stop
|
||||
```
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
## Проблемы
|
||||
|
||||
В данном разделе описаны типовые проблемы, возникающие при эксплуатации субд Futrix.
|
||||
|
||||
1. **Описание проблемы:** При запуске инстанса futriix, появляется следующее сообщение:
|
||||
```sh
|
||||
Warning: no config file specified, using the default config. In order to specify a config file use ./futriix-server /path/to/futriix.conf
|
||||
```
|
||||
|
||||
**Решение:**
|
||||
|
||||
При запуске инстанса сервера futriix, указать корректный путь до файла конфигурации, командой ниже:
|
||||
```sh
|
||||
$ ./futriix-server /path/to/futriix.conf
|
||||
```
|
||||
|
||||
2. **Описание проблемы:** При запуске инстанса Futriix, появляется следующее сообщение:
|
||||
```sh
|
||||
1:12:S 18 Apr 2025 04:47:25.643 # NOTICE: Detuning locks due to high load per core: 97.49%
|
||||
1:12:S 18 Apr 2025 04:47:55.491 # NOTICE: CPU pressure reduced
|
||||
```
|
||||
|
||||
**Решение:**
|
||||
|
||||
Это штатная ситуация, и она не является ошибкой и не вызывает проблем. Суть этого сообщения в том, что futriix пытается корректно обработать ситуацию с превышением нагрузки на ЦП.
|
||||
|
||||
Futriix использует спинлоки для быстрой синхронизации. Когда нагрузка на ЦП превышает 100% на ядро, ядро может неосознанно предоставить время ЦП заблокированному потоку, который находится в состоянии ожидания, вместо активного потока. Это приводит к значительно большей задержке.
|
||||
|
||||
Когда такая ситуация обнаруживается, Futriix будет крутиться в ожидании меньшего времени, прежде чем приостановить поток. Это приводит к лучшей пропускной способности, когда время ЦП ограничено. Однако «правильным» решением является обеспечение того, чтобы время ЦП не было так ограничено.
|
||||
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
<!-- ROADMAP -->
|
||||
## Дорожная карта
|
||||
|
||||
- [x] Добавить поддержку хранимых процедур
|
||||
- [x] Добавить поддержку многопоточности
|
||||
- [x] Изменить приглашение командной строки клиента futriix-cli
|
||||
- [x] Добавить в скрипт cluster.sh, формирующий кластер Futriix, цветовые текстовые индикаторы состояния процесса с левой стороны
|
||||
- [x] Добавить поддержку модуля для работы с JSON
|
||||
- [x] Удалить поддержку Sentinel
|
||||
- [x] Добавить поддержку хранимых процедур
|
||||
- [x] Добавить поддержку языка запросов SQL
|
||||
- [x] Добавить поддержку запуска внешних команд ОС из субд
|
||||
- [x] Добавить макет интеллектуального помощника FutBot
|
||||
- [ ] Реализовать поддержку алгоритма Raft
|
||||
- [ ] Реализовать поддержку роли Podman для автоматического развёртывания кластера в виртуальной среде
|
||||
- [ ] Реализовать планировщик задач,основанный на вытесняющей многозадачности
|
||||
- [ ] Реализовать поддержку ACID-транзакций
|
||||
- [ ] Реализовать полноценного интеллектуального помощника FutBot, задачами которого будут быстрый поиск ответов на вопросы, возникающие при эксплуатации субд Futrix.
|
||||
|
||||
См. [Открытые проблемы](https://source.futriix.ru/gvsafronov/futriix/issues) полный список предлагаемых функций (и известных проблем).
|
||||
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
<!-- CONTRIBUTING -->
|
||||
|
||||
|
||||
|
||||
<!-- CONTRIBUTING -->
|
||||
## Вклад
|
||||
|
Loading…
x
Reference in New Issue
Block a user