Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB Sao Paulo 2012: Coisas que aprendemos usando Mongoid com grande quantidade de dados

mongodb
July 13, 2012
500

MongoDB Sao Paulo 2012: Coisas que aprendemos usando Mongoid com grande quantidade de dados

Fabio Perrella, Locaweb
Na Locaweb, estamos refazendo o sistema de Email Markering (Saas) utilizando Rails com Mongoid, irei falar sobre esses tópicos:
por que escolhemos o mongodb e o mongoid
como implementamos campos customizaveis no modelo Contact usando field type hash do mongoid, como usamos os indices para isso
relacionamento "belongstomany" que inventamos para simular um hasandbelongstomany e não precisar trabalhar com documentos grandes. Estou fazendo uma gem para compartilhar isso em https://github.com/fabioperrella/mongoidbelongsto_many
como fizemos bulk insert de grande massa de dados utilizando mongoimport e resque
alguns operadores de update do mongodb que usamos como inc, pushAll, addToSet, rename
como estamos usando sharding, quais os critérios utilizados para escolha das sharding keys
como estamos usando replica set
maneiras para monitorar usando mongostat, MMS, db.stats(), db.collectionName.stats(), rs.serverStatus(), rs.status(), db.currentOp()
testes de carga que fizemos
problemas que enfrentamos, como por exemplo alguns bugs conhecidos do mongodb

mongodb

July 13, 2012
Tweet

Transcript

  1. (PDLO0DUNHWLQJ/RFDZHE Ɣ 6DD6 Ɣ 0XOWL7HQDQW Ɣ *UDQGHTXDQWLGDGHGHGDGRV Ɣ *UDQGHKLVWyULFRGHGDGRV Ɣ

    6LVWHPDDQWLJREDVHDGRQRSKSOLVW Ɣ !1RYDSODWDIRUPDHP5DLOV0RQJR'%
  2. 0RQJR'% Ɣ 6LPSOLFLGDGH Ɣ 6KDUGLQJJUDQGHTWGHGHGDGRV Ɣ 6FKHPDIUHHFDPSRVFXVWRPL]DGRVFRQWDWRVILOWURV Ɣ 5HSOLFD6HW$OWDGLVSRQLELOLGDGH Ɣ

    2SHUDo}HV$WRPLFDVLQFDGG7R6HWSXOOSXVK Ɣ 3HUIRUPDQFH Ɣ 0DWXULGDGHPRQJRVS Ɣ $WXDOL]Do}HVFRQVWDQWHV
  3. Ɣ %XVFDVWLSDGDV VWULQJGDWHLQW &RQWDFWZKHUH FXVWRPBILHOGVGDWH ! ^OW !7LPHSDUVH  `

    Ɣ 2SHUDGRUHVGHFRQGLomR KWWSZZZPRQJRGERUJGLVSOD\'2&6$GYDQFHG4XHULHV ,PSOHPHQWDomRGH&DPSRV&XVWRPL]iYHLV
  4. Ɣ %XJQR0RQJR'%RUGHQDomRGHLQGH[ Ɣ &DVH6HQVLWLYH KWWSMLUDPRQJRGE RUJEURZVH6(59(5 Ɣ )L[FULDUFDPSRHPORZHUFDVH ^ BLG2EMHFW,G

    IGIGDGDEGD  HPDLOEE#EEFRP QDPH3RSR/DOD QDPHBOFSRSRODOD ` ,PSOHPHQWDomRGH&DPSRV&XVWRPL]iYHLV
  5. %HORQJV7R0DQ\ Ɣ 2So}HVGHPRGHODJHP ż  (PEHG'RFXPHQWV ż 9DQWDJHQV Ŷ &RQVXOWDUiSLGDGRVGDGRV

    ż 'HVYDQWDJHQV Ŷ 7DPDQKRGRGRFXPHQWR Ŷ 3UHFLVDPRVVDEHUDVPHQVDJHQVTXHRVFRQWDWRV UHFHEHUDP UHIHUrQFLD"
  6. 0RQJRLPSRUW Ɣ WRBPRQJRBMVRQ ż FDUUHJDUREMHWRFRPGDGRVGR&69HYDOLGDU ż FRQYHUVmRGH2EMHFW,GV ż FRQYHUVmRGHGDWDV WLPHVWDPSHPPLOLVHFRQGV

    ż FRQYHUVmRGH$UUD\GH2EMHFW,GV UHODFLRQDPHQWRV ż FRQYHUVmRGH+DVKHV ż JHUDU-621QRIRUPDWRGRPRQJRLPSRUW Ɣ %XJGDWDHSRFK KWWSVMLUDPRQJRGERUJEURZVH6(59(5 
  7. 6KDUGLQJ Ɣ &KXQNVVSOLWWLQJHEDODQFLQJ ż DSyVVSOLWWLQJ &RPHoR )LP 6KDUG IHYHUHLUR MXQKR

    $ MXQKR PDUoR $ VHWHPEUR LQILQLWR $ &RPHoR )LP 6KDUG LQILQLWR IHYHUHLUR % PDUoR VHWHPEUR %
  8. 6KDUGLQJ Ɣ (VFROKDGDVKDUGNH\ ż FRPRQmRGHYHVHU Ŷ ORZFDUGLQDOLW\SRUH[HPSORFRQWLQHQWHV DIULFDDPHULFD HXURSD Ŷ

    DVFHQGLQJVKDUGNH\SRUH[HPSORREMHFWLGYDLFRQFHQWUDU WRGDVOHLWXUDVHHVFULWDVHPXPVKDUG Ŷ UDQGRPVKDUGNH\SRUH[HPSORPGTXDVHVHPSUHYDL SUHFLVDUMXQWDURVGDGRVGHYDULRVFKXQNVQDRYDL FRQVHJXLUGHL[DUGDGRVSDUHFLGRVMXQWRV
  9. 6KDUGLQJ Ɣ (VFROKDGDVKDUGNH\ ż UHFRPHQGDGRREMHFWLGVHDUFKNH\ ([HPSOR ,QLFLR )LP 6KDUG LQILQLWR

    $IULFD $ $IULFD $IULFD % $IULFD (XURSD $ (XURSD (XURSD % (XURSD LQILQLWR %
  10. 0RQLWRUDomR Ɣ GEVWDWV Ɣ GEFROOHFLRQ1DPHVWDWV Ɣ UVVHUYHU6WDWXV Ɣ UVVWDWXV Ɣ

    GEFXUUHQW2S Ɣ 0RQJR'%0RQLWRULQJ6HUYLFH 006 ż 6DD6 ż )UHH