largura de banda mínima necessária para o servidor de banco de dados remoto

1

Eu quero criar um pequeno aplicativo de armazenamento para minha empresa. Temos um depósito central que distribui para 8 pontos de vendas em todo o país. Eles insistem em uma solução interna. Estou pensando em configurar um servidor mySQL db Linux central e ter as ramificações conectadas a ele para armazenar vendas.

As consultas ao banco de dados das filiais serão mínimas, talvez 10 por hora. No entanto, preciso que todas as filiais possam armazenar cada dado de venda (ID do produto, ID do cliente) no banco de dados central no horário de pico, no máximo, uma vez a cada cinco minutos.

Minha pergunta é: posso sair com linhas DSL simples de 24mbps / 768kbps? Se não qual é o requisito de largura de banda? Posso confiar em um roteador de balanceamento de carga para combinar linhas adicionais, se necessário? Você pode propor algumas especificações de hardware do servidor?

Ok, deixe-me esclarecer isso um pouco. Tudo o que preciso é armazenar dados (prodctID, itemsSold) quando algo é vendido e recuperar a disponibilidade em outras lojas. Por exemplo, para devolver a quantidade de determinado produto em outras filiais, a fim de re-abastecimento do armazém central ou ter alguma outra filial enviar alguma coisa. Eu estou supondo que uma linha (branchName, itemQuantity) por cada outro ramo (7 ramos - 7 linhas) sempre que um ramo está fora de alguma coisa. Acho que os dados enviados são mínimos, mas não sei se há sobrecarga. Como posso estimar isso?

    
por user66734 13.01.2011 / 13:17

5 respostas

4

Somente você pode responder a essa pergunta medindo ou estimando o uso de largura de banda com base no número de consultas e / ou transações e no tamanho do conjunto de dados por consulta e / ou transação, multiplicado pelo número de consultas e / ou transações um período específico de tempo.

    
por 13.01.2011 / 13:31
2

Como você não vai transferir muitos dados, não precisará de muita largura de banda. Adicionalmente compressão usando f.e. Túneis SSH poderiam ajudar.

Na minha experiência, a latência é um problema muito maior para aplicativos remotos (DB).

    
por 16.01.2011 / 19:07
1

Você também pode configurar instâncias locais do MySQL em uma solução do tipo cluster. A propagação de alterações seria gerenciada de forma assíncrona pelo próprio banco de dados.

    
por 16.01.2011 / 23:21
1

Dado o escopo limitado de seu projeto, na verdade, deve ser bastante simples descobrir o tipo de largura de banda que você consumirá e a quantidade de tempo que levará.

Envio de consultas

Isso é bem simples de calcular. Vamos supor que esta seja sua consulta:

SELECT COUNT(*) as Qty, Branch
FROM ProdsTable
GROUP BY Branch
ORDER BY Branch

São 79 caracteres. 79 caracteres = 632 bytes, você tem uma conexão de entrada de 24 MB para que a consulta receba 24*1024*1024/632 consultas simultâneas (39819) antes de se tornar limitada à largura de banda. Eu não posso te dizer quanto tempo isso vai levar com certeza, porque:

  • A largura de banda disponível será determinada pela velocidade do fluxo ascendente da conexão do cliente
  • Existem cabeçalhos e autenticações adicionais que ocorrem com consultas, especialmente se você precisar iniciar a conexão antes de enviar a consulta

Mas deve ser razoavelmente rápido.

Recuperando dados

Vamos supor:

productID CHAR(20)
itemsSold INT

Isso é um total de 20 + 4 bytes para cada linha. 7 linhas = 7*(20+4) = 168 bytes. Você tem 768Kb de largura de banda de saída, então você pode enviar 4681 solicitações desse tamanho simultaneamente antes de começar a ser espremido na extremidade da banda.

Agora esqueça tudo que eu acabei de dizer

Porque há muito mais do que isso. Como eu já aludi, há overheads na autenticação, iniciando conexões, e então você tem latência sobre links DSL, possíveis problemas de taxa de contenção, e porque não é sobre uma rede comutada há toda possibilidade de que um monte de TCP A montagem e a re-transmissão serão necessárias para cada consulta e isso pode afetar drasticamente a velocidade percebida.

A única maneira de realmente saber é tentar.

    
por 17.01.2011 / 02:31
0

O requisito de largura de banda deve estar relacionado não apenas à frequência das consultas, mas deve estar relacionado ao tamanho das saídas e tabelas. Por exemplo, uma única consulta pode retornar uma única linha e outra consulta pode retornar milhares de linhas. Portanto, não há uma resposta específica, a menos que você tenha uma estimativa aproximada do tamanho dos seus dados e do tipo de consultas.

    
por 13.01.2011 / 13:24