3. èªå·±ç´¹ä» æ¡éãç« å¼ id: akuwano twitter: @kuwa_tw æ ªå¼ä¼ç¤¾ãµã¤ãã¼ã¨ã¼ã¸ã§ã³ã ã¤ã³ãã©ã¨ã³ã¸ã㢠æè¿ã¯èªåã§ãä½ãã£ã¦ãã®ãããããªããªã£ã¦ãã
3. ï® ã¯ããã« ç¾å¨ RDB ã使ããã¦ãã¦ããé¨åã«é¢ãã¦ã RDB 以å¤ã§ã¯åºæ¥ãªãã®ãã模索ãã noSQLï¼NotOnlySQLï¼ã¨è¨ãæµããæ¥éã«å éãã¦ããã ç¹ã« Web ã¢ããªã±ã¼ã·ã§ã³ã«ããã¦ã¯ RDB ã¯åé·ã§ããå¾åãããã ã§ã® sharding ã RDB éçãããã ãã㧠Facebook 社ãéçºããåæ£ DBãcassandraãã«ã¤ãã¦ãå®éã©ã®ç¨åº¦ä½¿ããã®ãã 調æ»/æ¤è¨¼ãã¦ã¿ãã 3 4. ï® æ¦è¦ Cassandra 㯠Facebook ã§ä½ãããåæ£å DB ãµã¼ãã§ããã Dynamo çãªå¤§è¦æ¨¡åæ£ç®¡çã¨ãHyperTable ã®æ§ãªã«ã©ã åãã¼ã¿æ§é ãæã£ã DB ã¨ãªã£ ã¦ãããé«å¯ç¨æ§ã¨åé·æ§ãä½µãæã¤ã ç®æ¨ã¨ãã¦ã¯ãããããä¸æãå©ç¨ãããã¨ã§ä»ã¾ã§ MySQL ã§è¡ã£ã¦ããã¬ããªã±ã¼ã·ã§ ã³ã¨ãã¼ãã«åå²ã§ãµã¼ããã¹ã±ã¼ã«
稼åä¸ã®Cassandraã®çµ±è¨æ å ±ã®ç¢ºèªã¨ãããã¯ã¢ãã(ã¹ãããã·ã§ãã)/ãªã¹ãã¢ã¯ãCassandraä»å±ã®ãã¼ã«ã§å®è¡ã§ãã¾ãã (çµ±è¨æ å ±) $ $CASSANDRA_HOME/bin/nodetool -host localhost tpstats Pool Name Active Pending Completed STREAM-STAGE 0 0 0 RESPONSE-STAGE 0 0 0 ROW-READ-STAGE 0 0 2 LB-OPERATIONS 0 0 0 MESSAGE-DESERIALIZER-POOL 0 0 0 GMFD 0 0 0 LB-TARGET 0 0 0 CONSISTENCY-MANAGER 0 0 0 ROW-MUTATION-STAGE 0 0 3 MESSAGE-STREAMING-POOL 0 0 0 LOAD-BALANCER
ã¸ã§ããã¤ã»ã¢ãã¤ã«ã»ãã¯ããã¸ã¼ãºã¯2011å¹´3æ3æ¥ããªã¢ã«ã¿ã¤ã ãã°è§£æã·ã¹ãã ãFlume-Cassandra Log Processorãããªã¼ãã³ã½ã¼ã¹ã½ããã¦ã¨ã¢ï¼OSSï¼ã¨ãã¦å ¬éããï¼é å¸ãµã¤ãï¼ã大éã®ã·ã¹ãã ãã°ãç¬æã«åæãã¦ãã°ã©ãã£ã«ã«ãªã¬ãã¼ããä½æã§ããããã°ä¿åã«ã¯ãOSSã®åæ£ãã¼ã»ããªã¥ã¼åãã¼ã¿ã¹ãã¢ï¼KVSï¼ãCassandraãã使ç¨ããã Flume-Cassandra Log Processorã§ã¯ãç£è¦å¯¾è±¡ã®ãµã¼ãã¼ã§çºçããã¤ãã³ãã®ãã°ãã1ç§ä»¥å ã«ã¹ãã¬ã¼ã¸ã§ããCassandraã«ä¿åãããCassandraã¯æ¸ãè¾¼ã¿ãé«éãªåæ£KVSã§ããµã¼ãã¼ã®å°æ°ã«æ¯ä¾ãã¦ãã¹ãã¬ã¼ã¸å®¹éã¨I/Oãæ¡å¼µã§ããããã®ãããã¯ã©ã¹ã¿ã¼ã®ãµã¼ãã¼å°æ°ãå¢ãããã¨ã§ãæ°ç¾Tãã¤ãã®ãã°ã®æ ¼ç´ãå¯è½ã«ãªãã¨ãã¦ããããã°ã®åææ©è½ãã¬ãã¼ãä½ææ©è½ã®ã»
Migrating to a NoSQL database is not a free ride. There are some costs and complexity involved in this process. Iâve found a good list of the costs involved in a slide from Tom Melendezâ (a bit old) presentation (embedded below): you will need to rewrite code and probably re-architect the applicationyou will need to run in parallel for testingyou will need training for your Dev and Opsyou will nee
ãã®è¨äºã¯Eric Evansæ°ã®è¨äºãhttp://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example/ãããæ°ã®è¨±å¯ãå¾ã¦ç¿»è¨³ãããã®ã§ããï¼åæå ¬éæ¥ï¼2010å¹´5æ12æ¥ï¼ æè¿ãCassandraã¯æ³¨ç®ãéãã¦ãããä»ã¾ã§ä»¥ä¸ã«å¤ãã®äººãçµç¹ã§ä½¿ããã¨è©ä¾¡ãã¦ãã¾ãããããã£ã人ã ãCassandraã«ã¤ãã¦è©³ããç¥ããã¨ããã«ã¤ããç§ãã¡ã®ããã¥ã¡ã³ããä¸è¶³ãã¦ãããã¨ãæããã«ãªã£ã¦ãã¾ããããã®ä¸ã§æãããã®ã¯ãæ¢åã®ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã®ããã¯ã°ã©ã¦ã³ããæã¤äººã«å¯¾ãããã¼ã¿ã¢ãã«ã®èª¬æã§ãã åé¡ã¯Cassandraã®ãã¼ã¿ã¢ãã«ããä¼çµ±çãªãã¼ã¿ãã¼ã¹ã®ãã¼ã¿ã¢ãã«ã¨æ¯ã¹ã¦ãæ··ä¹±ãå¼ãèµ·ãããããªãã»ã©ç°ãªã£ã¦ããããããæ£ããã¨ãã¦è¡ãããæ§ã ãªèª¬æãåãã誤解ãçã¿åºãã¦ããã¨ãããã¨ã§ãã
ã¡ã¢ãª ææ°ã®æ¸ãè¾¼ã¿ãã¼ã¿ã¯ã¡ã¢ãªå ã®ãã¼ãã«(Memtable)ã«åå¨ãã¾ããããããã£ã¹ã¯ã«æ¸ãåºãããå¤ããã¼ã¿ã¯OSã®ãã¡ã¤ã«ã·ã¹ãã ãã£ãã·ã¥ã«æ ¼ç´ããã¾ããè¨ãæãã㨠ã¡ã¢ãªã¯å¤ããã°å¤ãç¨è¯ããä»®æ³åç°å¢ã§ã¯æä½ã§ã1GBãæ¨å¥¨ãã¾ãããã¡ããææ°ã®ãã¼ã¿ã»ããã«å¿ è¦ãªRAM以ä¸ãç¨æããã®ã¯ç¡é§ã§ãããå°ç¨ãã¼ãã¦ã§ã¢ã«ããã¦ã¯4GB以ä¸ã§ä½¿ç¨ããçç±ã¯ããã¾ããããã¤ã¨ã³ãã®æ§æã§ã¯ã16ãããã¯32GB以ä¸ã®ãã¼ãã§æ§æãããã¯ã©ã¹ã¿ãåå¨ãã¾ãã RAMã¯ãã¼ãã£ãã·ã¥(0.5ã§å°å ¥)ããè¡ãã£ãã·ã¥(0.6ã§å°å ¥)ã«ãå½¹ç«ã¡ã¾ãã CPU Cassandraã§ã¯å¤§é¨åã®è² è·ã¯å®éã«ã¯ã¡ã¢ãªä¾åã«ãªãåã«CPUä¾åã«ãªãã¾ããCassandraã¯ä¸¦å度ãé«ããä¸ããã³ã¢ãå¹çè¯ã使ãã¾ãããã¤ã¨ã³ãã®ã¯ã©ã¹ã¿æ§æã§ã¯ã¯ã¢ãããããã¯8ã³ã¢ãè¯ãã§ããããä»®æ³ãã·ã³
@marqsããã¨@muranetããã¨ä¸ç·ã«hbstudy#11ã§çºè¡¨ããã¦ããã ãã¾ããã ãããæ©ã«ã¨ãè¨ãã¨ã§ããããæ°ããã¾ããCassandraãå½å ã§ãçãä¸ããã¨ãããªã¼ã¨æãã¾ãã æ親ä¼ã§ãçµæ§ä½¿ããã¨ãã¦ããæ¹ãããããã¦ãã¡ããããããã¦ãããªãã§ããï½ è³æãããã¾ããã®ã§ãã¡ãããããã£ããã©ããï¼ ã¤ã³ãã©ã¨ã³ã¸ãã¢ã®ããã®cassandraå ¥é View more presentations from Akihiro Kuwano. ããã ãã¯ãããªãã¨ï¼ ç´ æ´ãããä¼ãéãã¦ä¸ãã£ã¦ãããã¼ããã¼ãã®æ¹ã ããã¹ãã¼ã«ã¼ã®æ¹ã ãæ¥ã¦ããã ããæ¹ã ã«æè¬ãã¦ããã¾ã é常ã«æ¥½ããã£ãã§ãï¼ ãã ãã¾äºæ¥é ãã§ãw
ãæè½ãéçç£çãªäºã«æµªè²»ãã¦ãããçã®ã²ã¿ã¯ã§ããã ãã®åè¨ã«ããªãçºã«æ¥ã è²ã å¦ã¶æ¥ã (å¤å)ã ç¸å¤ãããã®æ訳ãªä¸ã«è¦ç¹ã®ã¿ã®æãåºãã§ãã ééã£ã¦ãããTwitterã§ãã³ã¡ã³ãã§ããã®ã§ããããææãã¦ãã ããã =============== Twitterã§ã¯ãã¼ã¿éããã¼ã¿å¢å éãæ¥å éãã¦ããã ä»ã¾ã§ã¯MySQLã¨memcashedã§éç¨ãã¦ããããç¹ã«éç¨è¦å¡ã®é¢ã§è²»ç¨ãè«å¤§ã«ãªã£ã¦ãã¾ã£ãã ãã®çºã«ããèªåçã§ããé«ãåæ£å®¹ææ§ãããé«ãå¯ç¨æ§ãå¿ è¦ã¨ããã é¸æè¢ã¨ãã¦ä¸ã£ãã®ãä¸è¨ã®äºã¤ã ã»MySQL Clusterã®ä»ä»¥ä¸ã®èªåå ã»KVS(HBaseãVoldemortãMongoDBãMemcacheDBãRedisãCassandraãHyperTable)ã¸ã®ç§»è¡ 次ã®æ¤è¨¼ãè¡ãäºã§é¸æè¢ã®çµãè¾¼ã¿ãè¡ã£ã ã»æ°è¦Node追å ã®å®¹ææ§ ã»SP
ã¹ã±ã¼ã©ãã«ãªãã¼ã¿ãã¼ã¹ãå®ç¾ããæ段ã¨ãã¦ãSharding MySQL plus memcachedããããç¥ãããæ¹æ³ã ã¨ã¯ã1ã¤åã®è¨äºãMySQL+Memcachedã®æ代ã¯éããããããã¯NoSQLãªã®ããã«ã¤ãã¦ã®è°è«ãã§ç´¹ä»ãã¾ããã ã¡ãªã¿ã«ãShardingãï¼ã·ã£ã¼ãã£ã³ã°ï¼ã¨ã¯è¤æ°ã®ãã¼ã¿ãã¼ã¹ã«ãã¼ã¿ãåæ£ãã¦éç¨ãããã¨ã§ããã£ããããã°Shared Nothingçãªåæ£ãã¼ã¿ãã¼ã¹æ§æã®ãã¨ã§ãï¼ãã®è¨äºã§ç´¹ä»ããè±æä¸ã«ã¯ãShared MySQLãï¼å ±æMySQLï¼ã¨ã®è¨è¿°ãããã¾ãããããã¯æãããSharded MySQLãï¼ShardãããMySQLï¼ã®ãã¹ã¹ãã«ã§ã¯ãªãã¨æ¨æ¸¬ãã¾ãï¼ã æ¥æ¬ã§ï¼ãã¶ãï¼ãã£ã¨ãMySQLã«ã¤ãã¦è©³ãã解説ãã¦ããããã°ãæ¼¢(ãªãã³)ã®ã³ã³ãã¥ã¼ã¿éãã®ã¨ã³ããªãããã«MySQLãé«éåãã7ã¤ã®æ¹æ³ãã§ã¯ãSh
ã¯ã©ã¦ãæ代ã®æ°ãããã¼ã¿ãã¼ã¹ã¨ãã¦ãéãªã¬ã¼ã·ã§ãã«ãªæ§é ãæã¤NoSQLãã¼ã¿ãã¼ã¹ã話é¡ã«ãªã£ã¦ãã¾ãï¼NoSQLï¼Not Only SQLãå½åã®çµç·¯ã¯ãã¡ãï¼ããã®NoSQLã®ä¸ã§ããã£ã¨ã注ç®ããã¦ãããã¼ã¿ãã¼ã¹ã®1ã¤ãApacheã®Cassandraã§ãã Cassandraã¯ãFacebookã§å¤§è¦æ¨¡ãã¼ã¿å¦çã®ããã«éçºããããã®å¾ãªã¼ãã³ã½ã¼ã¹ã¨ãªããç¾å¨ã§ã¯Apache Software Foundationã®ããã¸ã§ã¯ãã¨ãã¦éçºããã¦ãã¾ãã ç¾å¨ãCassandraã¯FacebookãDiggãªã©ã§ä½¿ããã¦ããããããã¯ä½¿ããã¨ãæ¤è¨ããã¦ããã¨ãããTwitterã§ãï¼ãã¤ã¼ããã¼ã¿ã®æ ¼ç´ã«ã¯ä½¿ãããªãããã§ããããã以å¤ã®ç¨éã§ï¼å©ç¨ããã¦ãã¾ãã Twitterã¨DiggãNoSQLã®ãCassandraããé¸ã¶çç± TwitterããCassandr
GT Nitro: Car Game Drag Raceã¯ãå ¸åçãªã«ã¼ã²ã¼ã ã§ã¯ããã¾ãããããã¯ã¹ãã¼ãããã¯ã¼ãã¹ãã«å ¨éã®ã«ã¼ã¬ã¼ã¹ã²ã¼ã ã§ãããã¬ã¼ãã¯å¿ãã¦ãããã¯ãã©ãã°ã¬ã¼ã¹ããã¤ãã¼ï¼å¤å ¸çãªã¯ã©ã·ãã¯ããæªæ¥çãªãã¼ã¹ãã¾ã§ãæãã¯ã¼ã«ã§éãè»ã¨ã«ã¼ã¬ã¼ã¹ã§ãã¾ããã¹ãã£ãã¯ã·ããããã¹ã¿ã¼ããããããè³¢ã使ã£ã¦ç«¶äºãæã¡ç ´ãå¿ è¦ãããã¾ãããã®ã«ã¼ã¬ã¼ã¹ã²ã¼ã ã¯ãã®ãªã¢ã«ãªç©çå¦ã¨ç´ æ´ãããã°ã©ãã£ãã¯ã¹ã§ããªãã®å¿ãççºããã¾ããããã¾ã§ãã¬ã¤ãããã¨ã®ãªããããªãã®ã§ãã GT Nitroã¯ããªãã¬ãã¯ã¹ã¨ã¿ã¤ãã³ã°ã試ãã«ã¼ã¬ã¼ã¹ã²ã¼ã ã§ããæ£ããç¬éã«ã®ã¢ãã·ããããã¬ã¹ãæãåãè¸ãå¿ è¦ãããã¾ããã¾ãã大ç©ãã¡ã¨ç«¶ãã¤ã¤ãè»ã®ãã¥ã¼ãã³ã°ã¨ã¢ããã°ã¬ã¼ããè¡ããªããã°ãªãã¾ãããä¸çä¸ã§æé«ã®ãã©ã¤ãã¼ã¨è»ã¨ã«ã¼ã¬ã¼ã¹ã«æããã¨ã«ãªãããã©ãã°ã¬ã¼ã¹ã®çå
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}