1. ã½ã¼ã·ã£ã«ã²ã¼ã ã¹ã±ã¼ã«ã¢ã¦ãã®æ´å² gussan@Drecom Co., Ltd. Copyright © Drecom Co., Ltd. 12å¹´2æ20æ¥æææ¥
Twitterãåæ£ãã¬ã¼ã ã¯ã¼ã¯ãGizzardãå ¬éï¼ Scalaã§æ¸ãããShardingãå®ç¾ããããã«ã¦ã§ã¢ Twitterã¯ç¬èªã«éçºããåæ£ãã¬ã¼ã ã¯ã¼ã¯ã®ãGizzardãããªã¼ãã³ã½ã¼ã¹ã¨ãã¦å ¬éãã¾ãããGizzardã¯Scalaã§æ¸ãããJavaVMä¸ã§åä½ããããã«ã¦ã§ã¢ã§ãPHPãRubyã¨ãã£ãWebã¢ããªã±ã¼ã·ã§ã³ããã®è¦æ±ãèªåçã«ãã¼ã¿ãã¼ã¹ã«åæ£ãããã¨ã§ã大è¦æ¨¡ã§å¯ç¨æ§ã®é«ãåæ£ãã¼ã¿ãã¼ã¹ã容æã«å®ç¾ããããã®ãã®ã§ãã Gizzardï¼ãã©ã«ããã¬ã©ã³ããªåæ£ãã¼ã¿ãã¼ã¹ãå®ç¾ The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterã®ããã°ã«ãã¹ãããããIntroducing Gizzard
scale outã®æè¡ é¦è¤ ä¸å¹¸ Last-updated: January 5, 2010 注: ãã®ãã¼ã¸ã®æç« ã¯ä»¥ä¸ã®è¨äºã®å å稿ã§ãã é¦è¤ä¸å¹¸, "ã¹ã±ã¼ã«ã¢ã¦ãã®æè¡", ã¯ã©ã¦ãã®æè¡, pp.88-101, (æ ª)ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹, ISBN978-4-04-868064-6, 2009å¹´ 11æ 6æ¥ ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹ç¤¾ã® æ¸ç±ç´¹ä»ãã¼ã¸ Amazon.co.jp ã® ãã¼ã¸ é¦è¤ä¸å¹¸, "ã¹ã±ã¼ã«ã¢ã¦ãã®æè¡", UNIX magazine 2009å¹´ 4æå·, pp.78-91, (æ ª)ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹, 2009å¹´ 3æ 18æ¥ ãã¼ã¿ãã¼ã¹ã«æ±ããããæ§è½ã試ç®ããã¨ããã åå°ãç¾å°â¦æ°ä¸å°ã®ãµã¼ããå¿ è¦ã«ãªã£ãã ã¯ã©ã¦ããæ§ç¯ããå´ã¯ããããåé¡ã«ç´é¢ãã解決ãããã¨ãã¦ããã å°æ°ã«æ¯ä¾ããæ§è½ãå¼ãåºããã¨ãã¤ã¾ãsca
KOF2009ã«ã¦ããã¦ã§ããµã¼ãã¹ã®ããã©ã¼ãã³ã¹ã¨ã¹ã±ã¼ã©ããªãã£ãã¨é¡ãã¦çºè¡¨ãã¦ãã¾ãããçºè¡¨è³æã以ä¸ã«ç½®ãã¦ããã¾ãã Performance and Scalability of Web ServiceView more presentations from Shinji Tanaka. æ¦è¦ã¯ããã¦ã§ããµã¼ãã¹ã®ããã©ã¼ãã³ã¹ãåä¸ããã¹ã±ã¼ã©ããªãã£ãé«ããããã«ãã¯ã¦ãªã§ã¯æ§ã ãªåçµã¿ãè¡ã£ã¦ãã¾ããæ¬ã»ãã·ã§ã³ã§ã¯ãã¯ã¦ãªã§æ¡ç¨ãã¦ããå ·ä½çãªæè¡ããã¦ãã¦ãå¯è¦åææ³ã¨ããããã®å¹æã«ã¤ãã¦ç´¹ä»ãã¾ãããã¨ãããã®ã§ãã æè¿ã®ãInteropãã«ã¼ãã«èªæ¸ä¼ãããã§è©±ããå 容ãã¾ã¨ãã¤ã¤ãã¬ã¹ãã³ã¹ã¿ã¤ã ã®å¯è¦åã¨ããæè¿ã®åãçµã¿ã«ã¤ãã¦è©±ãã¾ããã æè¿ãã¬ã¹ãã³ã¹ã¿ã¤ã ã«ã¤ãã¦ã¯ã以ä¸ã®ãããªã°ã©ãã使ã£ã¦ãã¾ãã x軸ãã¬ã¹ãã³ã¹æéãy軸ããã®æéå ã«å
Facebookã大è¦æ¨¡ã¹ã±ã¼ã©ããªãã£ã¸ã®ææ¦ã§å¦ãã ãã¨ï¼å¾ç·¨ï¼ï½ãã£ãã·ã¥ãæ±ããã¹ã±ã¼ã©ããªãã£ã®åé¡ã¨ãã¼ã¿ã»ã³ã¿ã¼ã«ã¾ãããä¸è²«æ§ å ¨ä¸çã§3å人ãè¶ ããä¼å¡ãæ±ããä¸çæ大ã®SNSã¨ãªã£ãFacebookãå社ã®æè¡æ å½ãã¤ã¹ãã¬ã¸ãã³ã Jeff Rothschildæ°ãã10æ8æ¥ã«ç±³ã«ãªãã©ã«ãã¢å¤§å¦ãµã³ãã£ã¨ã´æ ¡ã§è¡ã£ãã»ããã¼ãHigh Performance at Massive Scale-Lessons learned at Facebookãã®å 容ãåæ§æãã¦ç´¹ä»ãã¾ãã ï¼ãã®è¨äºã¯ãFacebookã大è¦æ¨¡ãªã¹ã±ã¼ã©ããªãã£ã¸ã®ææ¦ã§å¦ãã ãã¨ï¼åç·¨ï¼ï½800åæã®åçãã¼ã¿ã¨PHPã®ã¹ã±ã¼ã©ããªãã£åé¡ãã®ç¶ãã§ãï¼ ãã£ãã·ã¥ãã¹ã±ã¼ã©ããªãã£ã«å¤§ããªå½¹å²ãæããã¦ãã Facebookã®ä¸»ãªå½¹å²ã¯ãã¦ã¼ã¶ã¼ãç°¡åã«ï¼å人ãã¡ã®ï¼æ å ±ãéãããã¨ãã§
Facebookã大è¦æ¨¡ã¹ã±ã¼ã©ããªãã£ã¸ã®ææ¦ã§å¦ãã ãã¨ï¼åç·¨ï¼ï½800åæã®åçãã¼ã¿ã¨PHPã®ã¹ã±ã¼ã©ããªãã£åé¡ å ¨ä¸çã§3å人ãè¶ ããä¼å¡ãæ±ããä¸çæ大ã®SNSã¨ãªã£ãFacebookãå社ã®å·¨å¤§ãªã·ã¹ãã ã¯ã3ã¤ã®ãã¼ã¿ã»ã³ã¿ã¼ã«ããç´3ä¸å°ã®ãµã¼ãã¨ãPHPãC++ãMemcacheãMySQLãªã©ã®ã½ããã¦ã§ã¢ç¾¤ã«ãã£ã¦æ¯ãããã¦ãã¾ãï¼å社ã®ãã¼ã¿ã»ã³ã¿ã¼ã®å·¨å¤§ãã¯ãè¨äºã3åã®ã¦ã¼ã¶ã¼ãæ±ããFacebookã®ãã¼ã¿ã»ã³ã¿ã¼ã移åã¯èªè»¢è»ãå¸æã¯100Gbã¤ã¼ãµããã ããåç §ï¼ã å社ã®æè¡æ å½ãã¤ã¹ãã¬ã¸ãã³ã Jeff Rothschildæ°ã¯ãFacebookãå®ç¾ãã¦ãã大è¦æ¨¡ãªã¹ã±ã¼ã©ããªãã£ããããã«ãã¦ãããã®ã½ããã¦ã§ã¢ã§å®ç¾ãã¦ããã®ãã10æ8æ¥ã«ç±³ã«ãªãã©ã«ãã¢å¤§å¦ãµã³ãã£ã¨ã´æ ¡ã§è¡ã£ãã»ããã¼ãHigh Performance at Mas
ãµã¼ããå®å ¨ã«éç¨ããæ½è¨ã¨ãã¦æ§ç¯ããããã¼ã¿ã»ã³ã¿ã¼ã§ãããã°ã¼ã°ã«ã§ã¯ãã®ãã¼ã¿ã»ã³ã¿ã¼ã§ãã"è½ã¡ã"ãã¨ãããã¨æ³å®ãã¦ã¢ã¼ããã¯ãã£ãæ§ç¯ãã¦ãã¾ãã ç±³ã°ã¼ã°ã«ãä»å¹´ã®5æã«è¡ã£ãã¤ãã³ããGoogle I/Oãã§ãå社ã®Google App Engine datastore leadã§ããRyan Barettæ°ãè¡ã£ãè¬æ¼ãTransactions Across Datacenters (and Other Weekend Projects)ãã®ãããªãYouTubeã§å ¬éããã¾ããã Barettæ°ã¯ãæ å½ãã¦ããGoogle App Engineã®ãã¼ã¿ãã¼ã¹ã«é¢ãã¦ã°ã¼ã°ã«ããmultihomingãï¼ãã«ããã¼ãã³ã°ï¼ã¨å¼ã¶è¤æ°ã®ãã¼ã¿ã»ã³ã¿ã¼ãç¨ããå¦çãå®ç¾ãã¦ããçç±ã¨ãã¦ããã¼ã¿ã»ã³ã¿ã¼ãèªç¶ç½å®³ãåé»ã«è¦èãããããã¡ã³ããã³ã¹ãªã©ã«ãããã¼ã¿ã»ã³ã¿ã¼ã®
å é±æ«ã¯ä¸äº¬ãã¦RubyKaigiã«åå ãã¦ãã¾ããã éããLTæ ãããã ããã¨ãã§ããã®ã§ãã¿ã¤ãã«ã®ãããªãã¼ãã§ï¼çµæ§ç´ä½æ²æããã£ã¦ãå½åã®æ³å®ããé¸ãã¦ãã¾ã£ã...ï¼ãã¬ã¼ã³ããã¦ããããã¨ãã§ãã¾ããã 話ã®æµãã¨ãã¦ã¯ã ãWebã¢ããªã±ã¼ã·ã§ã³ã®ããã«ããã¯ã¯RDBã â ãRDBã£ã¦AmazonEC2ã¿ãããªHaaSã§ã¯ã¹ã±ã¼ã«ããªããããã â ãæ¬å½ã«ï¼ã¢ããªã®ã³ã¼ãããã®ã¾ã¾ã§ï¼ã¹ã±ã¼ã«ããããã¨æã£ãããAmazonSimpleDBã®ãããªã¯ã©ã¦ãDBã使ããããªãã â ãSimpleDBã¯MySQLããä¸æ¡ä»¥ä¸é ããããåç´ã«RDBãSimpleDBã«ç½®ãæããã¨ãããããã¨ã«ãªãã â ãSimpleDBã¸ã®ã¢ã¯ã»ã¹ã極åå°ãªãããããããªã¯ã¨ã¹ãã¯Memcachedã¨ãã§ãã£ãã·ã¥ãã¾ããå¿ è¦ããããã â ããã®ããããä»Lang-8ã§å®é¨ãã¦ããã
â»åæ£Key-Valueã¹ãã¢ãkumofsããå ¬éãã¾ããï¼ å æ¥éå¬ãããKey Value Storeåå¼·ä¼ã«è¡ã£ã¦ãã¾ãããç§ã®çºè¡¨è³æã¯âãããããã¦ã³ãã¼ãã§ãã¾ãã kvs-kumofs.pdf åããã¦èªãã¨ç解ãæ·±ã¾ããããããªãï¼ ã¹ãã¼ããªåæ£ã§å¿«é©ãã£ãã·ã¥ã©ã¤ã - mixi Engineer's Blogï¼Consistent Hashã«ã¤ã㦠ãã¤ããªã·ãªã¢ã©ã¤ãºå½¢å¼ãMessagePackãï¼kumofsã®ãããã³ã«ãé«éãªã¹ããªã¼ã ãããã¡ã¨ã¹ããªã¼ã ãã·ãªã¢ã©ã¤ã¶ã®å®è£ ãå«ã¾ãã¦ãã¾ãã Protocol Buffersã¯é ãï¼MessagePackã®ãã³ããã¼ã¯ã¨Protocol Buffersã¨ã®æ¯è¼ãã¿ã¤ãã«ã¯é£ãã memstoredï¼IOã¢ã¼ããã¯ãã£ã®ãããã¿ã¤ãã³ã° ãã«ãã³ã¢æ代ã®é«ä¸¦åæ§IOã¢ã¼ããã¯ã㣠Wavy memcached
ã·ã³ãã«ã§ã¹ã±ã¼ã©ãã«ãªåæ£ã¹ãã¬ã¼ã¸ãèªç¤¾éçºããã©ã¤ãã㢠ä¸æ¹ã©ã¤ããã¢å·è¡å½¹CTOã®æ± éæºæ´æ°ã¯ï¼å社ã®ããã°ãåçæ稿ãµã¼ãã¹ãªã©ã®ã¤ã³ãã©ã§å©ç¨ä¸ã®ã¹ãã¬ã¼ã¸ä»®æ³åã½ãããèªç¤¾éçºããäºä¾ãç´¹ä»ãããã©ã¤ããã¢ã®ãµã¼ãã¹ç¾¤ãæ±ããè¦ä»¶ããããã«å®ä¾¡ã«å®¹éã追å ã§ããããéå°ãªæ©è½ã¨ä¿¡é ¼æ§ã¯ä¸è¦ãï¼æ± éæ°ï¼ã¨å¤æãã¡ã¼ã«ã¼è£½ã®ãããã¯ã¼ã¯ã»ã¹ãã¬ã¼ã¸ã®å©ç¨ãæ¢ãï¼ããã¡ã¤ã«ã®ãã¹ããã®ã¾ã¾URLã«ãªãããï¼ãã¡ã¤ã«ã»ã·ã¹ãã ã®ãã¹ãURLã«å¤æããªãã¦æ¸ããHTTPã§å ¥åºåããåæ£åä»®æ³ã¹ãã¬ã¼ã¸ã®éçºã«è¸ã¿åã£ãã®ã ã¨ããï¼åç4ï¼ã è¨è¨ææ³ã¯ãè¤æ°ãã¼ãéã®ä¸è²«æ§ã¯CAPå®çã«åºã¥ãã¦é 延ã妥åãï¼ã¹ã±ã¼ã©ããªãã£ã¨èªã¿åºãã®éãã«ãã ãã£ããä¸æ¹ã§æ¸ãè¾¼ã¿ã¯ããããã®é度ã§ããï¼èªè¨¼ã¨ã¢ã¯ã»ã¹å¶å¾¡ã¯ã¢ããªã±ã¼ã·ã§ã³ã§å®è£ ããã®ã§ä¸è¦ãï¼æ± éæ°ï¼ã¨ãããã®ãHTTPãµã¼ãã¼
ã¤ãã¼æ ªå¼ä¼ç¤¾ã¯ã2023å¹´10æ1æ¥ã«LINEã¤ãã¼æ ªå¼ä¼ç¤¾ã«ãªãã¾ãããLINEã¤ãã¼æ ªå¼ä¼ç¤¾ã®æ°ããããã°ã¯ãã¡ãã§ããLINEã¤ãã¼ Tech Blog ããã«ã¡ã¯ãªã¼ã¯ã·ã§ã³äºæ¥é¨ãã©ãããã¼ã æè¡ã®ãã£ãã¯ã§ãã ãªã¼ã¯ã·ã§ã³ã§ã¯ä¸é¨ãµã¼ãã¹ã« RDBMS ã® MySQL ã使ã£ã¦ãµã¼ãã¹ããæä¾ããã¦ããã ãã¦ããã¾ãã ãªã¼ã¯ã·ã§ã³ã§ã¯å¤ãã®ã客æ§ããã¢ã¯ã»ã¹ãé ãã¦ããã¾ãã®ã§ã大éã®æ´æ°ãåç §ã®å¦çé度ã«åªãã MySQL ãé¸æããã客æ§ã«ã¹ãã¬ã¹ãªããµã¼ãã¹ããå©ç¨ããã ãããã æ¥ã æ¥åã«åãçµã¾ããã¦ããã ãã¦ããã¾ãã ããããç²¾å¯æ©å¨ã«ã¯æ éãã¤ããã®ã§ããµã¼ãã¹éç¨ã®è¦³ç¹ãã㯠ãæ©å¨ãæ éããã®ã¯ããããªããããããããããã«æ©ã復æ§ããããã ã¨ãã£ããã¨ã念é ã«å ¥ãã¦ããã¾ãã å®éã«ã¯ãé害ãèµ·ãã£ã¦ãã復æ§ãããã®ã§ã¯ãªããé害ãçºçããå ´åã«
ããæ°å¹´ã®å¤§è¦æ¨¡ãµã¼ãã¹ã®ã·ã¹ãã éç¨ã«ã¤ãã¦èª¿ã¹ã¦ã¿ãã®ã§åç §ãããã¼ã¸ããã¡ã¤ã«ãæ¬ã¸ã®ãªã³ã¯ãã¾ã¨ãã¦ãããPDF ã¸ã®ãªã³ã¯ãå¤æ°å«ã¾ãã¦ããã®ã§ã注æãã æ代ãæ代ãªãä¼æ¥ã®ãã¦ãã¦ã¨ãã¦é ããã¦ãããããªæ å ±ãããã ãå ¬éãã¦ãããã¦ããã¨ããã®ãé常ã«ããããããå ¬éãã¦ããã¦ããåä¼æ¥ãå ¬éãã¦ããã¦ãã人ã«æè¬ã ãã¨ã§æ°ä»ããããGoogle ã Facebook ã®äºä¾ãæ¢ãã¦ããã°ããã£ããThrift ã¨ããã£ãã®ã«ãããããªæ å ±ããã£ããããªã©ããã°ãã²æãã¦ãã ããã追è¨ãã¦ããã¾ãã youtube http://d.hatena.ne.jp/stanaka/20070427/1177651323 digg http://d.hatena.ne.jp/stanaka/20070427/1177651323 livedoor http://labs.cybo
ããã«ã¡ã¯ãmixiéçºé¨ã®youheiã§ãã ä»åã¯å æ¥8æ4æ¥ã«ãªãªã¼ã¹ãããã¨ã³ã¼ãã«ã¤ãã¦æ¸ãããã¨æãã¾ãã ã¨ã³ã¼ã¨ã¯ ã¾ãã¯ã¨ã³ã¼ã¨ã¯ã©ãããæ©è½ãã®ãç´¹ä»ã§ãããããã¢ã¼ã·ã§ã³ãã¼ã¸ããããã¾ãã®ã§ãã¡ããã覧ããã ããã°å¹¸ãã§ãããã¾ãã http://mixi.jp/guide_echo.pl ããã¤ãæç²ãã¾ãã¨ã ããªãã®"ä»"ãä¸è¨ã«ãã¦ã¿ã¾ãããï¼èª°ãã«ä¼ããããã¨ãã²ã¨ããã¨çãä½ã§ãOKï¼ æ°è»½ãªæ°ã³ãã¥ãã±ã¼ã·ã§ã³æ©è½ã§ãã ãã¨ãã°ããä»æ¥ã¯ãã天æ°ã ãªããã¨ãããã²ã¨ããã¨ãããããè ¹ãããã¼ï¼èª°ãã©ã³ãã«ããããï¼ãã¨ããã¡ãã»ã¼ã¸çãªä½¿ãæ¹ã¾ã§ããã¨ã³ã¼ãã®æ¥½ãã¿æ¹ã¯ããªãæ¬¡ç¬¬ï¼ ãã¤ãã¯ã·ã£å士ã§ãã¨ã³ã¼ãã使ãã¨ãã¼ã ã«ãäºãã®æ¸ããã¿ã表示ããã¾ãã æ°ã«ãªã£ãæ¸ããã¿ã«ã¯ãè¿ä¿¡ãããã¨ãã§ãã¡ããã¾ããããªãããµã¨æ¸ãããã ä¸è¨ã«ãæãã¬è¿
CodeZineç·¨éé¨ã§ã¯ãç¾å ´ã§æ´»èºãããããããã¼ãã¹ã¿ã¼ã«ããããã®ã«ã³ãã¡ã¬ã³ã¹ãDevelopers Summitãããã¨ã³ã¸ãã¢ã®çããã¾ããã¼ã¹ãããããã®ã¤ãã³ããDevelopers Boostããªã©ããã¾ãã¾ãªã«ã³ãã¡ã¬ã³ã¹ãä¼ç»ã»éå¶ãã¦ãã¾ãã
KOF 2008 ã§ã®çºè¡¨è³æãã¯ã¦ãªæµå¤§è¦æ¨¡ãã¼ã¿å¦çãã以ä¸ã«ã¢ãããã¼ããã¾ããã http://bloghackers.net/~naoya/ppt/081108huge_data.ppt ä¸é¨åèæç®ããã®å¼ç¨ (Introduction to Information Retrieval ãã Vector space model ã®å³ããã¤ãã® ChangeLog ãã転置ã¤ã³ããã¯ã¹ã®å³) ãããã¾ãããã®å ´ãåãã¦æè¬ã ç°å¢ã«ãã£ã¦ã¯ãããããã©ã³ãã®è¡¨ç¤ºããã¾ãã¡ã ã¨æãã¾ããããäºæ¿ãã ããã è¿½è¨ SlideShare ã«ã¢ãããã¼ããã¾ããã 081108huge_data.pptView SlideShare presentation or Upload your own. (tags: linux mysql) 追è¨: ã¡ã¢ãªã¯ãã£ã¹ã¯ã® 150 åã«ã¤ãã¦
KOF2008ï¼é¢è¥¿ãªã¼ãã³ã½ã¼ã¹2008ã¨ããã¤ãã³ãã«æ¥ã¦ãã¾ãã ã¯ã¦ãªã®ä¼è¤ããã®è¬æ¼ããã£ãã®ã§ãè¬æ¼ã¡ã¢ãå ¬éã ï¼ãã¯ãã¡ã¢ããå 容ã§ãã£ã¦ã100%è¨ã£ãã¨ããã«æ¸ãã¦ãããããããªãã®ã§ãåèã¨ãã¦ã覧ãã ããã (ç¶ã) ã¢ã¸ã§ã³ã 大è¦æ¨¡ãªãã¼ã¿ OSã®ãã£ãã·ã¥ MySQLã®éç¨ å¤§è¦æ¨¡ãã¼ã¿ã¢ããªã±ã¼ã·ã§ã³ã®éçº ãã¼ã¿ã®ä¾ ã¯ã¦ãªããã¯ãã¼ã¯ã®ãã¼ã¿éï¼äºåä¸ä»¶ãããã®ãã¼ã¿é ãã®ãã¼ã¿ã«å¯¾ãã¦ä½ç¾ä¸äººãã¢ã¯ã»ã¹ãã¦ããç¶æ³ã§ã©ãããä½ãã«ããã ã¬ã³ã¼ãæ° 1073ä¸ã¨ã³ããªã¼ 3134ä¸ã¨ã³ããªã¼ 4143ä¸ã¿ã° ãã¼ã¿ãµã¤ãº ã¨ã³ããªã¼2.5GB ä½ã®å·¥å¤«ããªãæ®éã«ã¢ã¯ã»ã¹ããã¨...200ç§å¾ ã£ã¦ãçµæã帰ã£ã¦ããªã 大è¦æ¨¡ãã¼ã¿ã®é£ããã¨ãã éçºãµã¼ãã§éçºè ãä½ã£ã¦ããæã¯å¿«é©ã«åãã¦ãã¦ããå¤æ°ã®äººéãã¢ã¯
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}