Update README.md

This commit is contained in:
gvsafronov committed 2026-09-29 18:50:47 +00:00
1 parent f8d09364f8
commit 233b280835
1 file changed
+4 -4
+4 -4
View File
@@ -215,14 +215,14 @@ futriix — это лёгкая распределённая NoSQL‑СУБД н
|----------|----------|----------| |----------|----------|----------|
| **Хранилище (Storage)** | `sync.Map` | Конкурентная хэш‑таблица для хранения баз данных, обеспечивает wait‑free чтение и запись | | **Хранилище (Storage)** | `sync.Map` | Конкурентная хэш‑таблица для хранения баз данных, обеспечивает wait‑free чтение и запись |
| | Атомарные счётчики (`atomic.Int64`) | Для отслеживания общего количества документов без блокировок | | | Атомарные счётчики (`atomic.Int64`) | Для отслеживания общего количества документов без блокировок |
| **База данных (Database)** | `sync.Map` коллекций | Синоним термнина "база данных" в реляционных СУБД | | **База данных (Database)** | `sync.Map` коллекций | Синоним термина "база данных" в реляционных СУБД |
| | Мьютексы (`sync.RWMutex`) | Для операций изменения структуры (создание/удаление коллекций) | | | Мьютексы (`sync.RWMutex`) | Для операций изменения структуры (создание/удаление коллекций) |
| **Коллекция (Collection)** | `sync.Map` документов | Ключ: ID документа, значение: указатель на `Document` | | **Коллекция (Collection)** | `sync.Map` документов | Ключ: ID документа, значение: указатель на `Document` |
| | `sync.Map` индексов | Отдельное хранилище для инвертированных индексов | | | `sync.Map` индексов | Отдельное хранилище для инвертированных индексов |
| | Атомарные счётчики | Количество документов (`docCount`) и размер в байтах (`sizeBytes`) | | | Атомарные счётчики | Количество документов (`docCount`) и размер в байтах (`sizeBytes`) |
| **Индекс (Index)** | `sync.Map` (значение → ID) | Реализация инвертированного индекса | | **Индекс (Index)** | **`lock-free skip-list`** (значение → ID) | Реализация инвертированного индекса. Заменяет `sync.Map`: устраняет внутренние блокировки, даёт упорядоченный обход и эффективный префиксный поиск |
| | Уникальный индекс | Прямая lookup‑операция $O(1)$ | | | Уникальный индекс | Прямая lookup‑операция $O(\log n)$ в среднем (было $O(1)$ у `sync.Map`, но без упорядоченности и с внутренними блокировками) |
| | Неуникальный индекс | Range‑сканирование с оптимизированным сравнением | | | Неуникальный индекс | Range‑сканирование в порядке возрастания ключей (детерминированный результат) |
| | Составной индекс | Конкатенация значений полей с разделителем `"|"` | | | Составной индекс | Конкатенация значений полей с разделителем `"|"` |
| **Документ (Document)** | `map[string]interface{}` | Динамическая схема полей | | **Документ (Document)** | `map[string]interface{}` | Динамическая схема полей |
| | Версия (`uint64`) | Для оптимистичных блокировок | | | Версия (`uint64`) | Для оптимистичных блокировок |