SharedStorage/README.md

22 lines
1.4 KiB
Markdown

### 📦 Поля структуры `Command`:
| Поле | Назначение |
| ---------------- | -------------------------------------------------- |
| `op` | Тип операции: `PUT`, `DELETE`, `FIND` |
| `key` | Хэш ключа `Hash128` |
| `value` | Буфер под значение (для PUT) |
| `value_size` | Размер значения в байтах |
| `response` | Буфер под ответ от сервера (используется при FIND) |
| `response_size` | Размер ответа в байтах |
| `response_ready` | Флаг: 0 (ожидание), 1 (ответ готов) |
---
### 🔥 Пошаговый обмен:
1. Клиент заполняет `Command` структуры (устанавливает поля, сбрасывает `response_ready = 0`).
2. Клиент `push_batch()` пачку команд в `SharedCommandQueue`.
3. Сервер `try_pop_batch()`, обрабатывает.
4. Сервер пишет результат обратно в поля `Command` (`response`, `response_size`, `response_ready=1`).
5. Клиент ждет готовности (`response_ready.load() == 1`) и читает результат.