Mostrando postagens com marcador Acadêmico. Mostrar todas as postagens
Mostrando postagens com marcador Acadêmico. Mostrar todas as postagens

quinta-feira, 3 de março de 2016

Database Internals - CMU

Estamos vivendo um período muito legal para bancos de dados, frase que eu já disse umas mil vezes e você já deve estar cansado de ouvir, ok. O resultado disso é que a maneira que nós, profissionais de banco de dados, encaramos a construção de soluções, modelamos, criamos e mantemos os nossos bancos, está passando por uma transformação, que vale a pena acompanhar de perto.

Então pare um pouco e reflita… Você conhece bem os fundamentos e mecanismos internos do seu banco de dados? Não é necessário saber o código fonte ou os mínimos detalhes da engine, longe disso, pergunto se você consegue entender os reais motivos de um problema, como o crash recovery funciona e coloca o banco em um estado consistente, o que é Write Ahead Logging, checkpoint, MVCC, ou como é a estrutura de uma B+tree?

Já faz anos que entrevisto profissionais de banco de dados, seja para lugares onde trabalhei ou a pedido de clientes, e em geral o que me mais me impressiona (negativamente) é a quantidade de DBAs ou desenvolvedores que trabalham com bancos de dados relacionais durante anos e não fazem ideia de conceitos básicos da engine com qual estão trabalhando. São profissionais que sabem utilizar o banco, fazer backup, um restore, rotinas de manutenção e até seguem recomendações de melhores práticas, porém param aí, não procuram entender os porquês e nos problemas mais difíceis, acabam não resolvendo a causa raiz e criando uma série de remendos/paliativos.

Então se você quer aprender mais sobre engines de bancos de dados, tem uma conexão com a internet e está disposto a perder investir algumas horas de sono nas próximas semanas, recomendo acompanhar um curso de banco de dados…

Certa vez esbarrei com o perfil de Andy Pavlo (http://www.cs.cmu.edu/~pavlo/), um acadêmico envolvido com banco de dados e em um de seus tweets cheguei a um curso dele lá na universidade de Carnegie Mellon: Database Systems (http://15721.courses.cs.cmu.edu/spring2016/).

O curso está sendo gravado e publicado aqui: https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx?#folderID=%22ed2ee867-9610-4bad-94af-5d12c2ea47cd%22

O curso tem por objetivo explorar as novidades dos bancos de dados relacionais e o que está mudando no desenvolvimento dos produtos, explicando detalhes de funcionamento das engines relacionais que tanto gostamos. Ainda nem cheguei na metade do curso, mas estou aqui recomendando. Logo no início o Andy menciona que o curso é um Database Internals, então aproveitei o gancho para o título do post.

É um conteúdo diferente do que estamos acostumados, pois o foco é como construir um SGBDR! Só a lista de leitura dos paper que estão na agenda do curso vale a pena: http://15721.courses.cs.cmu.edu/spring2016/schedule.html

E para você que está acompanhando o SQL Server, vai ficar satisfeito em saber que em diversos momentos ele elogia a pesquisa e os avanços do SQL Server, o que deixa claro que mesmo sendo uma engine que entrou mais tarde do mercado de bancos de dados, se comparado ao Oracle e DB2, tem um futuro longo pela frente, e esperamos, brilhante.

Espero que possamos conversar sobre o curso e que ele incentive você a se aprofundar cada vez mais no mundo dos bancos de dados, que é fantástico.

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

domingo, 6 de outubro de 2013

SBBD 2013

Neste ano eu tive a felicidade de participar do 28º Simpósio Brasileiro de Banco de Dados. O SBBD 2013 aconteceu em Recife, com diversas opções de palestras, apresentação de teses e sessões técnicas, que você pode ver aqui: http://sbbd2013.cin.ufpe.br/sbbd/programacao-geral.
Talvez você esteja se perguntando, que diabos o Luti está fazendo em um evento puramente acadêmico? Vou falar do meu interesse e porque quando a oportunidade apareceu eu fiquei muito animado.
Nos estudos do dia a dia e nas atividades do trabalho ficamos focados no que os produtos oferecem e resolvendo problemas, como posso dizer... de ordem prática. Só que os avanços que vemos hoje nos SGBDs usualmente vem dos estudos de mestrado e doutorado que as universidades e empresas desenvolvem. Então é mais do que esperado estarmos sempre “atrasados” e em geral os problemas que enfrentamos diariamente são simples, se comparado às questões acadêmicas.
É bom ser desafiado a entender assuntos diversos e novos. Assistir a uma sessão chamada Hierarchical Bottom-Up Safe Semi-Supervised Support Vector Machines for Multi-Class Transductive Learning, onde diversos algoritmos são citados, deixa muito espaço para dúvidas e uma lista de artigos gigante para ler (um dia qualquer!).
Essa saída da zona de conforto me dá a possibilidade de abrir mais a mente durante alguns dias, pensar em soluções mirabolantes para problemas existentes e uma chance única para traçar planos e cogitar novas ideias, que usualmente não faço durante a carga usual de trabalho.
Entre diversas apresentações de short e full papers (sessões de 15 e 30 minutos), tivemos algumas sessões mais longas e muito interessantes.
Data Management Challenges for Social Applications – Estamos acostumados com estudo de caso e exemplos, o que o Johannes apresentou foi como estão pensando em resolver problemas do tipo: quero fazer uma viagem com amigos X, Y e Z. Já pensou em extensões da linguagem SQL onde escrevemos consultas do tipo: escolha um voo onde meus amigos estarão presentes, de preferência para companhia aérea AAAA, reserve um hotel perto do evento em um raio de X KMs e isso deve ser resolvido em até 3 dias, e claro, mantendo as propriedades ACID. Interessante e já tem gente grande pensando nisso.
Mineração de dados: modelos, algoritmos, sistemas e aplicações – Apresentação muito motivadora do Wagner Meira, que foi além do técnico e falou sobre carreira, esforço, persistência, trabalho duro e ir sempre além.
Challenges and Opportunities with Big Data – Nesta sessão o Jagadish mostrou um lado do Big Data que poucos mencionam, como visualização de conjuntos de dados para exploração e outras questões relacionadas aos Vs do Big Data, que não sejam volume.
Solid-State Disks: How Do They Change the DBMS Game? Durante 3 horas dois professores discutiram como o que muda com a chegada do SSD. Devido à assimetria das operações de escrita e leitura precisamos de novos algoritmos de indexação (ex.: FD-Tree e FAR-Tree), processamento de joins (ex.: flash join) e otimização de consultas, caching e tratamento do Buffer Pool (ex.: LRU-WSR, SCM-BP), e claro, logging. Simplesmente fantástico e fico muito feliz por poder ver os avanços que estão acontecendo para um problema muito atual, inclusive esse que já havia sido discutindo na Nimbus com o Fabiano, enquanto ele testava o DBCC OPTIMIZER_WHATIF.
O evento chegou ao fim, mas saí de lá com muita vontade de dedicar mais tempo para a leitura de papers acadêmicos, coisa que faço um pouco, mas não o suficiente.
E claro, nada melhor que ter amigos por perto! Torço para conseguir ir no SBBD 2014, que acontecerá em Curitiba.
 Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br