Update README.md
Some checks are pending
CI / test-ubuntu-latest (push) Waiting to run
CI / build-ubuntu-old (push) Waiting to run
CI / build-macos-latest (push) Waiting to run
CI / build-libc-malloc (push) Waiting to run

This commit is contained in:
Александр Кузнецов 2025-04-18 08:04:10 +00:00
parent bf45ed0147
commit 2f002e8169

View File

@ -53,7 +53,6 @@
</ol>
</details>
<!-- ABOUT THE PROJECT -->
## О проекте
@ -84,12 +83,11 @@ Futriix-Мультимодельная СУБД на языке С поддер
unix:$ 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)
* Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install)
## Компиляция
1. Копируем репозиторий
```sh
unix:$ git clone https://source.futriix.ru/gvsafronov/Futriix
@ -107,56 +105,16 @@ Futriix может быть скомпилирован для следующих
<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
unix:$ ./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>
### Дополнительные параметры компиляции
Для сборки проекта с поддержкой TLS выпоните команду:
```sh
```sh
unix:$ make BUILD_TLS=yes
```
```
Для сбоки проекта с поддержкой TLS, в качестве модуля, выполните команду:
```sh
```sh
unix:$ make BUILD_TLS=module
```
```
Для выполнения данной операции вам необходимо библиотека OpenSSL (например,
libssl-dev для Debian/Ubuntu).
@ -164,9 +122,9 @@ libssl-dev для Debian/Ubuntu).
После компиляции Futriix, рекомендуем запустить утилиту для проверки корректности сборки:
```sh
```sh
unix:$ make test
```
```
## Исправление проблем сборки с зависимостями или кэшированными параметрами сборки.
@ -295,6 +253,41 @@ PONG
```
<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
unix:$ ./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 -->
## Дорожная карта