- Feed completo
- Feed dos comentários
- Feed do Fórum
- Feed Canal Games
- Feed Canal Fotografia
- Feed Canal Mobile
- Receba o Meio Bit via e-mail
Mantenha-se informado sobre as nossas novidades com nosso newsletter semanal, todas as segundas-feiras
As constantes, diárias e irritantes saídas do ar do Twitter estão deixando muita gente irritada, e a saída de Blaine Cook, arquiteto-chefe do projeto não deixou os fãs muito confortáveis. A grande briga na comunidade de desenvolvedores é se Ruby on Rails, o framework-base do Twitter escala ou não escala.
O Michael Arrington do TechCrunch postou algumas perguntas bem diretas, e o pessoal do Twitter não teve opção a não ser responder. Digamos que Ruby escalar ou não agora é irrelevante, o buraco é muito mais embaixo.
O Twitter aparentemente foi feito nas coxas. Sem nenhuma preocupação com crescimento futuro. A arquitetura não foi pensada para escalar, independente da linguagem utilizada.
O backend do sistema tem UMA MÁQUINA MySQL para gravação e três máquinas para consultas. E só. ~
O MySQL é um excelente banco para aplicações que exijam consultas simples, mas ele simplesmente NÃO funciona com consultas complexas. Perde feio em performance para o SQLServer, Oracle, DB2, PostgreSQL e qualquer outro banco "de verdade".
Talvez sua maior limitação seja na replicação de dados e no fallback entre servidores, quando da queda de um master. Existem soluções de mercado (pagas) para isso, mas o pessoal do Twitter pelo visto não sabia.
Quando o Twitter ameaça cair, um operador MANUALMENTE troca de um servidor de banco de dados para outro.
Agora estão planejando migrar de uma solução baseada em banco de dados para uma baseada em filesystem. Vão literalmente reinventar a roda, para depois descobrir que precisam de um banco de dados decente, e que é impossível gerenciar a quantidade de atualizações do Twitter via filesystem.
A impressão que se tem, vendo o Twitter, estudando o código da maioria das aplicações como o PHPNuke ou mesmo o Drupal é que gente sem qualificação e/ou experiência toca esses projetos. Não há otimização de código, tratamento de exceções, nada. O Drupal por exemplo até pouco tempo sequer tinha um dicionário de dados, que dirá um diagrama de caso e uso, e nem sonhar em uma documentação UML compliant.
Metodologia de desenvolvimento é algo importante. Não é preciso se você vai fazer uma besteirinha em meia-hora de PHP, mas se houver a menor possibilidade daquilo virar um projeto multiusuário e crescer, é melhor planejar desde o princípio.
Do contrário você acaba com um Twitter na mão, tendo que reiniciar servidor só pro bicho conseguir rodar.
Fonte: Twitter
No final, o Twitter vai perder seus usuários para o Jaiku da vida, o Plurk (é esse mesmo?) e até o Adocu.
Tiago Celestino - http://tcelestino.com.br/blog
Existe algum clone do twitter sem nome com duplo sentido?
HUahuauhauhauhauhauauhauhha
Também já me perguntei isso. 
"O MySQL é um excelente banco para aplicações que exijam consultas simples, mas ele simplesmente NÃO funciona com consultas complexas. Perde feio em performance para o SQLServer, Oracle, DB2, PostgreSQL e qualquer outro banco "de verdade"."
So say we all!
O mysql tem uma semente ruim, nasceu torto, pra quebrar um galho, estão enjambrando em cima. Stored Procedures não deve fazer nem dois anos que oferece. Quando lançaram isso, pro meu espanto, foi um alarde dos USUÁRIOS como se fosse a revolução dos SGBDs. Sendo que isso é tecnologia nova de uns 10 anos atrás.
O golfinho sua quando precisa ter múltiplas transações. Acoca bonito.
Mas... Se os responsáveis pelo twitter investissem alguns milhares de dólares no Oracle(ou outro proprietário) iriam jogar dinheiro fora. Tuning em DB é essencial para aplicação desse porte e pelo jeito, nem sabem do que se trata.
Já existe termo para os *tard do mysql ?
Dolphintards ?
Povo que diz "é melhor" sem nunca ter usado outra coisa e simplesmente porque veio tudo pronto no conjunto PHP + mysql + Apache.
Aposto que a maioria dos "dolphintards" só usou WAMP server...
Antes de fazer uma pergunta idiota, pesquise!
Acredito que todo projeto já nasce em teoria para "crescer" e não o contrário. Alguém conhece alguém que desenvolve algo para não ser usado ?
Já pensou se os caras começam o negócio rodando um super banco em cluster, com direito a alta disponibilidade, contingência, disaster recover e etc... provavelmente nem começariam... E se a demanda pelo sistema não atingisse a expectativa ? Ficariam com sobra de capacidade ? (Quem pagaria a conta ?)
Acho que tudo tem fases, e no mundo dos bancos, cada um tem seu objetivo e principalmente seu custo.
Acredito que muitos projetos devam sua viabilidade justamente pela possibilidade que os diversos tipos de ferramentas proporcionam em cada momento do projeto e o MySQL tem e acredito que terá ainda um papel bem importante em pequenos projetos.
Falar é fácil.
Para complementar o meu post, é só ver os comentários acima e lembrar que o youtube usa mysql e dos problemas do orkut na época do .Net
Pode até ser e acho bem provável que no caso do youtube, além do MySQL, outros bancos e formas de armazenamento devam ser usados, é só imaginar que vídeo demanda alta capacidade de storage, mas pensar que esse "banquinho" tem seu papel nesse ecosistema fala por si só.
No caso do Orkut, tudo começou como um experimento e sem grandes pretenssões para estudar uma teoria que se alguém ficar interessado posso até citar, mas ai o negócio explodiu e é o sucesso que é hoje. (Eu particularmente não uso mais. Usei no começo e depois larguei.)
O sistema até pode nascer com uma projeção de crescimento, mas o nível do crescimento foi o que pegou de surpresa o pessoal do twitter. Mas eles não tomaram as devidas providências, isso que causou a sobrecarga.
A respeito do MySQL, já foi discutido bastante o papel do "banquinho" de dados nesse "ecossistema". É importante sim, mas o problema do twitter não é o banco.
Antes de fazer uma pergunta idiota, pesquise!
Eu não diria o problema, e sim "os problemas".
Oi
Porque eles não percebem logo de uma vez que este projeto do twitter deve melhorar consideravelmente ou trata de ser extinto de uma vez hein
Att
Juliana Prado Uchôa
Caraca Cardoso!
Versão 2.0 do BOT tá com uma coerência impressionante! Acho que foi o melhor comentário dos ultimos posts!
Você pode ficar rico, imagina o aúncio: "Aumente o número de visitas no seu blog por apenas R$ 49.90 por mês!"
Antes de fazer uma pergunta idiota, pesquise!
A "BA" (Burrice artificial) dela tá melhorando a cada versão, já que a maioria dos outros blogs são compostos em sua maioria de salsinhas....
Salsinha Arficial 2.0 
Cardoso, fugindo um pouco do escopo,
Sobre o drupal. Depois das críticas ao projeto, voce sabe de algum outro CMS open source, melhor planejado? Algum que não sofra dos malefícios do drupal e ao mesmo tempo seja utilizável, sem ter que reinventar a roda ?
Se o seu uso é light, eu recomendo o Wordpress com plugins para funcionar como CMS, se for preciso uma estrutura mais pesada, eu daria uma olhada no mambo, mas não estudei os fontes dele a fundo para chegar a uma conclusão ainda.
O joomla é muito bom também!!
É aquela velha história: ninguém oferece ajuda, mas crítica todo mundo tem de sobra pra dar. Ainda mais brasileiro, que não consegue criar NADA, NENHUM software, NENHUM serviço, NENHUMA rede social que se destaque sequer no Brasil, imagina no exterior.
Fotolog.com, orkut, e twitter. Todas essas passaram por problemas de performance nos seus primeiros anos. Natural. Mas parece que a inveja brasileira se traveste de "simples questionamentos" quanto a performance/arquitetura sobre serviços que NEM COBRADOS SÃO. Curioso...
Portanto sou a favor do Twitter começar a ser COBRADO. Assim, questionamentos e críticas de brasileiros pelo Cardoso farão muito mais sentido.
E pra quê diabos alguém aqui iria se oferecer pra ajudar o Twitter ?
--------------------------------------------------------------
Quer aprender idiomas online e de gratis, http://www.livemocha.com/
Realmente não imaginava que as coisas no Twitter estavam tão feias...
Sobre o MySQL, acho que ele é um bom SGBD, mas definitivamente não é completo. Fiz testes com o MySQL para aplicações muuuito pequenas, não sei se ele aguentaria realmente o tranco...
... da mesma forma que não sei se um Oracle XE da vida aguentaria. Afinal, se ele aguentasse, por que alguem pagaria pela licença da versão "completa"?
Mas o simples fato de ter SP, Triggers e etc. realmente é um ganho considerável, apesar que eu acho que esses recursos todos devam ser utilizados com cautela, para não deixar a solução completa viciada ou atrelada a uma plataforma de BD.
Além disso, o banco até poderia ser MySQL, mas deveria ser muito bem configurado e administrado, coisa que eu duvido que esteja acontecendo neste momento. Para qualquer SGBD isso é fundamental.
Se eu tivesse tempo e condições de fazer um "Microblogging Social Network System" (acho que é uma possível definição do que é o Twitter) usaria tecnologias escaláveis, e C seria sim uma alternativa. Ou mesmo RoR ou Java. Para SGBD poderia optar por Oracle (mas a versão padrão) ou PostgreSQL. Mas usar filesystem é o fim da picada...
Finalmente, quanto a alguns comentários sobre o MySQL, parece que o pessoal vê o MySQL como um "Access que funciona em rede". Tá, ele não é o fim do mundo, mas também não é a panacea...
Abraços
"da mesma forma que não sei se um Oracle XE da vida aguentaria."
Bem cuidado, aguenta. Pensar que depois do "Next, Next, Finish" ele está pronto é illusão.
' Afinal, se ele aguentasse, por que alguem pagaria pela licença da versão "completa"?'
Ele tem limitação de memória(1G), limitação de armazenamento(4G) e de processamento, só roda em 1 processador.
O twitter deve ter mais de 4G. Mas se os projetistas fossem competentes (não parecem ser) e pão-duros(tem jeito de ser), daria pra criar uma camada em cima e usar vários Oracle XE por baixo. Inteligência é bom para economizar
.
"Mas o simples fato de ter SP, Triggers e etc. realmente é um ganho considerável, apesar que eu acho que esses recursos todos devam ser utilizados com cautela, para não deixar a solução completa viciada ou atrelada a uma plataforma de BD."
Hoje em dia esse tipo de afirmação merece reconsideração.
Se uma empresa decidir investir no PostgreSQL, por exemplo, que tem todos esses recursos(e muito mais) e ainda é gratuito... Se fizer isso de maneira conciente, tendo estudado os recursos... acho que vale a pena sim usar os recursos avançados. Assim se ganha com recursos que otimizam o acesso, facilitam muito, e sem risco de depender da sacanagem do fornecedor.
Mainframe é um bom exemplo disso, muita gente fugiu quando pôde não por falta de recursos, mas sim porque na época de renovar o contrato... o tom da conversa mudava com relação ao dia da venda
.
Po, mysql é bom e aguenta grande volume sim...
acho que o problema pode ser codigo mal feito pra fazer as consultas e gravações
e mesmo que mysql fosse o problema, da pra migrar pra qualquer *sql sem muito esforço...
agora, filesystem... meu, parece idéia do povo que eu tenho que ficar recolhendo cocô no trampo
/***************/
Quer Games online, Xadrez e diversao?
Route10-games - www.route10.com.br
Po, mysql é bom e aguenta grande volume sim...
Isso depende do que você considera um grande volume. Quantos GBs de banco e Qual a quantidade de usuários simultâneos caracterizam um grande volume?
e mesmo que mysql fosse o problema, da pra migrar pra qualquer *sql sem muito esforço...
Concordo em partes. A migração de um mysql para um Oracle, DB2 pode ser feita em muitos casos sem muito esforço. Mais uma migração de um Oracle para um DB2 ou semelhantes pode ser muito, muito traumática e complexa
Po, mysql é bom e aguenta grande volume sim...
Isso depende do que você considera um grande volume. Quantos GBs de banco e Qual a quantidade de usuários simultâneos caracterizam um grande volume?
O MySQL realmente é muito bom, mas não é nem de longe robusto o bastante para aplicações muito grandes.
e mesmo que mysql fosse o problema, da pra migrar pra qualquer *sql sem muito esforço...
Concordo em partes. A migração de um mysql para um Oracle, DB2 pode ser feita em muitos casos sem muito esforço. Mais uma migração de um Oracle para um DB2 ou semelhantes pode ser muito, muito traumática e complexa
Mas como no caso em questão o banco está em MySQL, é relativamente fácil migrar para um PostgresSQL, por exemplo. Podem aproveitar que também é free, não vão precisar pagar uma licença e terão toda a robustez necessária, mas isso falando de BD, uma vez que, de acordo com o Cardoso, a aplicação inteira foi mal feita. Não adianta ter um banco de dados super robusto se a aplicação criará um gargalo na comunicação.
Antes de fazer uma pergunta idiota, pesquise!
Po, mysql é bom e aguenta grande volume sim...
Isso depende do que você considera um grande volume. Quantos GBs de banco e Qual a quantidade de usuários simultâneos caracterizam um grande volume?
O MySQL realmente é muito bom, mas não é nem de longe robusto o bastante para aplicações muito grandes.
e mesmo que mysql fosse o problema, da pra migrar pra qualquer *sql sem muito esforço...
Concordo em partes. A migração de um mysql para um Oracle, DB2 pode ser feita em muitos casos sem muito esforço. Mais uma migração de um Oracle para um DB2 ou semelhantes pode ser muito, muito traumática e complexa
Mas como no caso em questão o banco está em MySQL, é relativamente fácil migrar para um PostgresSQL, por exemplo. Podem aproveitar que também é free, não vão precisar pagar uma licença e terão toda a robustez necessária, mas isso falando de BD, uma vez que, de acordo com o Cardoso, a aplicação inteira foi mal feita. Não adianta ter um banco de dados super robusto se a aplicação criará um gargalo na comunicação.
Antes de fazer uma pergunta idiota, pesquise!
"O MySQL é um excelente banco para aplicações que exijam consultas simples, mas ele simplesmente NÃO funciona com consultas complexas."
Alguém aqui lembrou da wikipédia? wordpress.com? O único campo em que eu não vejo o mysql tento performance semelhante aos grandes banco de dados é não para "consultas complexas" mas para inclusões complexas e bancos relacionados, onde informações mudam o tempo todo, mysql aguenta até 5 twitters, acho que vocês estão esquecendo de procurar ou testar a plataforma pra se admirirar com um caso de incompetencia de um projeto X que tem problemas.
Não tenho nada contra o MySQL, uso e gosto bastante! Mas conheço as suas limitações!
Já vi maravilhas sendo feitas com ele, mas como eu já falei, ele tem limites!
Não estou dizendo que ele não seja o bastante para o twitter, para começo de conversa eu nem USO o twitter.
Eu desenvolvi um sistema para um ministério com PhP+PostgresSQL, o resultado é imbatível, bem melhor do que os testes utilizando o MySQL pra mesma aplicação.
Mas, falando especificamente do Twitter, o problema parece ser mais embaixo... sem um projeto bem feito, não adianta rodar um DB2 em um CRAY que continua ruim...
Antes de fazer uma pergunta idiota, pesquise!
Aonde tem consulta complexa no Wordpress ou na WIkipedia?
Se der mole nem JOIN fazem.
Não compare com um twitter, onde uma simples inserção altera milhares de registros.
Alguém aqui lembrou da wikipédia? wordpress.com? O único campo em que eu não vejo o mysql tento performance semelhante aos grandes banco de dados é não para "consultas complexas" mas para inclusões complexas e bancos relacionados, onde informações mudam o tempo todo, mysql aguenta até 5 twitters, acho que vocês estão esquecendo de procurar ou testar a plataforma pra se admirirar com um caso de incompetencia de um projeto X que tem problemas.
Ai é que está: com certeza existe um fator diferencial na arquitetura da wikipédia, wordpress.com que compensa as deficiencias nativas do mysql.
Veja: Um banco de dados robusto e completo inclui várias coisas no pacote como: Controle das aplicações (threshold de cpu, rowsread, rowsselected, rowswritten), particionamento de bancos e tabelas, ferramentas para monitoramento de performance, reorganização automática de tabelas/indíces, gerenciamento nativo dos filesystems/tablespaces, ferramentas para propiciar a propagação dos dados e redundancia dos bancos, etc.
A maioria dessas "features" não existe no mysql e as que existem ainda não estão maduras o suficiente.
Provavelmente o wikipedia e o wordpress utilizam outras ferramentas para gerenciar o workload e proporcionar a redundância dos ambientes, bem como o gerenciamento das aplicações que utilizam o banco.
Como o cardoso disse logo acima, o que faltou no twitter foi planejamento. O código tem que ser bem feito e a arquitetura do ambiente tem que ser bem estruturada para compensar a deficiencia das aplicações que estão sendo usadas
Tudo que precisou ser falado sobre o MySQL foi dito agora. Ninguém lembra das aplicações de sucesso e BEM FEITAS nessas horas. Criticar sem saber como tirar o melhor da ferramenta é mole
http://logdaselva.com
Cara, desculpe, mas o mySQL NÃO É UM BANCO ENTERPRISE-READY, não posso fazer nada, é um fato.
Wordpress, WIkipedia? Isso nao tem NADA de complexo.
O último sistema que mexi tinha um livrinho de 700 páginas só de regras de negócio. Tudo atuchado no banco, em storeds. Uma delas tinha 6 páginas. Levava 15 minutos para rodar. Um dia fui testar no MySQL, só de farra. Depois de 4 horas a máquina sentou, travou e não tinha terminado de rodar.
Não vejo tal complexidade no twitter. Vejo tráfego de dados intenso. Não procedures demoradas. Não regras de negócio super complexas.
Não vejo o twitter muito longe da wikipedia ou do wordpress se tratando de complexidade, só na intensidade da movimentação de dados que ele é maior. Acho que isso se trata muito mais de se ter somente um servidor e da estrutura da aplicação, do que do banco que ele tá rodando.
Quanto ao MySQL não ser enterprise-ready, vamos aguardar pra ver o que a Oracle vai fazer com ele
http://logdaselva.com
Cara, desculpe, mas o mySQL NÃO É UM BANCO ENTERPRISE-READY, não posso fazer nada, é um fato.
O SAP R/3 adota o MySQL como uma alternativa de BD, só que o nome é Max DB, que na verdade é um MySQL + Tunning.
Até onde eu sei (e muitos também), o SAP é um sistema Enterprise, não?!
--
"Uma pessoa inteligente resolve um problema, um sábio o previne." Albert Einstein
Oi !
Vamos simplificar ?
A MySQL é a fabricante do bichinho.
Se ela quisesse vender mais, bastava provar a eficiência dele para grandes ambientes.
Se quisesse provar a eficiência dele para grades ambientes, colocava ele no índice TPC - http://www.tpc.org
Mas não, ele não está lá. Simples assim.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Oi !
Vamos simplificar ?
A MySQL é a fabricante do bichinho.
Se ela quisesse vender mais, bastava provar a eficiência dele para grandes ambientes.
Se quisesse provar a eficiência dele para grades ambientes, colocava ele no índice TPC - http://www.tpc.org
Mas não, ele não está lá. Simples assim.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
http://www.tpc.org/tpch/results/tpch_perf_results....
seria o terceiro lugar dos testes de 100 e 200gb dessa lista (by performance), ganhando inclusive de sistemas clusterizados com oracle?
e quanto a fabricante, eu não vejo a microsoft ali, mas IBM SUN HP e etc, apesar de usarem muito o MsSQLServer. e ainda assim o MySQL agora é da Sun.
Price/QphH = .70 US $ !! E o preço é bem consideravel!
Quem diria, alguem sabe explicar pq nao tem Postgre la? Como ele é BSD, será que não tem pedaço dele em outros bancos fechados? Do mesmo modo q projetos BSD estão presentes no OSX da Apple.
Pode ter mesmo, a licença permite.
Esses tempos deu um rolo porque o pessoal do PG descobriu umas vulnerabilidades que afetavam os dois bancos. Corrigiu e pronto.
Depois o pessoal do mysql foi lá, "se inspirou", e saiu divulgando como se tivesse descoberto e solucionado.
Não é porque uma licença permite, que não pode ter ao menos um pouco de cordialidade.
Você há de concordar que se o MySQL não tivesse boa performance, a SAP não arriscaria adotá-lo, já que possui somente grandes clientes, tais como empresas do setor de telecom, petroleo, mineração, etc.
Eu gosto do MySQL, apesar de preferir o PostgreSQL.
E sobre o TCP, eu conhecia, muito boa referência.
--
"Uma pessoa inteligente resolve um problema, um sábio o previne." Albert Einstein
Rapaz, já vi servidores de jogo online que usa MySQL como BD e roda muito bem apesar de ser escrito em java
Servidor de jogos só usam o banco para gerenciar logins, e de qualquer jeito não dá pra comparar um servidor com 100 ou 200 simultâneos com um Twitter.
Negativo, o servidor de jogos em questão é o L2J (lineage) e qualquer ação dentro do jogo (matar um mob, matar alguém, dropar um item, conversar com NPC) gera consulta e escrita no servidor MySQL, olha só a máquina de um servidor que tem:
Statistics
Accounts 832695
Characters 181219
Clients 4002
Database Server:
CPU: 2xAMD Opteron 250 (2x2400 Mhz)
Memory:6x1Gb DDR ECC REG Kingston (PC3200, 400MHz)
Hard drive: 6x73.5 Gb Seagate 15000rpm SCSI
SCSI controller: Adaptec ASR-2130SLP SINGLE Ultra320
Motherboard: s940 ATX AMD-8000 Series chipset SM H8DA8
??????: SuperMicro 6xHotSwap SCSI, 550W
Game server:
CPU: 2xAMD Opteron 254 (2x2800 Mhz)
Memory: 6x2Gb DDR ECC REG Kingston (PC3200, 400MHz)
Hard drive: 3x73.5 Gb Seagate 10000rpm SCSI
SCSI controller: PCI 64 RAID BBU Module for LSI 320-1
Platform: SUPERMICRO AS1020A-8
Realmente, os servidores L2J tem uma interação GIGANTE com o banco! Já tive alguns e sei o quanto aquela gracinha suporta, mas também sei que o servidor tem que ser reiniciado de tempos em tempos (no mínimo uma vez por semana) porque o servidor fica sobrecarregado, especialmente se no servidor for permitido jogar ítens no chão (o que gera mais entradas no banco), aí tem que reiniciar quase uma vez por dia. Tudo bem que o L2J é feito em Java e também é culpado por sobrecarregar o computador...
Antes de fazer uma pergunta idiota, pesquise!
insert / update / select.
Como eu disse, queries simples.
Me chame quando tiver uma stored de 6 páginas rodando, aí a gente conversa.
Ops, o suporte a Stored Procedures só veio na última versão do mySQL e NENHUM grande projeto usa, esqueci ;)
A bilhetagem do iBest quando era provedor era feita em mySQL. Foi o único banco que aguentou. Só que consultas complexas eram feitas em Oracle. ENTENDAM, a ferramenta certa para o problema certo. Não adianta os fanboys do mysql baterem cabeça, ele NÃO é bom pra tudo. Nenhum banco é,
Faço suas as minhas palavras.
É impossível comparar o mySQL com um DBMS robusto. Impossível. Alguns poucos motivos eu listei lá no comentário de cima.
Na boa, esse tipo de comparação é uma ofensa a qualquer dba presente
Mas o Twitter usa Stored Procedures? Dúvido muito!
Não adianta trocar o BD, tem que trocar quem desenhou esse DB mal feito, a culpa não é do MySQL, isso que estou dizendo.
Agora BD em filesystem o único que sei que já existe é o SQLite, mas ele é mais simples que o MySQL.
Tá.. nem tão simples assim Cardoso, tem várias queries muito mais complicadas, mas é justamente por causa delas que o servidor fica pesado e tem que ser reiniciado.
Tenho que concordar com você, o MySQL não é bom pra tudo! Os fanboys tinham que se dar conta que ele é muito bom para outro tipo de aplicação...
Mas, a respeito do twitter, o problema dele foi o descaso dos desenvolvedores, que não tomaram providências ao ver o crescimento exponencial do projeto deles.
Antes de fazer uma pergunta idiota, pesquise!
O MySQL tem suas limitações assim como qualquer outro. Mas não diga que a culpa, no caso do Twitter, é dele.
QUALQUER banco senta quando não é bem projetado.
Para o Twitter, MySQL bem projetado e bem gerenciado iria funcionar muito bem assim como funciona em outros projetos maiores que o utilizam.
A questão não é ser fanboy ou não, a questão é culpar algum software quando a culpa é de quem projeta e administra o sistema.
O MySQL é um banco de verdade, o que não é banco de verdade pra mim é MS Access, FileMaker, etc... É meio sem-noção compará-lo com um Oracle, DB2... é a mesma coisa que comparar uma Ferrari e um Gol, cada um serve pra determinada situação.
É claro que uma stored procedure gigantesca como a que você falou não vai rodar legal no MySQL, mas por acaso o Twitter utiliza procedure de 6 páginas? Não.
Se não fosse "enterprise ready", ele não ia rodar em SAP, Microsiga, etc.
As pessoas tem uma mania de querer matar um mosquito com uma bomba nuclear.
Fravo is a robot
http://geekwerk.blogspot.com
Cardoso, parabéns pela coerência.
Servidor de jogos só usam o banco para gerenciar logins, e de qualquer jeito não dá pra comparar um servidor com 100 ou 200 simultâneos com um Twitter.
Reveja seus conceitos. Um MMORPG como o WoW, por exemplo, tem bases de dados com até centenas de tabelas (para armazenar dados do usuarios, seus personagens, manter log das quests, mobs, etc). Se tiver curiosidade de ver o script de criação de uma base destas incompleta (pois é muito complicado copiar 100% do comportamento do original apenas por observação e packet sniffing), procure no Google por ascent, que é um emulador open source para servidor de WoW.
---
Tecnologia deve ser o meio, não o fim.
"A impressão que se tem, vendo o Twitter, estudando o código da maioria das aplicações como o PHPNuke ou mesmo o Drupal é que gente sem qualificação e/ou experiência toca esses projetos. Não há otimização de código, tratamento de exceções, nada. O Drupal por exemplo até pouco tempo sequer tinha um dicionário de dados, que dirá um diagrama de caso e uso, e nem sonhar em uma documentação UML compliant."
hm.. vai lá e ajuda com sua super qualificação e experiência.. ou faz outro melhor.
hm.. vai lá e ajuda com sua super qualificação e experiência.. ou faz outro melhor.
Mais um da linha:se alguém não gostar de ovo, só pode criticar se puder botar um também...
[s]
Mais um da linha: Reclamo quanto eu quero. E reclamo de quem reclama que eu reclamo por reclamar.
Documentação 100% só existe em projetos onde o emprego de que fez a documentação depende dela.
Claro que não são todos os casos.
O ponto em questão seria: Cardoso, se gosta tanto de falar mal do Drupal, POR QUE DIABOS O MEIOBIT USA ELE? Acho que essa é uma boa pergunta.
http://logdaselva.com
Na época parecia uma boa opção, precisávamos migrar rápido do Movable Type.
Depois que vimos as letras miúdas.
Sò um exemplo: Essa bosta não tem NENHUM compromisso de compatibilidade de API com as versões anteriores. TODOS os plugins podem parar de funcionar a cada migração. E em geral páram.
Segundo: NÃO HÁ documentação de sistema.
Terceiro: NÃO HÁ otimização nenhuma. Para exibir a página inicial ele roda mais de 800 queries SQL.
Nem de longe estou defendendo o Drupal. Concordo que não é otimizado, se não usar o eAccelerator no PHP a performance fica ridícula.
Quanto à documentação, a comunidade ajuda bastante, porque é enorme.
E em relação aos modulos, o drupal não se responsabiliza por módulos de terceiros, ele cria as compatibilidades dos modulos oficiais. Eu sinceramente não sou fã dessa ideia de compatibilidade porque se a ferramenta quer MELHORAR, o código muda de verdade, e certos pontos não podem ser mantidos.
http://logdaselva.com
Chama-se API.
melhorar a aplicação não é reescrever do zero e ficar mudando inclusive estrutura de tabela. Imagine se a Microsoft ou o pessoal da FSF mudasse todas as chamadas de API a cada versão do VisualC++ ou do GCC, que beleza que seria.
Na verdade, guardadas as proporções, eles fizeram isso em algumas ocasiões...
---
Tecnologia deve ser o meio, não o fim.
That's the point.
O Drupal teve necessidade de mudar várias coisas da API, e tem melhorado
http://logdaselva.com
Acho que isso ajuda a explicar pq o Google comprou o Jaiku e não o Twitter.
Excelente ponto!
Antes de fazer uma pergunta idiota, pesquise!
Será que eles tinham acesso ao código? Não foi pelo uso de MySQL que o Google não comprou o Twitter.
________
http://nodoadouniverso.wordpress.com
http://cybergalo.wordpress.com
Também duvido que o google tinha acesso ao código, e duvido que ele não teria comprado porcausa do banco.
http://logdaselva.com
de qualquer forma tem o fato do Jaiku usar Google App Engine e ser feito em Phyton que é o amor do google....
--
http://blog.muuzik.net/ << participo aqui também
that's the point!
ººno mundo so existem 10 tipos de pessoas, as que entendem...e as que nao entendemºº
RafaelDFMelo'Blog
Ralmente, na época todo mundo achou estranho, já que nem o Twitter famoso do jeito que estava negaria uma compra do Google
Defô?Defú?Defáulti?
Se eu tivese feito o Twitter, teria feito exatamente igual. Eu jamais teria imaginado que mais de meia dúzia de desocupados usariam essa bagaça.
Eu também não esperaria isso, teria feito num shared host mesmo.
Mas, claro, com o crescimento exponencial eu ia correr pra modificar a aplicação e a estrutura...
http://logdaselva.com
Concordo em gênero, número e grau!
[]s
Já vi Oracle RAC rodando em duas IBM p570 (pSeries RISC rodando AIX) e por culpa dos developers, algumas queries simplesmente travarem o cluster. Claro, depois que contrataram uma consultoria para apontar alguns erros na aplicação nas queries, tudo ficou rodando bonito... mas ai passaram-se 3 meses... e começou tudo de novo...
Resumo;
Não adiante usar o melhor banco de dados, melhor hardware ou melhor S.O., tudo sempre dependerá de como a aplicação foi escrita e também de como os acessos ao banco foram desenhados.
E como nem tudo são críticas, também já vi muito sistema bom usando mysql.
Não adianta usar um Super DB para um sistema simples, pois o custo e o overhead não compensam e ainda por cima podem até ficar mais lento que um DB mais simples. E também não adianta usar um banco não tão parrudo se a aplicação é crítica demais e os problemas que isso pode causar justificam o investimento em uma solução de DB melhor. São muitas variáveis em jogo.
Clap clap clap!
Pra resumir a discussão toda! Muito bom!
Matheus
www.30segundos.com.br
Po.. Tem um pessoal teimoso demais.. Também pago pau para o mysql ter essa inserção sendo opensource.. Mas não é a melhor opção para este caso.. Um pgsql já seria um grande passo pro twitter (e porra.. só eu não uso isso??)..
Pra mim o cardoso era só um gordo tonto que escrevia em blogs.. Não sabia que ele tinha algum conhecimento.. ahehaheaheahehaheahehaehaheiuha
O MySQL é excelente para a Web 1.0, mas não pra 2.0.
Antigamente dava pra segurar a onda em sites como o Slashdot pois apesar da quantidade boçal de conexões, era tudo consulta simples.
As aplicações de hoje não são mais assim. Imagine o Twitter de um Scoble da vida, com 26,143 seguidores. Cada atualização dele, 26,143 inserts, sem contar os contatos indiretos.
Só uma pergunta Cardoso... Quem seria LOUCO o bastante para fazer um insert que faz 26143 outros, quando poderia simplesmente fazer apenas um e depois os demais usuários na hora que usassem atualizar em suas páginas vissem a atualização (selects individuais para ver mudanças)? Isso para mim é de uma insanidade total!
Quanto ao MySQL, eu sou da opinião de que ele é muito bom se você precisa de uma base de dados que responda o mais depressa possível inúmeras consultas normais (selects da vida sem zilhões de inners, outers, lefts, etc etc e etc joins), jogando fora até a integridade referencial na base de dados (embora ela sempre possa ser feita do lado cliente) para conseguir isso. Mas quando começa à se "brincar" com views além da imaginação e selects de várias páginas, aí acho melhor mesmo usar postgres ou similar.
P.S: Particularmente adoro a capacidade do SQLServer de tratar uma view simples como se fosse uma tabela normal (capaz de receber inserts e updates), mas o custo de fazer um servidor usando ele é meio alto (sem contar o fato de ser obrigado à usar Windows como SO)
Se você consegue ler esta mensagem então o seu computador irá se auto-destruir em dez segundos, tenha um bom dia
Não há ganho. Imagine 26.000 consultas à tabela do Scoble determinando se ele atualizou alguma coisa. O Scoble segue 21.000 pessoas. Imagine se a cada xx segundos ele fosse dar um select no banco procurando por alterações sob o usuário de cada uma dessas 21.000 pessoas.
Buscando somente nos registros do SEU usuário fica bem mais gerenciável.
E sim, esse é o uso ideal do MySQL. No cenário que você descreveu ele é imbatível.
Bem, aí depende de como foi modelada a base de dados. Que até onde eu sei é mais "barato" para o SGBD fazer selects do que inserts. Uma possível solução seria fazer uma "tabela de história" que concentra os "posts" (sim, iria ficar absurdamente grande em termos de número de registros hehe), e aí para ver se têm novidades bastaria fazer "select from tabela_grandona where postador = meuconhecido and data_em_que_o_post_foi_feito >= data_da_ultima_vez_que_entrei_aqui" nenhum join
Mas devo dizer que não conheço os recursos do twitter, mas isso resolveria a questão dos milhares de inserts por post
Se você consegue ler esta mensagem então o seu computador irá se auto-destruir em dez segundos, tenha um bom dia
Como disse o Fabio Akita:
"Todo amador acha que pode Consertar o twitter"
E o RoR está lá só como front-end, só para exibir html bonitinho e eles usam PHP, Erlang e C também. O cara do TechCrunch gerou FUD, mesmo que fosse Java ou C(ele disse que se fosse assim e não RoR escalava) era a mesma coisa.
Uma boa explicação do problema do twitter:
http://www.25hoursaday.com/weblog/2008/05/23/SomeT...
e explicações do Akita:
http://akitaonrails.com/2008/5/23/a-est-pida-contr...
Fascinante. A engenharia reversa que o Akita fez é idêntica à minha, e também usou o Scoble como exemplo.
Great minds think alike, já diz o ditado.
Hm, não me comprometa. Primeiro, como eu cito no meu artigo, a análise não é minha, apenas estou traduzindo e citando. Segundo, não li em lugar algum deste artigo, nem nos comentários (pelo menos até onde tive paciência para ler) nada parecido com uma "análise". Foi tudo apenas chutes.
Bom, eu estive com Blaine Cook em Portland semana passada falando sobre isso. Posso garantir que tudo que está aqui está errado. Qualquer um que ache o contrário não vai conseguir nada apenas com palavras, basta fazer outro igual e que não sofra dos mesmos problemas. Dica: o problema é na arquitetura, geral, enquanto não se entender que grafos de usuários - que é um problema exponencial e não trivialmente particionável - não mapeiam decentemente em bancos relacionais, não adianta. O problema é banco, mas não na marca, e sim no conceito relacional em si que não mapeia direito para esse tipo específico de aplicação.
Pera ai, o cara assina 21 mil pessoas? Você assume o pior caso que seus milhares de usuários fariam a mesma insanidade? Acho que não, sinceramente o cara não consegue ler todas as atualizações o problema nessa análise e ter usado o exemplo errado. Rápido o suficiente é rapido o suficiente, a solução mais plausível é fazer o que o google faz com seus serviços como orkut, bloquear quantidade de fotos, amigos, msgs, scraps e etc. Com certeza a solução proposta é pertinente, mas em um lugar que realmente tenha essa necessidade.
"In addition, the fact that the Twitter folks decided not to cap the number of followers or following may have saved them from the kind of flames that Robert Scoble sends at Facebook for having a 5000 friend limit but it also means that they not only have to deal with supporting users with thousands of followers but also users that follow thousands of users [both of which would be optimized in completely different ways]. Clearly a lot of feature decisions have been made on that product without thought to how they impact the scalability of the service."
É piada né?
Na verdade a opção 1 me parece melhor. O sistema não precisa fazer uma leitura completa dos 24mil seguidores, basta saber quem atualizou ou não e manter em uma base de dados propria para isso.
Como o proprio Akita disse, se for fazer o insert vai ter que ter uma "leitura preliminar" para saber quem é os 24mil seguidores... Só esse tempo já é superior ao tempo de saber quem atualizou ou não. No pior caso vai ser o mesmo tempo.
O tempo de escrita é muito maior que o de leitura, ele disse que era inviavel fazer 24mil leituras, porém fez 24 mil leituras e 24 mil escritas.
Mesmo que tenha que usar 24 mil leituras para saber quem atualizou e outras 24mil leituras para receber a mensagem ainda é melhor que as 24mil escritas.
E mesmo assim... Cade a teoria dos grafos? Ainda assim, conferir contato a contato, ou inserir dados nas listas de cada contato é uma solução bem tosca. Parece os caras que usam só bublesort para tudo. Considerando um escopo tão grande assim eles poderiam fazer QUALQUER COISA, menos usar esse tipo de brutalidade!
Faltou um bom estudo de complexidade assintótica aí!
O pode da internet...os caras fazem um negocio sem esperar que milhoes vao usar, nao metem infrastrutura...nao metem nada e depois reclamam...por favor, eu Odeio o twiter e qualquer chamado microblog, acho uma perda de tempo e sinceramente penso que faz mal a cabeca ficar escrevendo em 5 em 5 minutos sua vida...tipo, fui no banheiro, sai do banheiro, ta muito frio hoje...etc...etc
Nao pense que acabou...ainda tenho muito a dizer!
Poisé. MySQL não aguenta e ponto final!
Por experiência própria. Há um tempo atrás quando eu fui desenvolver um novo serviço para meu site eu estudei estes problemas do MySQL, principalmente a questão da performance.
Quando existem diversos usuários simultâneos fazendo selects e inserts, o mysql simplesmente trava. A minha solução, na época e continua sendo hoje, foi utilizar filesystem. Sei que não é uma solução boa, mas na época não conhecia muito de bancos de dados mais robustos, como por exemplo o postgresql.
Hoje penso sim em migrar para o postgresql, mas para isto preciso organizar minhas tabelas e separar o código que faz consulta com o banco que valida o usuário e o que exibe mensagens postadas.
Isto vai gerar um pequeno trabalho. É isto também que o Twitter deveria fazer (procurar um banco mais potente), no lugar de pensar em trabalhar com filesystem. Por um lado é bom trabalhar com arquivos de texto, pois a relação de performance x custo é boa, já que uma simples máquina pode gerenciar facilmente a leitura e escrita dos arquivos, mas por outro lado a relação segurança x performance não é boa. Já tive diversos problemas com arquivos corrompidos ou arquivos grandes dimais que demorar uma eternidade para ler e gravar.
Isto tudo deve ser levado em consideração. Migrar para filesystem ou postgresql. Depende da quantidade de informação que deseja gravar, depende de como estas informações serão tratadas. Tudo é questão de avaliação.
Eu aconselharia ir pra o postgresql.
______________________________________________
http://www.codigofonte.net
A questão de os desenvolvedores "acharem" que o projeto não iria "virar" não é válida. Uma vez que o Twitter já fez sucesso há tempos e já poderiam ter feito um refactoring decente no código uma vez que já sabia o público da aplicação. Se não me engano o Orkut fez isso. E ele ainda continua sendo o único projeto by Google feito em asp.net
A questão de os desenvolvedores "acharem" que o projeto não iria "virar" não é válida. Uma vez que o Twitter já fez sucesso há tempos e já poderiam ter feito um refactoring decente no código uma vez que já sabia o público da aplicação. Se não me engano o Orkut fez isso. E ele ainda continua sendo o único projeto by Google feito em asp.net
Não é mais .NET faz tempo. Foi integralmente migrado para Java.
<veneno>e, curiosamente, parou de travar...</veneno>
---
Tecnologia deve ser o meio, não o fim.
Na verdade ele foi reescrito em Java, que é uma das linguagens favoritas do Google (vai entender...). As páginas ainda tem .aspx no final, mas só fizeram um redirecionamento pra não quebrar nenhum link.
FelipeCN.com
A questão de os desenvolvedores "acharem" que o projeto não iria "virar" não é válida. Uma vez que o Twitter já fez sucesso há tempos e já poderiam ter feito um refactoring decente no código uma vez que já sabia o público da aplicação.
exatamente o que penso.
não há a necessidade de criar um sistema gigante se inicialmente não se tinha a visão de uso de grande porte. porém, quando começou a crescer, seria óbvio pensar em alterar o sistema para que se adequasse ao grande volume de informações que iriam passar.
ah... vai ver que estavam esperando alguém comprar e passar a bomba pra frente XD
______________________________________________________________
http://f4lh4critic4.wordpress.com/ blee....og
Tá o cardoso tá certo, o BOT (JulianaPrado) aqui do Meiobit roda em MySQL e fica bugando toda hora....
bom, eu ja usei muito o mysql, e digo, não é perfeito
eu tambem sou um dos supporters do phpnuke e sei que ele não é nada de perfeito em queryes ou mesmo em performance, mais atende a muitas necessidades basicas, muitos sites simples, e neste caso faz bem o seu trabalho, quer um CMS pra grandes corporações, vá de subdreamer ou coisa assim
mais, indo ao ponto, o mysql vai começar a amadurecer agora, vamos ver como vão ficar as proximas versões ja que as atuais são boas, pra aplicações simples (sempre foi o alvo dele, aplicações e sites simplres) em momento algum eu usaria um mysql pra gerenciar um ERP ou um CRM
se mysql fosse bom pra aplicações pesadas pq nao é usado nestes segmentos?
Filesystem no caso tambem não vai ajudar muito, ja que são muitos dados ao mesmo tempo, vai dar caca também
o melhor mesmo é partir pra um pgsql oracle sqlserver ou coisa assim no caso do twitter e pelo que da pra ver, eles tem que melhorar a estrutura de hardware já que muitas vezes não é so problemas de software, do que adianta rodar o melhor banco do mundo num 486?
Abre o banco do PHPNuke em um ErWin ou DBDesigner e manda fazer engenharia reversa. Todo profissional de TI que mandei fazer isso correu três dias sem parar depois que viu a meleca.
Concordo plenamente Cardoso, eu ja fiz isto e eu sei o ninho de ratos que é o BD(quase 100 tabelas pra fazer trabalho de no maximo 50), eu mesmo corri varios dias seguidos pensando porque eu ainda o uso. O maior problema é que o desenvolvedor oficial ficou acomodado ao tempo com o phpnuke por isto que não houve uma evolução significativa no sistema.
Tem inumeros outros CMS por aer que fazem o mesmo e mais eficientes, so que ele ainda ganha pela popularidade e pelo vasto numero de modulos, e de conteudo na internet.
Como eu digo, pra grandes sites? é complicado usar um CMS destes prontos(qualquer um que seja), mais pra sites pequenos, por que não usar? ja que CMS são flexiveis, faceis de manter
Eu participo da comunidade nacional e sei bem como são os pros e contras que não vem ao caso agora. Não morro de amores pelo sistema mais tambem não sou contra
Acho que alguem já comentou, mais eu tambem não imaginava que você tinha um conhecimento sobre esta área
______________________________________
http://i12.com.br
Sou Analista de Sistemas, programa desde que me entendo por gente, mas hoje em dia só mexo em código se necessário. Tenho várias pequenas aplicações por aí, inclusive um plugin antispam do Wordpress, liberado em GPL, só para irritar os freetards que tem que engolir que EU contribuí mais para o software livre do que eles, que só chupam trabalho alheio:
http://www.contraditorium.com/urlnuker/
penso mais ou menos como voce, quando muito nego fala de GPL e nunca vi fazendo nada alem de chupinhar conteudo dos outros
eu sempre penso, se eu vou aprender e fazer alguma coisa em cima do que aprendi com ajuda de outras pessoas, por que não liberar para as outras pessoas se o contrato assim permitir?
liberado em GPL, só para irritar os freetards que tem que engolir que EU contribuí mais para o software livre do que eles
Hahuuhahua, antes de falar algo, é bom ter feito alguma coisa mesmo. Pior coisa que tem é alguem (por exemplo um *tard) falando que alguem não sabe nada, sendo que o mesmo não fez quase nada.
Agora sobre MySQl:
Não manjo muito de banco mesmo, optei pelo Postgre para grandes projetos por ser BSD e ser mais fácil de compilar. Para coisas simples e testes fico com o bom e simples SQLite. Alguém conhece?
[]s
Acho que seria interessante reescrever logo todo o Twitter, talvez seja apenas uma preferênia pessoal, mas quando algo vai errado eu prefiro recomeçar do zero, claro, levando em conta que há força tarefa pra isso.
Mas mudando de assunto, a diversão agora é o Plurk!
http://plurk.com/redeemByURL?from_uid=16381&check=...
Eu faria toda o kernel de mensagens em C (C++ é coisa de frutinha) e liberaria uma API toca focada em objetos, sendo que esse kernel falaria direto com uma camada de abstração de dados, que cuidaria de replicação, integridade, etc.
A parte do Frufru eu faria em PHP, para não ter o peso do servidor do RoR no meio do caminho.
(A rigor fazer tudo em Java seria uma solução excelente, mas eu não gosto de Java)
mas eu não gosto de Java
engraçado, eu até que to tentando, mas também não consigo... de .NET então, menos ainda... (não me levem a mal, questão de gosto...)
Antes de fazer uma pergunta idiota, pesquise!
Devo dizer que o Java para essas aplicações em que ele fica no servidor funciona muito bem (mas fica uma carroça se usado do lado cliente). A minha aplicação aqui é toda em Java e Javascript e funciona bem, atendendo o Paraná inteiro. E com a vantagem de não precisar de aplicações de terceiros, salvo se você resolver usar as "frameworks" como Java Server Faces e outras firulas
Se você consegue ler esta mensagem então o seu computador irá se auto-destruir em dez segundos, tenha um bom dia
e eu gostava do java até a hora que tive de criar uma interface gráfica cheia de frescura para o meu projeto =\
realmente nessa parte ele deixa a desejar e muito.
______________________________________________________________
http://f4lh4critic4.wordpress.com/ blee....og
Bem, apesar de não conhecer em detalhes os aspectos de performance do Ruby on Rails, tendo a acreditar muito mais no engenheiros do Twitter do que em alguém que falou TANTAS bobagens quanto o autor deste post.
realmente seu argumento é imbatível! parabéns!
e totalmente coerente ao seus tibs! insuperável, não vá embora, fique por aqui, logo logo vc ganha até uma insignia digna de sua participaçao...
ººno mundo so existem 10 tipos de pessoas, as que entendem...e as que nao entendemºº
RafaelDFMelo'Blog
É de gente assim que eu gosto: Não sabe do que está falando, mas tem que reclamar!
Parabéns caro salsinha, ops, eddiestone! Você acabou de preencher os requisitos para o recebimento da insígnia de honra ao mérito que deverá receber em breve...
Antes de fazer uma pergunta idiota, pesquise!
Podem falar o que for, mas na minha opinião hoje em dia, com o Oracle XE disponível digrátis para download e uso em pequenos projetos / desenvolvimento, não justifica mais correr o risco de cair numa roubada dessas. É, eu sei que em termos de raw performance com consultas simples o mySQL ganha, por outro lado se acontece essa necessidade de lidar com volumes de dados muito grandes e/ou consultas complexas, você não passa o perrengue de ter que migrar de base, e eventualmente ainda ter que ajustar a aplicação. Cresceu além do esperado ? Compra a licença do Enterprise, e migra (com 100% de compatibilidade).
---
Tecnologia deve ser o meio, não o fim.
Eu tava pensando, o Twitter ainda tem tempo de reverter isso, afinal o Orkut passou vários meses enchendo o saco com erro toda hora. E hoje tá aí, mto bem..
Mas só q agora é diferente, agora eles vão ter um concorrente que já passou por algo assim, e sabe ser bom em praticamente tudo que faz..
E no caso do orkut, se não me engano, era problema da plataforma (C#.NET) e não do banco. Mudaram pra Java e tudo começou a funcionar...
--
Acorda pra Web! - Tecnologia que vai mudar nossas vidas, depois do café.
Com certeza não foi só mudar pra java, e sim toda uma reestruturação do sistema.
Por que eles não vendem logo a idéia?
Antes de fazer uma pergunta idiota, pesquise!
Se esqueceram do YouTube. Ele usa MySQL e é grande, complexo e rápido. Consultas como "vídeos relacionados" devem ser o cão.
Eu trabalho diariamente com Microsoft SQL Server em bancos de 30GB a 70GB, com tabelas chegando a 50 milhões de registros e 30 inserts por segundo. Não há uma única consulta que não tenha pelo menos cinco JOINs nessa tabela, sem falar nos relatórios envolvendo funções agregadas e a quantidade de subqueries gigante. Era uma lesma, até o DBA gastar um tempo e arrumar tudo.
Sinto muito, mas se eles trocam manualmente de um servidor para o outro, só pode ser falta de competência do DBA.
--
Acorda pra Web! - Tecnologia que vai mudar nossas vidas, depois do café.
o problema do Twitter é o desenho arquitetural, foi pensado para um propósito e acabou indo para outros, além de infra aparentemente insuficiente.
Culpar o Rails (como vem sendo feito) ou ao Mysql (como agora) é uma ignorância.
Invalidar uma tecnologia por causa de um projeto é ridículo, o pior é que uma abordagem nessa linha desanda em vários comentários sofríveis como alguns nessa thread.
Faltava apenas alguém dizer que o Mysql não presta para vir gente comparar até com um OracleXE que é mais capado do que eunuco persa.
Faltava apenas alguém dizer que o Mysql não presta para vir gente comparar até com um OracleXE que é mais capado do que eunuco persa.
1) Eu não disse que o mySQL não presta. Apenas disse que, se existe o menor risco da demanda da aplicação crescer muito, não vale a pena correr riscos apenas por ideologia;
2) Seguem as principais limitações do Oracle 10g XE, de acordo com a própria Oracle:
Oracle Database XE is available on 32-bit Linux and Windows operating systems, and can be installed on any supported hardware platform. As a free, starter database, Oracle Database XE:
Sendo que tudo o mais (controle transacional, stored procedures, triggers, views materializadas ou nao, etc) funciona EXATAMENTE igual ao produto full. Pelo ponto de vista de funcionalidades disponíveis, o "Oracle capado" tem mais recursos que qualquer versão do mySQL que você escolher. Quer usar mais do que uma CPU, ou trabalhar com bases acima de 4Gb ? Pague por uma licença e migre para uma versão de produção, porque o tamanho do seu projeto já justifica isso. Simples assim.
---
Tecnologia deve ser o meio, não o fim.
clap clap clap clap
Fap fap fap fap
"1) Eu não disse que o mySQL não presta. Apenas disse que, se existe o menor risco da demanda da aplicação crescer muito, não vale a pena correr riscos apenas por ideologia;"
Eu não disse que você disse que mysql não presta, leia novamente:
"cmilfont disse:
Faltava apenas ALGUÉM DIZER que o Mysql não presta para VIR GENTE comparar até com um OracleXE que é mais capado do que eunuco persa."
Oracle XE é uma piada de mal gosto.
eu trabalho com Oracle de verdade, meus sistemas nem sequer podem instalados corretamente nele por causa da limitação de Tablespaces.
4G, Você acha isso grande coisa?
Que diabos de sistema pode viver com apenas isso? Cadastro de locadora?
Oracle é um dos melhores bancos, mas XE é uma piada.
Mysql não compete com Oracle, são de nichos diferentes, quem compete com Oracle é o Postgre e o DB2.
Independente do Banco de Dados ou do Framework/Linguagem utilizado, qualquer aplicação mal estruturada terá problemas, e esse parece ser o problema do Twitter.
Já foi provado que o Ruby on Rails não é o problema, existem sites com mais tráfego que o Twitter feitos em Ruby on Rails que não apresentam esses problemas, e o Akita (www.akitaonrails.com) já cansou de falar sobre o caso: os desenvolvedores do Twitter são incompetentes.
Pela explicação do Akita on Rails, o problema na realidade é a quantidade absurda de leituras & escritas que tem que fazer no disco quando alguém posta alguma coisa e tem muitos seguidores. O problema não é o MySQL, PHP, RoR o problema é que os HD´s não dão conta.
Você sabe que bancos decentes mapeiam tudo em RAM, né?
Imagino que sim, e o custo de um banco decente mais o custo de manutenção dos servidores?, ao que me parece o twitter não é tão rentavel assim ou estou enganado?
Eu acho que a expressão técnica que mais se adequa ao caso é: "não sabe brincar não desce pro play".
Mesmo assim, o hardware é barato. Olha o que achei com uma busca simples, em serviços de hospedagem:
8 Processor Xeon 3Ghz (4MB Cache per processor)
32GB DDR RAM
Dual 36GB 15000RPM SCSI Drives
1TB SATA Hard Drive
1500GB Transfer
Up to 253 usable IPs with justification
$0 Setup, $499 per month.
Duas máquinas dessa, ligadas via gigabit ethernet replicando em RAM as transações e fazendo I/O em batch, ao invés de realtime, mais umas duas mais fraquinhas pra consulta e pronto. Segura Twitter na boa.
Não adianta nada ter um hardware desse porte se a aplicação foi mal desenvolvida! Seria igual dizer que um motorista está andando muito devagar, vamos trocar o 1.0 dele por um V12 biturbo, se o motorista é ruim, o problema persiste. Ou mesmo colocar um motor de CG125 no chasis de uma Lamboghini, resolve? Acho que não!
Antes de fazer uma pergunta idiota, pesquise!
Eu acho que a expressão técnica que mais se adequa ao caso é: "não sabe brincar não desce pro play".
Puta que moleque de prédio!
Mesmo assim, o hardware é barato. Olha o que achei com uma busca simples, em serviços de hospedagem
Já que é tão pouco pra vc vai lá e paga ;)¹
Pelo visto vc acha que entende muito só pq tem um monte de baba ovo te idolatrando, mas os bons sabem q vc é um assinante nato de RSS gringos, os bons são éticos e sabem o q é crescimento ;)²
O dia que vc fazer algum start-up vc da uma de fodão, ok?
E tem que ser como o twitter mundial não Brasil ;)³
Sem mais.
Rafael Sachetto
Já que é tão pouco pra vc vai lá e paga
Como já falaram aqui: Quer dizer que você só pode reclamar da galinha se puder botar ovo?
Já que é tão pouco pra vc vai lá e paga
Tá, eu até pensei que pudesse ser uma brincadeira, mas considerando o tom do resto do post fica difícil.
Pelo visto vc acha que entende muito só pq tem um monte de baba ovo te idolatrando, mas os bons sabem q vc é um assinante nato de RSS gringos, os bons são éticos e sabem o q é crescimento ;)²
O dia que vc fazer algum start-up vc da uma de fodão, ok?
E tem que ser como o twitter mundial não Brasil
Putz, tá ficando chato ler comentários retrógrados que não acrescentam nada além de insultos pessoais. Não estou defendendo o Cardoso, apenas estou de saco cheio de gente que registra aqui apenas pra fazer comentários sem noção de conteúdo ofensivo.
Dá pra usar um pouquinho mais de massa encefálica pra postar? Que tal críticas contrutivas ou comentários QUE TENHAM A VER COM O TÓPICO!
Antes de fazer uma pergunta idiota, pesquise!
Já que é tão pouco pra vc vai lá e paga
Como já falaram aqui: Quer dizer que você só pode reclamar da galinha se puder botar ovo?
Ué faça algo melhor que a pobre galinha, um dia que vc tiver um projeto em mente e principalmente viabilizando conversamos melhor sobre isso.
Já que é tão pouco pra vc vai lá e paga
Tá, eu até pensei que pudesse ser uma brincadeira, mas considerando o tom do resto do post fica difícil.
Acho que vc pegou o mesmo trecho.
Pelo visto vc acha que entende muito só pq tem um monte de baba ovo te idolatrando, mas os bons sabem q vc é um assinante nato de RSS gringos, os bons são éticos e sabem o q é crescimento ;)²
O dia que vc fazer algum start-up vc da uma de fodão, ok?
E tem que ser como o twitter mundial não Brasil
Putz, tá ficando chato ler comentários retrógrados que não acrescentam nada além de insultos pessoais. Não estou defendendo o Cardoso, apenas estou de saco cheio de gente que registra aqui apenas pra fazer comentários sem noção de conteúdo ofensivo.
Dá pra usar um pouquinho mais de massa encefálica pra postar? Que tal críticas contrutivas ou comentários QUE TENHAM A VER COM O TÓPICO!
Antes de fazer uma pergunta idiota, pesquise!
Pra vc ver como chegou ao ponto de eu me dar ao trabalho de registrar né?
E não estou aqui pra brigar, a quem meta o pau e não faz nada melhor, ah aqueles que entendem os pobres desenvolvedores, tem várias falhas? Foi de maneira porca? Mas quantas idéias estão por ai na internet que ninguém ouviu falar e com banco de dados mega hiper ultra plus sem um pq? Creio que no momento certo o twitter fará os ajustes se não já estão fazendo, afinal o twitter explodiu, eu de início achei a coisa mais inútil da face da terra e hoje vejo que o uso de forma inteligente é fantástica vide sigaseutime.com.br.
Um pouquinho de respeito por uma idéia que vingou cai bem pra quem lê RSS gringo e traduz, correto?
Agora se vc ficou nervozinho e veio defender aproveita e não compre hipoglos, compre bepantol que um amigo que acabou de ter um filho recomendou e o preço é mais em conta e segundo ele é mais eficaz pra assadura, até aquelas de tanto puxar saco.
Abs.
Pra vc ver como chegou ao ponto de eu me dar ao trabalho de registrar né?
E não estou aqui pra brigar, a quem meta o pau e não faz nada melhor,
Se quer brigar para que "façam algo melhor" comece você mesmo! Poste comentários úteis e inteligentes e não agressões pessoais e é sobre isso que eu reclamei!
ah aqueles que entendem os pobres desenvolvedores, tem várias falhas? Foi de maneira porca? Mas quantas idéias estão por ai na internet que ninguém ouviu falar e com banco de dados mega hiper ultra plus sem um pq? Creio que no momento certo o twitter fará os ajustes se não já estão fazendo, afinal o twitter explodiu, eu de início achei a coisa mais inútil da face da terra e hoje vejo que o uso de forma inteligente é fantástica vide sigaseutime.com.br.
Não sei se você leu o que o Akita escreveu sobre como foi estruturado o banco: relacionamentos mal feitos, problema no modelo relacional, ou seja, é culpa de uma falta de planejamento. Quando você faz qualquer aplicação para web, tem que, no mínimo, ter uma base bem feita e isso não quer dizer construir um "banco de dados mega hiper ultra plus", o problema já começou na modelagem
Um pouquinho de respeito por uma idéia que vingou cai bem pra quem lê RSS gringo e traduz, correto?
De onde o Cardoso tira as notícias e como ele posta aqui não é problema meu. O Meiobit é feito de traduções de posts gringos? Vai na fonte e leia diretamente lá!
Quer respeito de alguém? Comece respeitando, enquanto não houver humildade e respeito de sua parte, não é possível manter uma conversa.
Agora se vc ficou nervozinho e veio defender aproveita e não compre hipoglos, compre bepantol que um amigo que acabou de ter um filho recomendou e o preço é mais em conta e segundo ele é mais eficaz pra assadura, até aquelas de tanto puxar saco.
Quanto a "puxar o saco", eu já disse que não estou defendendo o Cardoso, apenas fico indignado com comentários fúteis de gente que se registra apenas para tumultuar! Eu não gosto de vários artigos do Cardoso e da maneira tendenciosa que escreve, mas nunca faltei com o respeito, nem com ele e nem com nenhum outro membro do MeioBit, inclusive aqueles, que como você, postam apenas para tumultuar.
A respeito do seu conselho: o que você e seu amigo fazem com bepantol não é problema meu e não me interessa nem um pouco!
Antes de fazer uma pergunta idiota, pesquise!
Eu não tumultuei nada, em um país democrático expus a minha idéia assim como no post em si foi posto, agora se vc prestar bem atenção vc respondeu, logo seu discurso de cansei de tumulto não vale


Hahaha cansei de baixaria, tenho mais o que fazer
Lembra bepantol.
Expor a sua idéia é aceito, o que eu comentei foi o seu ataque pessoal, não sua opinião. Você só esquece que em um "país democrático", o seu direito acaba quando começa o direito dos outros.
E eu já disse que não tenho o menor interesse em saber sobre você, seu amigo e bepantol, guarde para usu próprio!
Antes de fazer uma pergunta idiota, pesquise!
Uma hora tem que ir pro disco. E geralmente o acesso ao disco é feito duas vezes, uma na gravação do log (que deveria ser até em outro disco rígido, pra não ferrar com a performance) e outra na gravação dos dados propriamente ditos. Sejam ciclos curtos ou mais demorados de gravação, eles existem.
Esse papo de ter que dar muitos inserts parece furada pra mim. Pra que dar um insert pra cada post em cada seguidor? Não bastariam selects em cima de uma boa estrutura de índices? Sim, bastariam. Índice foi feito pra isso, pra não ter que criar várias estruturas diferentes pra mesma informação com foco apenas em performance.
--
Acorda pra Web! - Tecnologia que vai mudar nossas vidas, depois do café.