sexta-feira, 9 de novembro de 2012

PASS Summit 2012 – Parte VI

Quinta-feira – 08/11/2012
Mais um dia de PASS Summit, acordamos, café da manhã reforçado, caminhada de 15 minutos até o centro de convenções, mais um café e pronto para as sessões. Vou seguir o mesmo padrão de ontem.
·         Keynote
o   Esse fez jus a minha opinião sobre keynotes, só deveria haver 1 por evento, passar por todos os destaques rapidamente, ganhar os aplausos e depois partir para as sessões que vão detalhar o que foi mostrado.
o   Não gostei do keynote e parece que o feedback em geral não foi muito positivo, então nada a acrescentar.
·         AD-501-S: Query Tuning Mastery: The Art and Science of Manhandling Parallelism – Adam Machanic
o   Outro palestrante que sempre assisto e novamente mostrou para que veio, com uma sessão muito bem preparada, ótimas demos e explicações claras, com certeza estará listada entre uma das melhores sessões do PASS neste ano.
o   Ele quebrou a apresentação em 3 partes: nivelamento, problemas com paralelismo e o seu APPLY pattern.
o   Ele comentou sobre a lei da Amdahl (http://en.wikipedia.org/wiki/Amdahl's_law) que me fez lembrar os tempos de faculdade.
o   Sabia que usar uma função escalar inibe o uso de paralelismo pelo query optimizer? E que existem mais uma série de coisas que tem esse comportamento?
o   Foram discutidos alguns “problemas” ou preconceitos (como ele chama) do query optimizer com alguns operadores, e como usar alguns truques ou formas diferentes de escrever a consulta para resolver o problema.
o   Trace flag 8649 é sua amiga quando você quer ver um plano paralelo
o   64 threads é o limite do SQL Server para paralelismo
o   Problemas com o cálculo do custo com operações de compute scalar podem acontecer (o QO sempre acha que eles serão baratos).
o   Muito cuidado com o desbalanceamento dos registros entre as threads, imagina como seria legar ver 8 threads trabalhando, uma com 10000000 registros e todas as outras com 0 registros? Cuidado x2! Repartition é seu amigo.
o   Por fim foi explorado um padrão que o Adam tem usado por anos em seus projetos de BI, onde ele usa o APPLY para gerar planos com nested loop deixando como o lado de dentro (abaixo) do operador uma zona paralela, garantindo na outer table uma boa distribuição dos dados entre as threads. Muito bonito e elegante a solução.
o   No fim uma consulta serial que executava em 27 foi otimizada em uma série de passos para levar apenas 10 segundos, no mesmo hardware.
o   Pelos comentários já deu para ver que tenho muitas anotações e grandes exemplos, que serão postados em seu blog, então vocês podem brincar também.
·         BIA-306-M: How Klout Changed the Landscape of Social Media with Hadoop and BI – Denny Lee e Dave Mariani
o   Sempre é bom ver uma sessão que sai da sua zona de conforto, então nada melhor que ouvir sobre Hadoop, pig, hive, node.js, etc.
o   A arquitetura de referência utilizada pelo Klout (estudo de caso) utiliza 150 máquinas com hadoop, uma série de outros componentes e um cubo no SSAS 2012 com 4TB, que é acessado pela aplicação.
o   Para o Klout estamos falando de vários milhões de registros, com por exemplo, a dimensão de usuários com 450 milhões de registros e 12 milhões de eventos (registros) por dia (o que seria a tabela de fato), com retenção de 90 dias.
o   Vou colocar aqui algumas das anotações que eu fiz, então talvez você não consiga tirar nada de útil, pois meu único objetivo é que seja relevante para mim, não para vocês (sorry!).
o   Doesn´t throw data out, write and later decide how to access and query it
o   Event tracker architecture
§  Tracker API
§  Log process => flume
§  Hadoop warehouse
§  Cube
§  Klout UI (tableau for visualizations)
o   Partition by hour in event tracker, elsewhere by hour
o   Serializing and de-serializing data from json into other format
o   Hive - map/reduce generator
o   Forget about using noSQL database for scan, klout use klout_user_id to find related activity (very punctual search)
o   Hive ODBC driver
o   Best practices and lessons learned
§  Avoid using a traditional DBMS for staging
§  Use SQL server OpenQuery interface for heterogeneous joins
§  Leverage hive UDF to transform complex data types, such as JSON, into rows and columns that T-SQL com understand
§  Manage large dimensions by using Hive view
o   Para quem não conhece o Denny Lee, merece muito conhecer o trabalho dele (http://dennyglee.com/)
·         A sessão DBA-400-HD: Recovering Lost Data do Robert foi cancelada, então tive que escolher outras sessões.
o   Uma pena as duas sessões não acontecerem, estava querendo ver ideias para melhorar nosso treinamentos de Disaster Recovery na Nimbus. Fica para um outra oportunidade.
·         CLD-300-M: SQLCAT: SQL Azure Design Patterns and Best Practices
o   Foi bom ver nessa sessão o que nós na Nimbus estamos corretos a afirmar que nuvem não é scale up, mas sim scale out. Temos ido com essa abordagem em nossos clientes e o resultado muito bom.
o   O lado ruim dessa brincadeira é que é necessário cuidar das questões de escalabilidade horizontal na sua arquitetura e aplicação, talvez não em um futuro próximo onde isso será mais transparente, mas hoje é sua responsabilidade fazer a quebra e a (difícil) consulta horizontal.
o   Seguindo a linha da última sessão, alguns comentários sem me preocupar se você vai atender ou não. São eles...
o   Scale out architecture
o   Azure compute (and other cloud resources) are usually small, even compared to
o   SQL DB partition: high state, manual partition (app), partition function
o   Horizontal partition
o   Hybrid partitioning, SQL, Table storage, Blob storage
o   Partitioning
§  Partition key
§  Partition value
§  Partition value to logical partition
§  Logical to physical partition
§  Non cryptographic hash to have collision, not infinite value
o   New option in today scenario = database as a container
o   Wrong partition in your architecture = no scale and hot spots
o   Performance SLA of SQL Databases? This is multi-tenant!
§  Not guaranteed today, future will able to reserve at a higher price
§  Maybe resource not online, you get to it in a 30s time frame
§  Add policy (retry quicky, backoff, fail, etc.)
o   Paper: Computing on large-scale distributed systems
o   Query fanout (scatter/gather)
·         DBA-323-A: SQLCAT: SQL Server 2012 AlwaysOn HA/DR Customer Panel
o   Por fim eu fiquei em uma panel session, onde cinco arquitetos (ou título semelhante) de grandes empresas que implementaram o AlwaysOn foram falar rapidamente sobre a arquitetura e alguns cuidados na implementação.
o   Interessante ver o tamanho de algumas implantações e a quantidade de redundância, FCI + AG + replicação + hardware replication, live migration, muita coisa bacana. Na sua maioria 0% data loss e 99,999% uptime.
o   Foram muitos detalhes e ficou difícil anotar tudo, então depois vou baixar o PPT para revisar cada um dos cenários, mas para quem trabalha em ambientes críticos foi interessante ver como o pessoal pensa em HA/DR.

A noite tivemos a famosa community appreciation party que foi no Experience Music Project (EMP) museum (ainda bem, não queria ir de novo no gameworks). Eu nunca tinha ido lá e foi bem legal, além do live band karaokê que rolou, o museu tem outras partes para visitarmos.  A de sci-fi onde vimos muitos ícones do cinema, como armas de heróis, cadeira do capitão Kirk, roupa usada pelo Neo, Superman, MIB, Alien, etc. Na parte musical vimos guitarras, roupas, fotos e um pouco sobre a história da música, bem legal também.
Para aqueles que estão animados para o PASS Summit 2013, já está aberto a compra de ingressos para o próximo ano (http://www.sqlpass.org/summit/2013/), e pagando até dia 04/01/2013 o evento sai por $ 995 (tem um promocode para isso). A data para o evento: 15 a 18 de Outubro, Charlotte. Então é hora de marcar suas férias do próximo ano ou conversar com seu chefe e economizar para pagar o cartão em Fevereiro!
Gastos do dia:
·         Refeições (valores aproximados)
o   Almoço: fornecido pelo evento.           
o   Jantar: fornecido pelo evento no community appreciation party
Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

Nenhum comentário:

Postar um comentário