Update README.md
This commit is contained in:
1 parent
f8d09364f8
commit
233b280835
1 file changed
+4
-4
@@ -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`) | Для оптимистичных блокировок |
|
||||||
|
|||||||
Reference in new issue
Block a user