diff --git a/Черновик Readme.txt b/Черновик Readme.txt new file mode 100644 index 0000000..4cfa92e --- /dev/null +++ b/Черновик Readme.txt @@ -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 + +# Создание документа +create +create users user1 '{"name": "John", "age": 30}' +create products prod1 '{"title": "Laptop", "price": 999.99}' + +# Создание кортежа +create.tuple +create.tuple users profile1 '{"type": "user_profile", "premium": true}' + +# Чтение документа +read +read users user1 +read products prod1 + +# Обновление документа +update +update users user1 '{"name": "John Doe", "age": 31}' + +# Удаление документа +delete +delete users user1 + +Команды управления пользователями (ACL) + +# Вход под пользователем +login +login admin +login guest + +# Добавление пользователя +add-user +add-user alice read,write +add-user bob read,write,admin + +# Удаление пользователя +remove-user +remove-user bob + +# Список пользователей +list-users + +Команды статуса и кластера + +# Статус системы +status +cluster-status + +Команды шардинга + +# Добавление шард-узла +add-shard-node +add-shard-node http://node1.example.com:8080 +add-shard-node http://node2.example.com:8080 + +# Удаление шард-узла +remove-shard-node +remove-shard-node http://node1.example.com:8080 + +# Список шард-узлов +list-shard-nodes + +Команды индексов (новая функциональность) + +# Создание первичного индекса +create-primary-index +create-primary-index users +create-primary-index products + +# Создание вторичного индекса +create-secondary-index +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 +drop-index users users_email_idx + +# Список индексов коллекции +list-indexes +list-indexes users + +# Поиск по индексу +query-by-index +query-by-index users users_email_idx "alice@example.com" +query-by-index users users_age_idx "25" + +Команды Raft кластера +# Добавление узла +add-node +add-node http://raft1.example.com:8090 + +# Удаление узла +remove-node +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 данных. + + +