ÉçÇøÄÚÓÐÈË·¢ÆðÁËÒ»¸öÌÖÂÛ£¬¹ØÓÚJVMÊÇ·ñÒ»¶¨ÐèÒªGC£¿ËûÃÇÈÏΪӦÓóÌÐòµÄ»ØÊÕÄ¿±êÊǹ¹½¨Ò»¸ö½öÓÃÀ´´¦ÀíÄÚ´æ·ÖÅ䣬¶ø²»Ö´ÐÐÈκÎÕæÕýµÄÄÚ´æ»ØÊÕ²Ù×÷µÄ
GC¡£¼´½öµ±¿ÉÓÃµÄ Java ¶ÑºÄ¾¡µÄʱºò£¬²Å½øÐÐ˳ÐòµÄ JVM Í£¶Ù²Ù×÷¡£
Ê×ÏÈÐèÒªÀí½âΪʲôÐèÒªGC¡£Ëæ×ÅÓ¦ÓóÌÐòËùÓ¦¶ÔµÄÒµÎñÔ½À´Ô½ÅӴ󡢸´ÔÓ£¬Óû§Ô½À´Ô½¶à£¬Ã»ÓÐGC¾Í²»Äܱ£Ö¤Ó¦ÓóÌÐòÕý³£½øÐС£¶ø¾³£Ôì³ÉSTWµÄGCÓÖ¸ú²»ÉÏʵ¼ÊµÄÐèÇó£¬ËùÒԲŻ᲻¶ÏµØ³¢ÊÔ¶ÔGC½øÐÐÓÅ»¯¡£
ÉçÇøµÄÐèÇóÊǾ¡Á¿¼õÉÙ¶ÔÓ¦ÓóÌÐòµÄÕý³£Ö´ÐиÉÈÅ£¬ÕâÒ²ÊÇÒµ½çÄ¿±ê¡£OracleÔÚJDK7ʱ·¢²¼G1 GCµÄÄ¿µÄÊÇΪÁ˼õÉÙÓ¦ÓóÌÐòÍ£¶Ù·¢ÉúµÄ¿ÉÄÜÐÔ£¬ÈÃÎÒÃÇͨ¹ý±¾ÎÄÀ´Á˽âG1
GCËù×öµÄ¹¤×÷¡£
JVM·¢Õ¹ÀúÊ·¼ò½é
»¹¼ÇµÃ»úÆ÷èÂð£¿ËûºÍ¿µ·òÓÐÒ»ÕÅÊé×À£¬Êé×ÀµÄ³éÌëÆäʵÊÇÒ»¸öʱ¿Õ´©ËóͨµÀ£¬ÈÃÎÒÃDzÙ×÷»úÆ÷èµÄʱ¿Õ»úÆ÷£¬»Øµ½1998Äê¡£ÄÇÄêµÄ12ÔÂ8ÈÕ£¬µÚ¶þ´úJavaƽ̨µÄÆóÒµ°æJ2EEÕýʽ¶ÔÍâ·¢²¼¡£ÎªÁËÅäºÏÆóÒµ¼¶Ó¦ÓÃÂ䵨£¬1999Äê4ÔÂ27ÈÕ£¬Java³ÌÐòµÄÎę̀¡ªJava
HotSpot Virtual Machine£¨ÒÔϼò³ÆHotSpot £©Õýʽ¶ÔÍâ·¢²¼£¬²¢´ÓÕâÖ®ºó·¢²¼µÄJDK1.3°æ±¾¿ªÊ¼£¬HotSpot³ÉΪSun
JDKµÄĬÈÏÐéÄâ»ú¡£

GC·¢Õ¹ÀúÊ·¼ò½é
1999ÄêËæJDK1.3.1Ò»ÆðÀ´µÄÊÇ´®Ðз½Ê½µÄSerial GC £¬ËüÊǵÚÒ»¿îGC£¬²¢ÇÒÕâÖ»ÊÇÆðµã¡£´Ëºó£¬JDK1.4ºÍJ2SE1.3Ïà¼Ì·¢²¼¡£2002Äê2ÔÂ26ÈÕ£¬J2SE1.4·¢²¼£¬Parallel
GC ºÍConcurrent Mark Sweep £¨CMS£©GC¸úËæJDK1.4.2Ò»Æð·¢²¼£¬²¢ÇÒParallel
GCÔÚJDK6Ö®ºó³ÉΪHotSpotĬÈÏGC¡£
HotSpotÓÐÕâô¶àµÄÀ¬»ø»ØÊÕÆ÷£¬ÄÇôÈç¹ûÓÐÈËÎÊ£¬Serial GC¡¢Parallel GC¡¢Concurrent
Mark Sweep GCÕâÈý¸öGCÓÐʲô²»Í¬ÄØ£¿Çë¼ÇסÒÔÏ¿ÚÁ
Èç¹ûÄãÏëÒª×îС»¯µØÊ¹ÓÃÄÚ´æºÍ²¢ÐпªÏú£¬ÇëÑ¡Serial GC£»
Èç¹ûÄãÏëÒª×î´ó»¯Ó¦ÓóÌÐòµÄÍÌÍÂÁ¿£¬ÇëÑ¡Parallel GC£»
Èç¹ûÄãÏëÒª×îС»¯GCµÄÖжϻòÍ£¶Ùʱ¼ä£¬ÇëÑ¡CMS GC¡£
ÄÇôÎÊÌâÀ´ÁË£¬¼ÈÈ»ÎÒÃÇÒѾÓÐÁËÉÏÃæÈý¸öÇ¿´óµÄGC£¬ÎªÊ²Ã´»¹Òª·¢²¼Garbage First£¨G1£©GC£¿ÔÒò¾ÍÔÚÓÚÓ¦ÓóÌÐòËùÓ¦¶ÔµÄÒµÎñÔ½À´Ô½ÅӴ󡢸´ÔÓ£¬Óû§Ô½À´Ô½¶à£¬Ã»ÓÐGC¾Í²»Äܱ£Ö¤Ó¦ÓóÌÐòÕý³£½øÐУ¬¶ø¾³£Ôì³ÉSTWµÄGCÓÖ¸ú²»ÉÏʵ¼ÊµÄÐèÇó£¬ËùÒԲŻ᲻¶ÏµØ³¢ÊÔ¶ÔGC½øÐÐÓÅ»¯¡£
ΪʲôÃû×Ö½Ð×öGarbage First£¨G1£©ÄØ£¿
ÒòΪG1ÊÇÒ»¸ö²¢ÐлØÊÕÆ÷£¬Ëü°Ñ¶ÑÄÚ´æ·Ö¸îΪºÜ¶à²»Ïà¹ØµÄÇø¼ä£¨Region£©£¬Ã¿¸öÇø¼ä¿ÉÒÔÊôÓÚÀÏÄê´ú»òÕßÄêÇá´ú£¬²¢ÇÒÿ¸öÄêÁä´úÇø¼ä¿ÉÒÔÊÇÎïÀíÉϲ»Á¬ÐøµÄ¡£
ÀÏÄê´úÇø¼äÕâ¸öÉè¼ÆÀíÄî±¾ÉíÊÇΪÁË·þÎñÓÚ²¢Ðкǫ́Ị̈߳¬ÕâЩÏ̵߳ÄÖ÷Òª¹¤×÷ÊÇѰÕÒδ±»ÒýÓõĶÔÏó¡£¶øÕâÑù¾Í»á²úÉúÒ»ÖÖÏÖÏ󣬼´Ä³Ð©Çø¼äµÄÀ¬»ø£¨Î´±»ÒýÓöÔÏ󣩶àÓÚÆäËûµÄÇø¼ä¡£
À¬»ø»ØÊÕʱʵÔò¶¼ÊÇÐèҪͣÏÂÓ¦ÓóÌÐòµÄ£¬²»È»¾ÍûÓа취·ÀÖÎÓ¦ÓóÌÐòµÄ¸ÉÈÅ £¬È»ºóG1 GC¿ÉÒÔ¼¯Öо«Á¦ÔÚÀ¬»ø×î¶àµÄÇø¼äÉÏ£¬²¢ÇÒÖ»»á·ÑÒ»µãµãʱ¼ä¾Í¿ÉÒÔÇå¿ÕÕâÐ©Çø¼äÀïµÄÀ¬»ø£¬ÌÚ³öÍêÈ«¿ÕÏеÄÇø¼ä¡£
ÈÆÀ´ÈÆÈ¥ÖÕÓÚÃ÷°×ÁË£¬ÓÉÓÚÕâÖÖ·½Ê½µÄ²àÖØµãÔÚÓÚ´¦ÀíÀ¬»ø×î¶àµÄÇø¼ä£¬ËùÒÔÎÒÃǸøG1Ò»¸öÃû×Ö£ºÀ¬»øÓÅÏÈ£¨Garbage
First£©¡£
G1 GC»ù±¾Ë¼Ïë
G1 GCÊÇÒ»¸öѹËõÊÕ¼¯Æ÷£¬Ëü»ùÓÚ»ØÊÕ×î´óÁ¿µÄÀ¬»øÔÀí½øÐÐÉè¼Æ¡£G1 GCÀûÓõÝÔö¡¢²¢ÐС¢¶ÀÕ¼ÔÝÍ£ÕâЩÊôÐÔ£¬Í¨¹ý¿½±´·½Ê½Íê³ÉѹËõÄ¿±ê¡£´ËÍ⣬ËüÒ²½èÖú²¢ÐС¢¶à½×¶Î²¢Ðбê¼ÇÕâЩ·½Ê½À´°ïÖú¼õÉÙ±ê¼Ç¡¢Öرê¼Ç¡¢Çå³ýÔÝÍ£µÄÍ£¶Ùʱ¼ä£¬ÈÃÍ£¶Ùʱ¼ä×îС»¯ÊÇËüµÄÉè¼ÆÄ¿±êÖ®Ò»¡£
G1»ØÊÕÆ÷ÊÇÔÚJDK1.7ÖÐÕýʽͶÈëʹÓõÄȫеÄÀ¬»ø»ØÊÕÆ÷£¬´Ó³¤ÆÚÄ¿±êÀ´¿´£¬ËüÊÇΪÁËÈ¡´úCMS »ØÊÕÆ÷¡£G1»ØÊÕÆ÷ÓµÓжÀÌØµÄÀ¬»ø»ØÊÕ²ßÂÔ£¬ÕâºÍ֮ǰÌáµ½µÄ»ØÊÕÆ÷½ØÈ»²»Í¬¡£´Ó·Ö´úÉÏ¿´£¬G1ÒÀÈ»ÊôÓÚ·Ö´úÐÍÀ¬»ø»ØÊÕÆ÷£¬Ëü»áÇø·ÖÄêÇá´úºÍÀÏÄê´ú£¬ÄêÇá´úÒÀÈ»ÓÐEdenÇøºÍSurvivorÇø£¬µ«´Ó¶ÑµÄ½á¹¹ÉÏ¿´£¬Ëü²¢²»ÒªÇóÕû¸öEdenÇø¡¢ÄêÇá´ú»òÕßÀÏÄê´úÔÚÎïÀíÉ϶¼ÊÇÁ¬Ðø¡£
×ÛºÏÀ´Ëµ£¬G1ʹÓÃÁËȫеķÖÇøËã·¨£¬ÆäÌØµãÈçÏÂËùʾ£º
²¢ÐÐÐÔ£ºG1ÔÚ»ØÊÕÆÚ¼ä£¬¿ÉÒÔÓжà¸öGCÏß³Ìͬʱ¹¤×÷£¬ÓÐЧÀûÓöàºË¼ÆËãÄÜÁ¦£»
²¢·¢ÐÔ£ºG1ÓµÓÐÓëÓ¦ÓóÌÐò½»ÌæÖ´ÐеÄÄÜÁ¦£¬²¿·Ö¹¤×÷¿ÉÒÔºÍÓ¦ÓóÌÐòͬʱִÐУ¬Òò´Ë£¬Ò»°ãÀ´Ëµ£¬²»»áÔÚÕû¸ö»ØÊս׶η¢ÉúÍêÈ«×èÈûÓ¦ÓóÌÐòµÄÇé¿ö£»
·Ö´úGC£ºG1ÒÀÈ»ÊÇÒ»¸ö·Ö´úÊÕ¼¯Æ÷£¬µ«ÊǺÍ֮ǰµÄ¸÷Àà»ØÊÕÆ÷²»Í¬£¬Ëüͬʱ¼æ¹ËÄêÇá´úºÍÀÏÄê´ú¡£¶Ô±ÈÆäËû»ØÊÕÆ÷£¬»òÕß¹¤×÷ÔÚÄêÇá´ú£¬»òÕß¹¤×÷ÔÚÀÏÄê´ú£»
¿Õ¼äÕûÀí£ºG1ÔÚ»ØÊÕ¹ý³ÌÖУ¬»á½øÐÐÊʵ±µÄ¶ÔÏóÒÆ¶¯£¬²»ÏñCMSÖ»ÊǼòµ¥µØ±ê¼ÇÇåÀí¶ÔÏó¡£ÔÚÈô¸É´ÎGCºó£¬CMS±ØÐë½øÐÐÒ»´ÎË鯬ÕûÀí¡£¶øG1²»Í¬£¬Ëüÿ´Î»ØÊÕ¶¼»áÓÐЧµØ¸´ÖƶÔÏ󣬼õÉÙ¿Õ¼äË鯬£¬½ø¶øÌáÉýÄÚ²¿Ñ»·ËÙ¶È¡£
¿ÉÔ¤¼ûÐÔ£ºÓÉÓÚ·ÖÇøµÄÔÒò£¬G1¿ÉÒÔֻѡȡ²¿·ÖÇøÓò½øÐÐÄÚ´æ»ØÊÕ£¬ÕâÑùËõСÁË»ØÊյķ¶Î§£¬Òò´Ë¶ÔÓÚÈ«¾ÖÍ£¶ÙÇé¿öµÄ·¢ÉúÒ²Äܵõ½½ÏºÃµÄ¿ØÖÆ¡£
Ëæ×ÅG1 GCµÄ³öÏÖ£¬GC´Ó´«Í³µÄÁ¬Ðø¶ÑÄÚ´æ²¼¾ÖÉè¼Æ£¬Öð½¥×ßÏò²»Á¬ÐøÄÚ´æ¿é£¬ÕâÊÇͨ¹ýÒýÈëRegion¸ÅÄîʵÏÖ£¬Ò²¾ÍÊÇ˵£¬ÓÉÒ»¶Ñ²»Á¬ÐøµÄRegion×é³ÉÁ˶ÑÄÚ´æ¡£ÆäʵҲ²»ÄÜ˵ÊDz»Á¬ÐøµÄ£¬Ö»ÊÇËü´Ó´«Í³µÄÎïÀíÁ¬ÐøÖ𽥸ıäΪÂß¼ÉϵÄÁ¬Ðø£¬ÕâÊÇͨ¹ýRegionµÄ¶¯Ì¬·ÖÅ䷽ʽʵÏֵģ¬ÎÒÃÇ¿ÉÒÔ°ÑÒ»¸öRegion·ÖÅ䏸Eden¡¢Survivor¡¢ÀÏÄê´ú¡¢´ó¶ÔÏóÇø¼ä¡¢¿ÕÏÐÇø¼äµÈµÄÈÎÒâÒ»¸ö£¬¶ø²»Êǹ̶¨ËüµÄ×÷Óã¬ÒòΪԽÊǹ̶¨£¬Ô½ÊÇ´ô°å¡£
G1 GCÀ¬»ø»ØÊÕ»úÖÆ
ͨ¹ýÊг¡µÄÁ¦Á¿£¬²»¶ÏÌÔ̾ɵÄÐÐÒµ£¬°ÑÓÐÏÞµÄ×ÊÔ´ÈøøÄÇЩ¾ºÕùÁ¦¸üÇ¿¡¢ÀûÈóÂʸü¸ßµÄÆóÒµ¡£ÀàËÆµØ£¬¹è¹ÈÒ²ÔÚ²»¶ÏÌÔ̹ýʱµÄÈËÔ±£¬´ÓÈ«ÊÀ½çÎüÊÕÐÂÏÊѪҺ¡£¾¹ý°ë¸ö¶àÊÀ¼ÍµÄ·¢Õ¹£¬ÔÚ¹è¹ÈµØÇø±ãÐγÉÖ»ÓÐ׿Խ²ÅÄÜÉú´æµÄÎÄ»¯¡£±¾×ÅÕâÑùµÄÀíÄGC³Ðµ£ÁËÌÔÌÀ¬»ø¡¢±£´æÓÅÁ¼×ʲúµÄÈÎÎñ¡£
G1 GCÔÚ»ØÊÕÔÝÍ£½×¶Î»á»ØÊÕ×î´óÁ¿µÄ¶ÑÄÚÇø¼ä£¨Region£©£¬ÕâÊÇËüµÄÉè¼ÆÄ¿±ê£¬Í¨¹ý»ØÊÕÇø¼ä´ïµ½»ØÊÕÀ¬»øµÄÄ¿µÄ¡£ÕâÀïÖ»ÓÐÒ»¸öÀýÍâÇé¿ö£¬Õâ¸öÀýÍâ·¢ÉúÔÚ²¢Ðбê¼Ç½×¶ÎµÄÇå³ý£¨Cleanup£©²½Ö裬Èç¹ûG1
GCÔÚÇå³ý²½Öè·¢ÏÖËùÓеÄÇø¼ä¶¼ÊÇÓɿɻØÊÕÀ¬»ø×é³ÉµÄ£¬ÄÇôËü»áÁ¢¼´»ØÊÕÕâÐ©Çø¼ä£¬²¢ÇÒ½«ÕâÐ©Çø¼ä²åÈëµ½Ò»¸ö»ùÓÚLinkedListʵÏֵĿÕÏÐÇø¼ä¶ÓÁÐÀÒÔ´ýºóÓá£Òò´Ë£¬ÊÍ·ÅÕâÐ©Çø¼ä²¢²»ÐèÒªµÈ´ýÏÂÒ»¸öÀ¬»ø»ØÊÕÖжϣ¬ËüÊÇʵʱִÐе쬼´Çå³ý½×¶ÎÆðµ½ÁË×îºóÒ»µÀ°Ñ¿Ø×÷Óá£ÕâÊÇG1
GCºÍ֮ǰµÄ¼¸´úGCµÄÒ»´ó²î±ð¡£
G1 GCµÄÀ¬»ø»ØÊÕÑ»·ÓÉÈý¸öÖ÷ÒªÀàÐÍ×é³É£º
ÄêÇá´úÑ»·
¶à²½Öè²¢Ðбê¼ÇÑ»·
»ìºÏÊÕ¼¯Ñ»·
Full GC
ÔÚÄêÇá´ú»ØÊÕÆÚ£¬G1 GCÔÝÍ£Ó¦ÓóÌÐòỊ̈߳¬È»ºó´ÓÄêÇá´úÇø¼äÒÆ¶¯´æ»î¶ÔÏóµ½SurvivorÇø¼ä»òÕßÀÏÄêÇø¼ä£¬Ò²ÓпÉÄÜÊÇÁ½¸öÇø¼ä¶¼»áÉæ¼°¡£¶ÔÓÚÒ»¸ö»ìºÏ»ØÊÕÆÚ£¬G1
GC´ÓÀÏÄêÇø¼äÒÆ¶¯´æ»î¶ÔÏ󵽿ÕÏÐÇø¼ä£¬ÕâЩ¿ÕÏÐÇø¼äÒ²¾Í³ÉΪÁËÀÏÄê´úµÄÒ»²¿·Ö¡£
G1µÄÇø¼äÉè¼ÆÁé¸Ð
ΪÁ˼ӿìGCµÄ»ØÊÕËÙ¶È£¬HotSpotµÄÀú´úGC¶¼ÓÐ×Ô¼ºµÄ²»Í¬µÄÉè¼Æ·½°¸£¬Çø¼ä¸ÅÄîÔÚÈí¼þÉè¼Æ¡¢¼Ü¹¹ÁìÓò²¢²»ÊÇÒ»¸öÐÂÃû´Ê£¬¹ØÏµÐÍÊý¾Ý¿â¡¢ÁÐʽÊý¾Ý¿â×îÏÈʹÓÃÕâ¸ö¸ÅÄîÌáÉýÊý¾Ý´æ¡¢È¡ËÙ¶È£¬Èí¼þ¼Ü¹¹Éè¼ÆÊ±Ò²¹ã·ºÊ¹ÓÃÕâÑùµÄ·ÖÇø¸ÅÄî¼Ó¿ìÊý¾Ý½»»»¡¢¼ÆËã¡£
Ϊʲô»áÓÐÇø¼äÕâ¸öÉè¼ÆÏë·¨£¿´ó¼ÒÒ»¶¨¿´¹ýµçÊӾ硶´óÕ¬ÃÅ¡·°É£¿´óÕ¬ÃÅËùÃèÊöµÄ±±¾©ÖªÃûÒ½ÊõÊÀ¼Ò°×¼ÒÊÇÕâ±¾µçÊÓ¾çµÄÖ÷½Ç¡£°×¼ÒÓÐÈýÐֵܣ¬Ã»ÓзּÒ֮ǰ£¬ÓÉÀÏÒ¯×ÓÒ»ÊÖÕÆ¹ÜÈ«¼Ò£¬ÀÏÒ¯×Ó¿´ËÆÊǸö¾«Ã÷ÈË£¬ÊµÖÊÊǸöºýÍ¿µÄÈË£¬·ñÔòÒ²²»»áŪµÃºóÀ´°×¼Ò¼ÒÆÆÈËÉ¢¡£°×¼ÒµÄÈýÐÖµÜÔÚûÓзּÒ֮ǰ£¬ÀÏ´óÒ»¼ÒºÜÀÏʵ£¬À϶þºÜųÈõ£¬ÐÔ¸ñÏñÅ®ÈË£¬ËäÈ»¶Ç×ÓÀïÃ÷°×µÀÀí£¬µ«ÊDz»¸Ò³öÀ´×öÖ÷¡£ÀÏÈýÄêÇáʱ»ìµ°Ò»¸ö£¬Ã¿´Î³öÍâ²É¹ºÒ©²Ä¶¼ÒªË½Í̼ÒÀïµÄÒøÁ½£¬Ôì³ÉÕËÄ¿»ìÂÒ¡£ÀÏ´óΪÁ˼ÒÍ¥ºÍÄÀ£¬Ò»Ö±ÔÚ˽ϵ¹ÌùÒøÁ½£¬ÈÃÀÏÒ¯×ÓÄܹ»¿´µ½Ò»±¾Õý³£µÄÕËÄ¿¡£ÕâÑùµÄÒ»¼Ò×Ó¾ÛÔÚÒ»Æð£¬³ÙÔç¼ÒÍ¥ÄÚ²¿»á³öÏÖÎÊÌ⣬µ¹²»Èç·Ö¼Ò£¬ÄãÒ²²»ÓÃËã¼Æ¼ÒÀïµÄÇ®ÁË£¬·Ö¸øÄ㣬·Ö¸øÄãµÄÇ®Óб¾ÊÂÊØ×¡£¬Ã»±¾Ê¾ÍÒ»Ö±Þ×¾ÝÏÂÈ¥°É¡£Õâ¾ÍÊÇ×îÔʼµÄ·ÖÇø£¨Region£©¸ÅÄî¡£
ÎÒÃǻص½¼¼Êõ£¬¿´¿´HBaseµÄRegionServerÉè¼Æ·½Ê½¡£ÔÚHBaseÄÚ²¿£¬ËùÓеÄÓû§Êý¾ÝÒÔ¼°ÔªÊý¾ÝµÄÇëÇó£¬ÔÚ¾¹ýRegionµÄ¶¨Î»£¬×îÖÕ»áÂäÔÚRegionServerÉÏ£¬²¢ÓÉRegionServerʵÏÖÊý¾ÝµÄ¶Áд²Ù×÷¡£RegionServerÊÇHBase¼¯ÈºÔËÐÐÔÚÿ¸ö¹¤×÷½ÚµãÉϵķþÎñ¡£ËüÊÇÕû¸öHBaseϵͳµÄ¹Ø¼üËùÔÚ£¬Ò»·½ÃæËüά»¤ÁËRegionµÄ״̬£¬ÌṩÁ˶ÔÓÚRegionµÄ¹ÜÀíºÍ·þÎñ£»ÁíÒ»·½Ã棬ËüÓëMaster½»»¥£¬ÉÏ´«RegionµÄ¸ºÔØÐÅÏ¢ÉÏ´«£¬²ÎÓëMasterµÄ·Ö²¼Ê½Ðµ÷¹ÜÀí¡£

HRegionServerÓëHMasterÒÔ¼°ClientÖ®¼ä²ÉÓÃRPCÐÒé½øÐÐͨÐÅ¡£HRegionServerÏòHMaster¶¨ÆÚ»ã±¨½ÚµãµÄ¸ºÔØ×´¿ö£¬°üÀ¨RSÄÚ´æÊ¹ÓÃ״̬¡¢ÔÚÏß״̬µÄRegionµÈÐÅÏ¢¡£Ôڸùý³ÌÖÐHRegionServer°çÑÝÁËRPC¿Í»§¶ËµÄ½ÇÉ«£¬¶øHMaster°çÑÝÁËRPC·þÎñÆ÷¶ËµÄ½ÇÉ«¡£HRegionServerÄÚÖõÄRpcServerʵÏÖÁËÊý¾Ý¸üС¢¶ÁÈ¡¡¢É¾³ýµÄ²Ù×÷£¬ÒÔ¼°RegionÉæ¼°µ½Flush¡¢Compaction¡¢Open¡¢Close¡¢LoadÎļþµÈ¹¦ÄÜÐÔ²Ù×÷¡£
RegionÊÇHBaseÊý¾Ý´æ´¢ºÍ¹ÜÀíµÄ»ù±¾µ¥Î»¡£HBaseʹÓÃRowKey½«±íˮƽÇиî³É¶à¸öHRegion£¬´ÓHMasterµÄ½Ç¶È£¬Ã¿¸öHRegion¶¼¼Í¼ÁËËüµÄStartKeyºÍEndKey£¨µÚÒ»¸öHRegionµÄStartKeyΪ¿Õ£¬×îºóÒ»¸öHRegionµÄEndKeyΪ¿Õ£©£¬ÓÉÓÚRowKeyÊÇÅÅÐòµÄ£¬Òò¶øClient¿ÉÒÔͨ¹ýHMaster¿ìËٵĶ¨Î»Ã¿¸öRowKeyÔÚÄĸöHRegionÖС£HRegionÓÉHMaster·ÖÅäµ½ÏàÓ¦µÄHRegionServerÖУ¬È»ºóÓÉHRegionServer¸ºÔðHRegionµÄÆô¶¯ºÍ¹ÜÀí£¬ºÍClientµÄͨÐÅ£¬¸ºÔðÊý¾ÝµÄ¶Á(ʹÓÃHDFS)¡£Ã¿¸öHRegionServer¿ÉÒÔͬʱ¹ÜÀí1000¸ö×óÓÒµÄHRegion¡£
ÔÙÀ´¿´¿´Èí¼þϵͳ¼Ü¹¹·½ÃæµÄ·ÖÇøÉè¼Æ¡£ÒÔÈÎÎñµ÷¶ÈΪÀý£¬¼ÙÉèÎÒÃÇÓÐÒ»¸öÖÐÐĵ÷¶È·þÎñ£¬ÄÇôµ±Êý¾ÝÁ¿²»¶ÏÔö¶à£¬Õâ¸öÖÐÐĵ÷¶È·þÎñÒ»¶¨»áÓöµ½ÐÔÄÜÆ¿¾±£¬ÒòΪËùÓеÄÇëÇó¶¼»á×îÖÕÖ¸ÏòËü¡£ÎªÁ˽â¾öÕâ¸öÐÔÄÜÆ¿¾±£¬ÎÒÃÇ¿ÉÒÔ½«ÈÎÎñµ÷¶È²ð·ÖΪ¶à¸ö·þÎñ£¬¼´Õâ¶à¸ö·þÎñ¶¼¿ÉÒÔ´¦ÀíÈÎÎñµ÷¶È¹¤×÷£¬ÄÇôÎÊÌâÀ´ÁË£¬Ã¿¸öÈÎÎñµ÷¶È·þÎñ´¦ÀíµÄÔ´Êý¾ÝÊÇ·ñÐèÒªÍêȫһÖ£¿
¸ù¾Ý»ªÎª¹«Ë¾·¢²¼µÄרÀû·¢Ã÷£¬ÏÔʾËûÃǶÔÓÚÿһ¸öÈÎÎñµ÷¶È·þÎñÓÐÊý¾ÝÀ´Ô´Çø·ÖµÄ²Ù×÷£¬¼´°´ÕÕÈÎÎñµ÷¶ÈÊýÁ¿¶ÔÔ´Êý¾Ý½øÐл®·Ö£¬±ÈÈç3¸öÈÎÎñµ÷¶È·þÎñ£¬ÄÇôԴÊý¾Ý°´ÕÕÐкŶÔ3È¡ÓàµÄ·½Ê½»®·Ö£¬Èç¹ûÔËÐÐÁËÒ»¶Îʱ¼äÖ®ºó£¬ÈÎÎñµ÷¶È·þÎñ³öÏÖÁËÊýÁ¿ÉϵÄÔö¼õ£¬ÄÇôÕâ¸öÈ¡Óà»®·ÖÐèÒªÖØÐ½øÐУ¬Òª°´ÕÕÄǸöʱºòµÄÈÎÎñµ÷¶ÈÊýÁ¿ÖØÐ»®·ÖÇø¼ä¡£
»Øµ½G1¡£ÔÚG1ÖУ¬¶Ñ±»Æ½¾ù·Ö³ÉÈô¸É¸ö´óСÏàµÈµÄÇøÓò£¨Region£©¡£Ã¿¸öRegion¶¼ÓÐÒ»¸ö¹ØÁªµÄRemembered
Set£¨¼ò³ÆRS£©£¬RSµÄÊý¾Ý½á¹¹ÊÇHash±í£¬ÀïÃæµÄÊý¾ÝÊÇCard Table £¨¶ÑÖÐÿ512byteÓ³ÉäÔÚcard
table 1byte£©¡£

¼òµ¥µÄ˵RSÀïÃæ´æÔÚµÄÊÇRegionÖдæ»î¶ÔÏóµÄÖ¸Õë¡£µ±RegionÖÐÊý¾Ý·¢Éú±ä»¯Ê±£¬Ê×ÏÈ·´Ó³µ½Card
TableÖеÄÒ»¸ö»ò¶à¸öCardÉÏ£¬RSͨ¹ýɨÃèÄÚ²¿µÄCard TableµÃÖªRegionÖÐÄÚ´æÊ¹ÓÃÇé¿öºÍ´æ»î¶ÔÏó¡£ÔÚʹÓÃRegion¹ý³ÌÖУ¬Èç¹ûRegion±»ÌîÂúÁË£¬·ÖÅäÄÚ´æµÄÏ̻߳áÖØÐÂÑ¡ÔñÒ»¸öеÄRegion£¬¿ÕÏÐRegion±»×éÖ¯µ½Ò»¸ö»ùÓÚÁ´±íµÄÊý¾Ý½á¹¹£¨LinkedList£©ÀïÃæ£¬ÕâÑù¿ÉÒÔ¿ìËÙÕÒµ½ÐµÄRegion¡£

×ܽá
ûÓÐGC»úÖÆµÄJVMÊDz»ÄÜÏëÏóµÄ£¬ÎÒÃÇÖ»ÄÜͨ¹ý²»¶ÏÓÅ»¯ËüµÄʹÓᢲ»¶Ïµ÷Õû×Ô¼ºµÄÓ¦ÓóÌÐò£¬±ÜÃâ³öÏÖ´óÁ¿À¬»ø£¬¶ø²»ÊÇһζÈÏΪGCÔì³ÉÁËÓ¦ÓóÌÐòÎÊÌâ¡£
|