Slide 1

Slide 1 text

OJDPOJDPͷݕࡧΛࢧ͑Δ
 &MBTUJDTFBSDI ҏ౻঵ ג υϫϯΰ 2014/11/18

Slide 2

Slide 2 text

ҏ౻঵!TIPJUP 4PGUXBSF&OHJOFFS %XBOHP

Slide 3

Slide 3 text

"HFOEB ❖౷߹ݕࡧج൫Λ࡞ͬͨཧ༝ ❖ͳͥ&MBTUJDTFBSDIͳͷ͔ʁ ❖Ͳ͏&MBTUJDTFBSDIΛ࢖͍ͬͯΔͷ͔ʁ ❖Ͳ͏&MBTUJDTFBSDIΛӡ༻͍ͯ͠Δͷ͔ʁ ❖'"2

Slide 4

Slide 4 text

ג υϫϯΰ೥݄ظ௨ظܾࢉࢿྉΑΓ

Slide 5

Slide 5 text

౷߹ݕࡧج൫Λ࡞ͬͨཧ༝ ⿣ ݕࡧΛ௨ͨ͡OJDPOJDPશαʔϏεͷ17ɺ଺ࡏ࣌ؒͷ޲্ ⿣ ϦΞϧλΠϜݕࡧ ߴ͍Ԡ౴ੑೳɾߋ৽൓өස౓ Λ࣮ݱ͠ɺ ͞Βʹকདྷతʹ৽͍͠ݕࡧϨίϝϯυٕज़ͳͲ΁ͷରԠ ⿣ αʔϏεຖʹߏங͞Ε͍ͯΔݕࡧΠϯϑϥΛҰຊԽ͠ɺ
 ޮ཰Խ ˞ݱ࣌఺Ͱ͸
 ɹ͍͔ͭ͘ͷαʔϏε͕͜ͷج൫Λར༻͍ͯ͠Δͱ͍͏
 ɹεςʔλεͰ͋ΓɺશαʔϏε͕࢖͍ͬͯΔΘ͚Ͱ͸ͳ͍

Slide 6

Slide 6 text

ͳͥ&MBTUJDTFBSDIͳͷ͔ʁ

Slide 7

Slide 7 text

౷߹ݕࡧج൫ͷੑೳཁ݅ ⿣ χίಈͷϐʔΫλΠϜͷ214ͰϦΫΤετड͚ͭͭɺ
 ݕࡧ݁ՌΛඵҎ಺ʹฦͤΔ͜ͱ ⿣ ίϯςϯπ৘ใͷߋ৽͔Β෼Ҏ಺ʹݕࡧ݁Ռʹ
 ൓өͰ͖Δ͜ͱ ⿣ OJDPOJDPશαʔϏεͷݕࡧج൫ͱͳΓಘΔ͜ͱ 4DBMF0VU ;FSP EPXOUJNF NJHSBUJPO 1MVHHBCMF

Slide 8

Slide 8 text

౷߹ݕࡧج൫ͷੑೳཁ݅ ⿣ χίಈͷϐʔΫλΠϜͷ214ͰϦΫΤετड͚ͭͭɺ
 ݕࡧ݁ՌΛඵҎ಺ʹฦͤΔ͜ͱ ⿣ ίϯςϯπ৘ใͷߋ৽͔Β෼Ҏ಺ʹݕࡧ݁Ռʹ
 ൓өͰ͖Δ͜ͱ ⿣ OJDPOJDPશαʔϏεͷݕࡧج൫ͱͳΓಘΔ͜ͱ 13+։࢝౰࣌ͷ4PMSͰ͸
 ཁ݅Λຬͨͤͦ͏ʹͳ͔ͬͨ

Slide 9

Slide 9 text

Ͳ͏&MBTUJDTFBSDIΛ࢖͍ͬͯΔͷ͔ʁ

Slide 10

Slide 10 text

Ͳ͏&MBTUJDTFBSDIΛ࢖͍ͬͯΔͷ͔ʁ ⿣෼ࢄܕશจݕࡧΤϯδϯͱͯ͠ ⿣ϩάղੳͱՄࢹԽπʔϧͱͯ͠,JCBOB ⿣αδΣετݕࡧͷࣙॻੜ੒༻όοΫΤϯυͱͯ͠

Slide 11

Slide 11 text

ݕࡧର৅͸Կ͔ʁ ⿣OJDPOJDPͷίϯςϯπ ˞ݱࡏ͸ݕࡧ݁ՌʹදࣔͰ͖Δίϯςϯπ͚ͩ ⿣χίχίಈը໿ ⿣χίχίੜ์ૹ໿ ⿣χίχί੩ը໿ ⿣χίχίνϟϯωϧ χίχίχϡʔε ⿣ ·ͩ·ͩର৅͸૿͑Δ ˞ΠϕϯτͷൃੜຖʹΠϯσοΫεߋ৽

Slide 12

Slide 12 text

ΞʔΩςΫνϟ ͍ͩͿϥϑʹ RabbitMQ Cluster MySQL Master/Slave Elasticsearch Cluster Indexer &
 Converter API front MessageReceiver niconico
 services niconico
 services ࢀরܥ ߋ৽ܥ Op module ids query contents on-premises

Slide 13

Slide 13 text

ϊʔυΠϯσοΫεઃܭ ⿣ ϊʔυͷϩʔϧ෼͚ͳ͠ OPEFNBTUFS OPEFEBUBUSVF 
 
 
 
 ⿣ αʔϏεΠϯσοΫελΠϓ ϨϓϦΧ ˞Ϛοϐϯάมߋɺ3FJOEFYͳͲͷϝϯςΛαʔϏεຖʹͰ͖ΔΑ͏ʹ Ϋϥελ ϊʔυ ΠϯσοΫε λΠϓ

Slide 14

Slide 14 text

NBQQJOHT\ JUFN\ ུ QSPQFSUJFT\ UJUMF\ UZQFTUSJOH JOEFY@BOBMZ[FSJOEFYJOH"OBMZ[FS ུ ^ EFTDSJQUJPO\^ WJFX@DPVOU\ UZQFJOUFHFS ^ NZMJTU@DPVOU\^ VQMPBE@UJNF\^ DPNNVOJUZ@JE\^ ϊʔυΠϯσοΫεઃܭ ⿣ Ϛοϐϯά͸ϑϥοτ ✤ χίχίಈը WJEFP ✤ UJUMF ✤ EFTDSJQUJPO ✤ WJFX@DPVOU ✤ NZMJTU@DPVOU ✤ VQMPBE@UJNF ✤ DPNNVOJUZ@JE ✤ ✤ χίχίੜ์ૹ MJWF ✤ UJUMF ✤ EFTDSJQUJPO ✤ WJFX@DPVOU ✤ DPNNFOU@DPVOU ✤ DPNNVOJUZ@MFWFM ✤ DPNNVOJUZ@JE ✤

Slide 15

Slide 15 text

ϊʔυΠϯσοΫεઃܭ ⿣ ΤΠϦΞεΛશΠϯσοΫεͰར༻ WJEFP@ WJEFP WJEFP@ WJEFP WJEFP@ ϝϯςલ ϝϯςޙ WJEFP@ WJEFP WJEFP@ ϝϯςத reindex
 (number_of_replicas͸0ʹɺ
 optimizeޙɺ0͔Β1ʹ͢Δ) Close

Slide 16

Slide 16 text

$6%ϝοηʔδ $SFBUF 3FBE 6QEBUF %FMFUF

Slide 17

Slide 17 text

Create { "timestamp": 1415850040, "cudtype": "create", "issuer": "publisher", "service_name": "video", "cmsid": "sm9", "values": { "user_id": 1234567, "title": "৽ɾ߽݂ࣉҰ଒ -൥೰ղ์ - Ϩοπΰʔʂӄཅࢣ", "description": “Ϩοπΰʔʂӄཅࢣʢϑϧίʔϥεόʔδϣϯʣ”, "comment_count": 0, “…”, // লུ - શϑΟʔϧυσʔλ͕ૹΒΕΔ "tags": “ӄཅࢣ ެࣜ …” } }

Slide 18

Slide 18 text

Update { "timestamp": 1415850040, "cudtype": "update", "issuer": "publisher", "service_name": "video", "cmsid": "sm9", "values": { “view_counter": 9876 } }

Slide 19

Slide 19 text

Delete { "timestamp": 1415850040, "cudtype": "delete", "issuer": "publisher", "service_name": "video", "cmsid": "sm9", }

Slide 20

Slide 20 text

CUD CUD CUD CUD CUD CUD CUD CUD CUD χίಈ χίੜ etc. MessageReceiver RabbitMQ CUD CUD CUD CUD CUD CUD CUD Elasticsearch MySQL Indexer & Converter αʔϏεڥք MessageReceiver MessageReceiver

Slide 21

Slide 21 text

ϓϥάΠϯ ⿣ ಺੡ϓϥάΠϯ ⿣ OJDPOJDP༻ͷಠࣗτʔΫφΠβˍϑΟϧλ ⿣ GVODUJPOTDPSFͷܭࢉ༻ϩδοΫ ɹ˞Πϯετʔϧ๨Ε๷ࢭFMBTUJDTFBSDIZNM
 ɹɹQMVHJONBOEBUPSZOJDPBOBMZ[FS OJDPTDSJQU ⿣ ར༻ϓϥάΠϯ ⿣ IFBE LPQG CJHEFTL )2 ⿣ .BSWFM ݕূ࣌ʹɻຊ൪؀ڥʹ΋ཉ͍͚͠Ͳ

Slide 22

Slide 22 text

Ͳ͏&MBTUJDTFBSDIΛӡ༻͍ͯ͠Δͷ͔ʁ

Slide 23

Slide 23 text

&MBTUJDTFBSDIΫϥελͷ੒௕ 2012 2013 2014 WΫϥελߏங WҠߦ 2015 WҠߦ ϊʔυ਺✖️ WҠߦ ϊʔυ਺✖️ WYҠߦ ϊʔυ਺✖️ʁ ˞ΫϥελSFTUBSUʹΑΔ
 ɹఀࢭϝϯς ˞3PMMJOHSFTUBSUʹΑΔ
 ɹແఀࢭϝϯς ˞ΫϥελίϐʔεΠον
 ɹʹΑΔແఀࢭϝϯς ˞3PMMJOHSFTUBSUʹΑΔϝϯς༧ఆ

Slide 24

Slide 24 text

σϓϩΠ؅ཧπʔϧ ⿣ ಺੡$BQJTUSBOP8FCXSBQQFS ⿣ &MBTUJDTFBSDIEFQMPZTUBSUTUPQSFTUBSU ⿣ ֤छϓϥάΠϯΠϯετʔϧ ⿣ 1VUNBQQJOH ⿣ ΤΠϦΞε੾Γସ͑ ⿣ ($)FBQ$MBTTIJTUPHSBNEVNQग़ྗ ⿣ ֤छϩά֬ೝ ⿣

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

ϞχλϦϯά ⿣ $IFDL$MVTUFS)FBMUICZ;BCCJY
 HSFFOZFMMPXSFE ⿣ 4MPX-PH *OEFYJOH4FBSDIJOH ⿣ ($MPH ZPVOHPME ⿣ $16.FNPSZ)FBQ ⿣ FUD

Slide 27

Slide 27 text

͜Ε·Ͱૺ۰ͨ͠τϥϒϧ ⿣ 4QSJUCSBJO໰୊ ˞NJOJNVN@NBTUFS@OPEFTઃఆࡁΈ ⿣ ϚελϊʔυͰͷ'VMM($ʹΑΔQJOHUJNFPVU ⿣ ϚελϊʔυͷSFTUBSUͱγϟʔυͷSFSPVUFͰճ෮ 01 02 03 04 05 06 01 03 04 05 06 02 03 04 05 06 Ϋϥελ ϊʔυ Ϛελʔϊʔυ cluster_v1 cluster_v1 cluster_v1 ϊʔυ01͔ΒݟͨΫϥελ ϊʔυ02͔ΒݟͨΫϥελ ਖ਼ৗঢ়ଶͷΫϥελ

Slide 28

Slide 28 text

͜Ε·Ͱૺ۰ͨ͠τϥϒϧ ⿣ ૝ఆ֎ͷΠϯσοΫεEZOBNJDDSFBUJPOPGNBQQJOHT ⿣ ஌Β͵ؒʹҙਤ͍ͯ͠ͳ͍ΠϯσοΫε͕࡞ΒΕͯ͠·͍ͬͯͨ ⿣ BDUJPOBVUP@DSFBUF@JOEFYGBMTF ⿣ JOEFYNBQQFSEZOBNJDGBMTF ⿣ ૝ఆ֎ͷϑΟʔϧυEZOBNJDDSFBUJPOPGpFMET ⿣ ϑΟʔϧυ௥Ճ͸Ͱ͖Δ͚Ͳফͤͳ͍ ⿣ ҙਤ͍ͯ͠ͳ͍ϑΟʔϧυΛؚΉ+40/Λ์ΓࠐΜͩ͜ͱ͕ݪҼ ⿣ EZOBNJDTUSJDU ⿣ JOEFYRVFSZQBSTFBMMPX@VONBQQFE@pFMETUSVFGBMTF ʹ͠ͱ͘ͱ ͞Βʹྑ͍͔΋

Slide 29

Slide 29 text

͜Ε·Ͱૺ۰ͨ͠τϥϒϧ ⿣ 0VU0G.FNPSZFYDFQUJPO ⿣ େ͖ΊͷΠϯσοΫεͷϨϓϦΧγϟʔυͷ͕ͭ*OJUJBMJ[JOHͷ··ఀࢭ ⿣ ࢭΉແ͘OVNCFS@PG@SFQMJDBΛˠˠʹͨ͠ޙɺൃੜ ⿣ ϊʔυͷSFTUBSUͰ෮ؼ ⿣ ң͕௧͘ͳΔτϥϒϧ͸ଞʹ΋

Slide 30

Slide 30 text

ෛՙܭଌνϡʔχϯά ⿣ ෛՙܭଌπʔϧ(BUMJOH +.FUFS
 IUUQTHJUIVCDPNFMBTUJDTFBSDIFMBTUJDTFBSDIUSFFNBTUFSTSDUFTUSFTPVSDFTKNFUFS ⿣ νϡʔχϯά ୅දతͳ΋ͷ ⿣ Ϋϥελ ⿣ EJTDPWFSZ[FONJOJNVN@NBTUFS@OPEFT ⿣ EJTDPWFSZ[FOGEQJOH@JOUFSWBM UJNFPVU SFUSJFT ⿣ ΠϯσΫγϯά ⿣ SFGSFTI@JOUFSWBMTT ⿣ @BMM\FOBCMFEGBMTF^ ⿣ ݕࡧ ⿣ @SPVUJOH\QBUIHSPVQ@JE^ ⿣ "HHSFHBUJPO༻ʹCVDLFUT୯Ґʹγϟʔυ͕෼͔ΕΔΑ͏ϧʔςΟϯά

Slide 31

Slide 31 text

5IBOLT2VFUJPOT

Slide 32

Slide 32 text

ྑ͘ݟΔ৘ใݯ ⿣ &MBTUJDTFBSDI#MPH
 IUUQXXXFMBTUJDTFBSDIPSHCMPH ⿣ &MBTUJDTFBSDIUIFEFpOJUJWFHVJEF
 IUUQXXXFMBTUJDTFBSDIPSHHVJEFFOFMBTUJDTFBSDIHVJEFDVSSFOUJOEFYIUNM ⿣ 'PVOE
 IUUQTXXXGPVOEOPEPDVNFOUBUJPO IUUQTXXXGPVOEOPGPVOEBUJPO ⿣ !KPIUBOJͷ೔هOE
 IUUQCMPHKPIUBOJJOGP ⿣ )FMMP&MBTUJDTFBSDI
 IUUQTNFEJVNDPNIFMMPFMBTUJDTFBSDI ⿣ -VDFOFOJHIUMZCFODINBSLT
 IUUQQFPQMFBQBDIFPSHdNJLFNDDBOEMVDFOFCFODI

Slide 33

Slide 33 text

ఏڙ גࣜձࣾυϫϯΰ υϫϯΰ͸ຊ෺ͷ ݕࡧcσʔλϚΠχϯάc8FCΞϓϦcεϚϗΞϓϦ 
 ΤϯδχΞΛืू͍ͯ͠·͢ɻ