Delete protocol.rs
This commit is contained in:
parent
0f68e114b4
commit
99a0faef62
154
protocol.rs
154
protocol.rs
@ -1,154 +0,0 @@
|
||||
// src/common/protocol.rs
|
||||
//! Протокол обмена данными для Falcot
|
||||
//!
|
||||
//! Определяет структуры команд и ответов для взаимодействия между
|
||||
//! компонентами системы с использованием wait-free сериализации.
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use crate::server::database::Index;
|
||||
|
||||
/// Команды для выполнения в базе данных
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum Command {
|
||||
Create {
|
||||
collection: String,
|
||||
document: Vec<u8>,
|
||||
},
|
||||
Read {
|
||||
collection: String,
|
||||
id: String,
|
||||
},
|
||||
Update {
|
||||
collection: String,
|
||||
id: String,
|
||||
document: Vec<u8>,
|
||||
},
|
||||
Delete {
|
||||
collection: String,
|
||||
id: String,
|
||||
},
|
||||
Query {
|
||||
collection: String,
|
||||
filter: Vec<u8>,
|
||||
},
|
||||
CreateProcedure {
|
||||
name: String,
|
||||
code: Vec<u8>,
|
||||
},
|
||||
CallProcedure {
|
||||
name: String,
|
||||
},
|
||||
BeginTransaction {
|
||||
transaction_id: String,
|
||||
},
|
||||
CommitTransaction {
|
||||
transaction_id: String,
|
||||
},
|
||||
RollbackTransaction {
|
||||
transaction_id: String,
|
||||
},
|
||||
CreateIndex {
|
||||
collection: String,
|
||||
index: Index,
|
||||
},
|
||||
QueryByIndex {
|
||||
collection: String,
|
||||
index_name: String,
|
||||
value: Vec<u8>,
|
||||
},
|
||||
// Новые команды для шардинга
|
||||
AddShardNode {
|
||||
node_id: String,
|
||||
address: String,
|
||||
capacity: u64,
|
||||
},
|
||||
RemoveShardNode {
|
||||
node_id: String,
|
||||
},
|
||||
MigrateShard {
|
||||
collection: String,
|
||||
from_node: String,
|
||||
to_node: String,
|
||||
shard_key: String,
|
||||
},
|
||||
RebalanceCluster,
|
||||
GetClusterStatus,
|
||||
// Команды для constraints
|
||||
AddConstraint {
|
||||
collection: String,
|
||||
constraint_name: String,
|
||||
constraint_type: String,
|
||||
field: String,
|
||||
value: Vec<u8>,
|
||||
},
|
||||
RemoveConstraint {
|
||||
collection: String,
|
||||
constraint_name: String,
|
||||
},
|
||||
// Команды для компрессии
|
||||
EnableCompression {
|
||||
collection: String,
|
||||
algorithm: String,
|
||||
},
|
||||
DisableCompression {
|
||||
collection: String,
|
||||
},
|
||||
// Команды для глобальных индексов
|
||||
CreateGlobalIndex {
|
||||
name: String,
|
||||
field: String,
|
||||
unique: bool,
|
||||
},
|
||||
QueryGlobalIndex {
|
||||
index_name: String,
|
||||
value: Vec<u8>,
|
||||
},
|
||||
}
|
||||
|
||||
/// Ответы от базы данных
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum Response {
|
||||
Success(Vec<u8>),
|
||||
Error(String),
|
||||
}
|
||||
|
||||
/// Сообщение для репликации
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ReplicationMessage {
|
||||
pub sequence: u64,
|
||||
pub command: Command,
|
||||
pub timestamp: i64,
|
||||
}
|
||||
|
||||
/// Структура для информации о шарде
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ShardInfo {
|
||||
pub node_id: String,
|
||||
pub address: String,
|
||||
pub capacity: u64,
|
||||
pub used: u64,
|
||||
pub collections: Vec<String>,
|
||||
}
|
||||
|
||||
/// Структура для статуса кластера
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ClusterStatus {
|
||||
pub nodes: Vec<ShardInfo>,
|
||||
pub total_capacity: u64,
|
||||
pub total_used: u64,
|
||||
pub rebalance_needed: bool,
|
||||
}
|
||||
|
||||
/// Wait-Free сериализация сообщений
|
||||
pub fn serialize<T: serde::Serialize>(value: &T) -> crate::common::error::Result<Vec<u8>> {
|
||||
rmp_serde::to_vec(value)
|
||||
.map_err(|e| crate::common::error::FalcotError::SerializationError(e.to_string()))
|
||||
}
|
||||
|
||||
/// Wait-Free десериализация сообщений
|
||||
pub fn deserialize<'a, T: serde::Deserialize<'a>>(bytes: &'a [u8]) -> crate::common::error::Result<T> {
|
||||
rmp_serde::from_slice(bytes)
|
||||
.map_err(|e| crate::common::error::FalcotError::SerializationError(e.to_string()))
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user