Upload files to "/"

This commit is contained in:
Григорий Сафронов 2025-10-03 16:30:36 +00:00
parent 5122110a27
commit 5dd45e77ed

173
Черновик Readme.txt Normal file
View File

@ -0,0 +1,173 @@
1. Команды для заполнения WAL файла
Для заполнения файла futrum.wal нужно выполнить операции записи в базу данных. Вот последовательность команд:
# Переход в режим базы данных
inbox.start
# Создание пространства (коллекции)
create.space users
# Создание документов - эти операции записываются в WAL
create users user1 '{"name": "Alice", "age": 25, "email": "alice@example.com"}'
create users user2 '{"name": "Bob", "age": 30, "email": "bob@example.com"}'
create users user3 '{"name": "Charlie", "age": 35, "email": "charlie@example.com"}'
# Обновление документов - также записывается в WAL
update users user1 '{"name": "Alice Smith", "age": 26, "email": "alice.smith@example.com"}'
# Удаление документов - записывается в WAL
delete users user3
# Создание кортежей в пространстве
create.tuple users tuple1 '{"type": "profile", "data": {"premium": true, "settings": {"theme": "dark"}}}'
# Выход из режима базы данных
exit
После выполнения этих команд файл futrum.wal будет содержать записи всех операций создания, обновления и удаления.
2. Все реализованные команды во встроенной СУБД
Базовые команды
# Выход из приложения
exit
# Переключение между режимами
inbox.start # Переход в режим базы данных
exit # Возврат в режим Lua из режима базы данных
Команды CRUD операций
# Создание пространства (коллекции)
create.space <space_name>
# Создание документа
create <collection> <key> <json_value>
create users user1 '{"name": "John", "age": 30}'
create products prod1 '{"title": "Laptop", "price": 999.99}'
# Создание кортежа
create.tuple <space> <tuple_id> <json_value>
create.tuple users profile1 '{"type": "user_profile", "premium": true}'
# Чтение документа
read <collection> <key>
read users user1
read products prod1
# Обновление документа
update <collection> <key> <json_value>
update users user1 '{"name": "John Doe", "age": 31}'
# Удаление документа
delete <collection> <key>
delete users user1
Команды управления пользователями (ACL)
# Вход под пользователем
login <username>
login admin
login guest
# Добавление пользователя
add-user <username> <permissions>
add-user alice read,write
add-user bob read,write,admin
# Удаление пользователя
remove-user <username>
remove-user bob
# Список пользователей
list-users
Команды статуса и кластера
# Статус системы
status
cluster-status
Команды шардинга
# Добавление шард-узла
add-shard-node <node_url>
add-shard-node http://node1.example.com:8080
add-shard-node http://node2.example.com:8080
# Удаление шард-узла
remove-shard-node <node_url>
remove-shard-node http://node1.example.com:8080
# Список шард-узлов
list-shard-nodes
Команды индексов (новая функциональность)
# Создание первичного индекса
create-primary-index <collection>
create-primary-index users
create-primary-index products
# Создание вторичного индекса
create-secondary-index <collection> <field_name> <index_type>
create-secondary-index users email hash
create-secondary-index users age btree
create-secondary-index users name fulltext
create-secondary-index locations coordinates spatial
# Типы индексов:
# - hash : для точных поисков
# - btree : для диапазонных запросов
# - fulltext: для полнотекстового поиска
# - spatial : для пространственных данных
# Удаление индекса
drop-index <collection> <index_name>
drop-index users users_email_idx
# Список индексов коллекции
list-indexes <collection>
list-indexes users
# Поиск по индексу
query-by-index <collection> <index_name> <value>
query-by-index users users_email_idx "alice@example.com"
query-by-index users users_age_idx "25"
Команды Raft кластера
# Добавление узла
add-node <node_url>
add-node http://raft1.example.com:8090
# Удаление узла
remove-node <node_id>
remove-node node123
Пример полной сессии работы
# Запуск в режиме Lua
lua> inbox.start
# Переход в режим базы данных
futriiX:~> create.space customers
futriiX:~> create customers cust1 '{"name": "Company A", "city": "Moscow", "balance": 5000}'
futriiX:~> create customers cust2 '{"name": "Company B", "city": "SPb", "balance": 3000}'
futriiX:~> create-secondary-index customers city hash
futriiX:~> create-secondary-index customers balance btree
futriiX:~> list-indexes customers
futriiX:~> query-by-index customers customers_city_idx "Moscow"
futriiX:~> update customers cust1 '{"name": "Company A LLC", "city": "Moscow", "balance": 5500}'
futriiX:~> status
futriiX:~> exit
# Возврат в режим Lua
lua> exit
Все эти команды логируются в WAL файл при операциях записи (create, update, delete), что обеспечивает durability данных.