Ȩ > ´º½º > ´º½º > ¼ÒÇÁÆ®¿þ¾î
  • Æ®À§ÅÍ
  • ÆäÀ̽ººÏ
  • ±¸Ç÷¯½º
  • ³×À̹ö¹êµå
  • Ä«Ä«¿À½ºÅ丮
     
MVCC ¾ÆÅ°ÅØóÀÇ µÎ °¡Áö È帧
´ÙÁß ¼¼´ë ¾ÆÅ°ÅØó¿Í ·Ñ¹é ¼¼±×¸ÕÆ®·Î DBMS µ¿½Ã¼º Çâ»ó¡¦RDBMS Çõ½Å, ¿À¶óŬÀÌ ÁÖµµ
     °ü·Ã±â»ç
  DBMSÀÇ Åº»ý°ú ¹ßÀü, ±×¸®°í ¿ª»ç
  DBMS ¹öÆÛ °ü¸®ÀÇ µÎ °¡Áö È帧
2017³â 11¿ù 07ÀÏ 08:31:41 µ¥ÀÌÅÍ³Ý webmaster@datanet.co.kr

MVCC´Â ´ÙÁß ¹öÀü º´Çà ¼öÇà Á¦¾î(MultiVersion Concurrency Control)ÀÇ ¾àÀÚ·Î DBMS¿¡¼­´Â ¾²±â(Write) ¼¼¼ÇÀÌ Àбâ(Read) ¼¼¼ÇÀ» ºí·ÎÅ·(blocking)ÇÏÁö ¾Ê°í, Àб⠼¼¼ÇÀÌ ¾²±â ¼¼¼ÇÀ» ºí·ÎÅ·ÇÏÁö ¾Ê°Ô ¼­·Î ´Ù¸¥ ¼¼¼ÇÀÌ µ¿ÀÏ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇßÀ» ¶§ °¢ ¼¼¼Ç¸¶´Ù ½º³À¼¦ À̹ÌÁö¸¦ º¸ÀåÇØÁÖ´Â ¸ÞÄ¿´ÏÁòÀÌ´Ù. ÀÌ´Â RDBMS¿¡¼­ µ¿½Ã¼ºÀ» ³ôÀ̱â À§ÇØ µîÀåÇÑ ±â¼ú·Î, ¼Ò¼öÀÇ Àü»ê½Ç ¿î¿µÀÚµéÀÌ ¼­¹ö ÄÄÇ»Å͸¦ »ç¿ëÇÏ´ø ½ÃÀý¿¡´Â MVCC°¡ ¼±ÅûçÇ×À̾úÁö¸¸ ÀÎÅͳÝÀÌ º¸ÆíÈ­µÇ°í ¿Â¶óÀÎÀ¸·Î ¾÷¹«¸¦ ó¸®ÇÏ´Â ½Ã´ë¿¡¼­´Â DBMS¸¦ ¼±ÅÃÇϴµ¥ ÀÖ¾î MVCC°¡ °¡Àå Áß¿äÇÑ ¿ä¼Ò°¡ µÆ´Ù. <ÆíÁýÀÚ>

   
¡ã (¿ÞÂʺÎÅÍ) ¿¢¼À ¿¬±¸ÄÜÅÙÃ÷ÆÀ ±Ç°Ç¿ì »ó¹«, À̱ٿÀ ºÎÀå, ±è¼÷Áø ¿¬±¸¿ø, ÀÌ´ë´ö ¿¬±¸¿ø

MVCC´Â ¿ª»çÀûÀ¸·Î ÄÚµå(E. F. Codd) ¹Ú»ç°¡ RDBMS¸¦ óÀ½ Á¦¾ÈÇßÀ» ¶§ºÎÅÍ Á¸ÀçÇß´ø °³³äÀÌ ¾Æ´Ï¶ó RDBMS°¡ ±¸ÇöµÇ°í ½Ç¿ëÀûÀ¸·Î »ç¿ëµÇ¸é¼­ Çʿ伺ÀÌ »ý°Ü³µ°í, ¸î »ç¶÷ÀÇ ÃµÀçµé¿¡ ÀÇÇؼ­ ¹ßÀüµÅ ¿Ô´Ù.

ÄÚµå ¹Ú»ç´Â 1981³â Æ©¸µ»óÀ» ¼ö»óÇÏ´Â ±â³ä °­¿¬¿¡¼­ ÀÚ½ÅÀÇ ±â³äºñÀûÀÎ 1970³â RDBMS ³í¹®À» ¾´ ¸ñÀûÀ¸·Î ‘µ¥ÀÌÅÍÀÇ µ¶¸³¼º’, ‘±¸Á¶ÀûÀÎ °£°áÇÔ’, ±×¸®°í SQL °°Àº ‘°í±Þ¾ð¾î¸¦ ÅëÇÑ ÁýÇÕ Ã³¸®’ÀÇ ¼¼ °¡Áö¸¦ ¸»ÇÑ ¹Ù ÀÖ´Ù.


RDBMSÀÇ ½ÃÀÛ

1974³â IBMÀº ÀÌ ³í¹®¿¡¼­ Á¦½ÃµÈ RDBMS¸¦ ±¸ÇöÇϱâ À§ÇØ ÆÄÀÏ·µ ¼º°ÝÀÇ ½Ã½ºÅÛ R(System R) ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇß´Ù. ÀÌ ÇÁ·ÎÁ§Æ®¿¡¼­ ·¹À̸óµå º¸À̽º(Raymond F. Boyce)¿Í µµ³Îµå üÀÓ¹ú¸°(Donald D. Chamberlin)ÀÌ ¿À´Ã³¯ RDBMS¿¡¼­ÀÇ Ç¥ÁØÀ¸·Î ÀÚ¸® ÀâÀº SQLÀÇ Ãʱ⠹öÀüÀÎ ½ÃÄ÷(SEQUEL: Structured English Query Language)À» ¸¸µé¾ú°í, ÈÄÀÏ ‘Transaction Processing: Concepts and Techniques’ÀÇ ÀúÀÚÀÌÀÚ DBMSÀÇ Æ®·£Àè¼Ç ÀÌ·ÐÀ» ¿Ï¼ºÇÑ Áü ±×·¹ÀÌ(Jim Gray)°¡ ÀÌ ÇÁ·ÎÁ§Æ®¿¡¼­ ‘ACID’, ‘·ÎÅ·(Locking)’, ‘¸®Ä¿¹ö¸®(Recovery)’ ¸ÞÄ¿´ÏÁò °°Àº Æ®·£Àè¼Ç 󸮿¡ °üÇÑ ´Ù¾çÇÑ ÀÌ·ÐÀ» Á¤¸³ÇÏ´Â µî ¿À´Ã³¯ RDBMSÀÇ °ñ°ÝÀ» ÀÌ·ç´Â ±âÃÊÀûÀÎ ¿¬±¸°¡ ÀÌ·ïÁ³´Ù.

ºñ½ÁÇÑ ½Ã±â¿¡ IBM »êÈ£¼¼ ¿¬±¸¼Ò¿Í ÀÎÁ¢ÇÑ UC ¹öŬ¸® ´ëÇп¡¼­´Â ¸¶ÀÌŬ ½ºÅæºê·¹ÀÌÄ¿(Michael Stonebraker)¿Í ±×ÀÇ µ¿·á ¹× Á¦Àڵ鿡 ÀÇÇؼ­ À×±×·¹½º(Ingres: Interactive Graphics and Retrieval System) ÇÁ·ÎÁ§Æ®°¡ ½ÃÀ۵Š´ëÇп¡¼­ÀÇ RDBMS ¿¬±¸¸¦ º»°ÝÈ­Çß´Ù.

1976³â ¾ÏÆ彺(Ampex)¿¡¼­ CIA °ü·Ã ÇÁ·ÎÁ§Æ®¸¦ ÇÏ°í ÀÖ¾ú´ø ¹ä ¸¶À̳Ê(Bob Miner)¿Í ¿¡µå ¿ÀÃ÷(Ed Oates), ±×¸®°í ·¡¸® ¿¤¸®½¼(Lally Ellison)Àº ÄÚµå ¹Ú»çÀÇ ³í¹®À» Á¢ÇÑ ÈÄ Á÷°¨ÀûÀ¸·Î RDBMSÀÇ ±â¼úÀûÀÎ Çõ½Å¼º°ú »ó¾÷Àû ¼º°øÀ» È®½ÅÇÏ°Ô µÈ´Ù. ÀÌÈÄ À̵éÀº SDLÀ̶ó´Â ½ºÅ¸Æ®¾÷À» â¾÷Çß°í ¿À¶óŬ(Oracle) DBMS¸¦ ¹ßÇ¥ÇØ IBM°ú »çÀ̺£À̽º(Sybase)¸¦ Á¦Ä¡°í ¾öû³­ ¼º°øÀ» °ÅµÎ°Ô µÈ´Ù.


µ¿½Ã ½ÇÇà Á¦¾î ¹®Á¦ ¹ß»ý ÇØ°á

±×·±µ¥ ÄÚµå ¹Ú»çÀÇ ³í¹®¿¡ ±â¹ÝÇØ º»°ÝÀûÀÎ RDBMS°¡ ±¸ÇöµÊ¿¡ µû¶ó¼­ ÇÊ¿¬ÀûÀ¸·Î µ¿½Ã ½ÇÇà Á¦¾î(Concurrency Control)ÀÇ ¹®Á¦°¡ ¹ß»ýÇÏ°Ô µÆ´Ù. ÄÚµå ¹Ú»çÀÇ ³í¹® Á¦¸ñó·³ RDBMS´Â °øÀ¯ µ¥ÀÌÅÍ(Shared Data)¸¦ ´Ù·ç±â ¶§¹®¿¡ µ¿½Ã¿¡ ´Ù¼ö À¯ÀúµéÀÌ µ¿ÀÏÇÑ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ´Â »óȲÀÌ ¹ß»ýÇÏ°í, ÀÌ ¹®Á¦¸¦ È¿°úÀûÀ¸·Î ÄÁÆ®·ÑÇØ¾ß µÇ´Â ¹®Á¦°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ±âÁ¸¿¡´Â ·ÎÅ·(Locking)À» ÅëÇÑ »óÈ£¹èÁ¦¸¦ ÅëÇØ ÀÌ ¹®Á¦¸¦ ÇØ°áÇØ ¿Ô´Âµ¥, ÀÌ´Â ÇÊ¿¬ÀûÀ¸·Î ´ë±âÇö»óÀÌ ¹ß»ýÇÒ ¼ö¹Û¿¡ ¾ø¾î¼­ DBMSÀÇ µ¿½Ã¼ºÀ» ³·Ãß´Â °á°ú¸¦ ÃÊ·¡Çß´Ù.

1970³â´ë ÈÄ¹Ý MIT¿¡¼­ ¹Ú»çÇÐÀ§¸¦ ÇÏ°í ÀÖ¾ú´ø µ¥À̺ñµå ¸®µå(David P. Reed)´Â ÀÌ·¯ÇÑ »óÈ£¹èÁ¦¸¦ ÅëÇÑ ³·Àº µ¿½Ã¼º ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±×ÀÇ ¹Ú»ç³í¹®¿¡¼­ »õ·Î¿î Á¦¾ÈÀ» Çß´Ù. ¾î¶² µ¥ÀÌÅÍ¿¡ ¿©·¯ Â÷·Ê ¼öÁ¤ÀÌ °¡ÇØÁ³´Ù°í °¡Á¤ÇÒ ¶§ ¼öÁ¤ÀÌ °¡ÇØÁø °¢ ½ÃÁ¡ÀÇ °³º° ¹öÀüÀ» ¸ðµÎ ÀúÀåÇÏ°í, µ¥ÀÌÅÍ °´Ã¼´Â ÀÌ·¯ÇÑ °³º° ¹öÀüµéÀÇ ¿¬¼Óü·Î¼­ Á¤ÀÇÇÔÀ¸·Î½á Àбâ¿Í ¾²±â °£ÀÇ °æÇÕÀ» ÃÖ¼ÒÈ­ÇÒ ¼ö ÀÖ´Ù´Â ¾ÆÀ̵ð¾î¸¦ Á¦½ÃÇÑ °ÍÀÌ´Ù.

1981³â Çʸ³ ¹ø½ºÅ¸ÀÎ(Philip A. Bernstein)°ú ³×À̼± ±Â¸Ç(Nathan Goodman)Àº ¸®µåÀÇ ¹Ú»çÇÐÀ§ ³í¹®À» ÀοëÇØ ´ÙÁß ¹öÀü º´Çà ¼öÇà Á¦¾î(MVCC)¶ó´Â ¿ë¾î¸¦ óÀ½ »ç¿ëÇß°í, ÀÌ °³³äÀ» ´õ¿í ¸íÈ®È÷ Çß´Ù. ¶ÇÇÑ 1984³â DECÀÇ Áü ½ºÅ¸Å°(Jim Starkey)´Â Rdb/ELNÀ» °³¹ßÇϸ鼭 óÀ½À¸·Î MVCC °³³äÀ» ±¸ÇöÇß°í, ÀÚ½ÅÀÇ È¸»ç¸¦ â¾÷ÇØ ÀÎÅͺ£À̽º(Interbase) DB¸¦ °³¹ßÇϸ鼭 »ó¿ë DBMS¿¡¼­ óÀ½À¸·Î MVCC¸¦ ¼º°øÀûÀ¸·Î ±¸ÇöÇß´Ù.

ÀÌÈÄ ¿À¶óŬÀ» ºñ·ÔÇؼ­ Æ÷½ºÆ®±×·¹SQL(PostgreSQL), ÆÄÀ̾î¹öµå(Firebird) µî MVCC¸¦ Áö¿øÇÏ´Â DBMS°¡ µîÀåÇß°í, 2002³â¿¡´Â ‘Pessimistic Lock’À» »ç¿ëÇÏ´Â IBM DB2 UDB V7.2¿Í ¾ðµÎ ¼¼±×¸ÕÆ®(Undo segment)¸¦ »ç¿ëÇØ MVCC¸¦ ±¸ÇöÇÏ´Â ¿À¶óŬ 9i °£¿¡ MVCCÀÇ ±â¼úÀû È¿¿ë¼º¿¡ ´ëÇÑ ³íÀïÀÌ ÀÖ¾úÁö¸¸, Áö±ÝÀº ´ëºÎºÐÀÇ »ó¿ë DBMS°¡ MVCC¸¦ Áö¿øÇÏ°í ÀÖ´Ù. À̹ø ±Û¿¡¼­´Â ÀÌó·³ DBMSÀÇ °¡Àå Áß¿äÇÑ ±â´ÉÀ¸·Î ÀÚ¸® ÀâÀº MVCCÀÇ È帧À» Á¤¸®Çغ¸°íÀÚ ÇÑ´Ù.


ù ¹ø° È帧 ‘MGA’

1980³â ÃÊ¿¡ DECÀÇ Áü ½ºÅ¸Å°´Â Rdb/ELN À̶ó´Â Á¦Ç°¿¡ óÀ½À¸·Î MVCC ¾ÆÅ°ÅØó¸¦ µµÀÔÇÑ´Ù. ÀÌÈÄ Áü ½ºÅ¸Å°´Â ÀÚ½ÅÀÇ È¸»ç¸¦ ¼³¸³ÇØ ÀÎÅͺ£À̽º DB¸¦ °³¹ßÇßÀ¸¸ç, ÀÌ¿¡¼­ ¹ßÀü½ÃŲ MVCC ¸ÞÄ¿´ÏÁòÀ» ´ÙÁß ¼¼´ë ¾ÆÅ°ÅØó(MGA: Multi Generation Architecture)¶ó ÇÑ´Ù.

1999³â ¹Ùµõ(Vadim)Àº MGA ¾ÆÅ°ÅØó¸¦ äÅÃÇØ Æ÷½ºÆ®±×·¹SQL 6.5¿¡ MVCC¸¦ óÀ½ µµÀÔÇß´Ù. 2000³â¿¡´Â ÀÎÅͺ£À̽º 6.0ÀÌ ¿ÀǼҽº·Î °ø°³µÆ°í, ¼Ò½ºÆ÷Áö(SourceForge) Ä¿¹Â´ÏƼ¿¡¼­ ¿ÀǼҽº DBMS ÇÁ·ÎÁ§Æ®·Î ÀÎÅͺ£À̽º DB ±â¹ÝÀÇ ÆÄÀ̾î¹öµå DB¸¦ ¸¸µé¾ú´Ù.

ÀÌó·³ Áü ½ºÅ¸Å°°¡ ÀÎÅͺ£À̽º¿¡ ±¸ÇöÇÑ ´ÙÁß ¼¼´ë º´Çà Á¦¾î(Multi Generation Concurrency Control)´Â ÀÌÈÄ ¸¹Àº DBMS¿¡ ¿µÇâÀ» Áá°í, MVCCÀÇ Å« È帧À» ÀÌ·ð´Ù. 2016³â Áü ½ºÅ¸Å°´Â ¾ð·Ð ÀÎÅͺ信¼­ ÀÚ½ÅÀÇ ±â¼ú Ä¿¸®¾î Áß °¡Àå Å©°Ô ±â¿©ÇÑ °ÍÀº MGA¸¦ ¸¸µé¾î¼­ DBMSÀÇ µ¿½Ã¼ºÀ» ³ôÀÎ °ÍÀ̶ó°í ¸»ÇÑ ¹Ù ÀÖ´Ù.

MGA¿¡¼­´Â Æ©ÇÃ(Tuple)À» ¾÷µ¥ÀÌÆ® ÇÒ ¶§ »õ·Î¿î °ªÀ¸·Î º¯°æ(Replace)ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó µ¿ÀÏÇÑ µ¥ÀÌÅÍ ÆäÀÌÁö ³»¿¡¼­ »õ·Î¿î Æ©ÇÃÀ» Ãß°¡ÇÏ°í, ÀÌÀü Æ©ÇÃÀº À¯È¿ ¹üÀ§¸¦ ¸¶Å·ÇØ Ã³¸®ÇÑ´Ù.

¿¹¸¦ µé¾î Æ÷½ºÆ®±×·¹SQLÀÇ MGA¸¦ °£·«È÷ »ìÆ캸ÀÚ. <±×¸² 1>ÀÇ ¿ÞÂÊ Ç¥¿¡¼­ º¸´Â °Íó·³ XMIN¿¡ XID 10ÀÌ ¼¼ÆõŠÀÖ°í, XMAX¿¡´Â ¾ÆÁ÷ ¼¼ÆÃµÈ °ªÀÌ ¾øÀ» ¶§ Æ©ÇÃ1, Æ©ÇÃ2, Æ©ÇÃ3Àº XID 10ºÎÅÍ ÇöÀç XID±îÁö À¯È¿ÇÑ ¾×Ƽºê Æ©ÇÃÀÌ´Ù.

XID°¡ 30À϶§ ¾÷µ¥ÀÌÆ®¹®À» ½ÇÇàÇÏ¸é ¿À¸¥ÂÊ Ç¥¿Í °°ÀÌ ³ªÅ¸³­´Ù. ±âÁ¸ Æ©ÇÃ2ÀÇ XMAX¿¡ XID 30À» ¼¼ÆÃÇØ Æ©ÇÃ2ÀÇ ÀÌÀü ¹öÀüÀÓÀ» Ç¥½ÃÇÏ°í, »õ·Î¿î Æ©ÇÃ2¸¦ Ãß°¡ÇØ XMIN °ªÀ» ¼¼ÆÃÇÑ´Ù. Æ©ÇÃ2ÀÇ ÀÌÀü ¹öÀüÀº XMIN 10, XMAX 30¿¡ ÀÇÇؼ­ XID 10ºÎÅÍ XID 30 »çÀÌÀÇ ¹üÀ§¿¡¼­ °¡½ÃÀûÀÎ °ªÀÌ°í, »õ·Î¿î Æ©ÇÃ2´Â XID 30ºÎÅÍ ÇöÀç±îÁö °¡½ÃÀûÀÎ ¾×Ƽºê Æ©ÇÃÀÌ´Ù.

   
¡ã Æ÷½ºÆ®±×·¹SQLÀÇ MVC

ÀÌ·¯ÇÑ MGA°¡ ÆäÀÌÁö ³»ºÎ¿¡¼­ ±¸Ã¼ÀûÀ¸·Î ¾î¶»°Ô µ¿ÀÛÇÏ¸ç ¼­·Î ´Ù¸¥ ¼¼¼Ç³¢¸® ¾î¶»°Ô ½º³À¼¦ À̹ÌÁö(snapshot image)¸¦ ¼±ÅÃ(SELECT)ÇÏ´ÂÁö <±×¸² 2>ÀÇ Ã³¸® °úÁ¤À» ÅëÇØ ¾Ë¾Æº¸ÀÚ. ¸ÕÀú T0 ½ÃÁ¡Àº XID 10, T1 ½ÃÁ¡Àº XID 20, T2 ½ÃÁ¡Àº XID 30, T3 ½ÃÁ¡Àº XID 40À̶ó°í °¡Á¤ÇÏÀÚ.

   
¡ã Æ÷½ºÆ®±×·¹SQL µ¥ÀÌÅÍ ÆäÀÌÁöÀÇ ½ºÅ×ÀÌÁö1

<±×¸² 2>Àº T1 ½ÃÁ¡ÀÏ ¶§, ¼¼¼Ç 1¿¡¼­ ¼¿·ºÆ®(SELECT)¹®À» ½ÇÇàÇϸé XID°¡ 20 ÀÌÀüÀÎ Æ©ÇÃ1, Æ©ÇÃ2, Æ©ÇÃ3ÀÌ ÀÐÈ÷´Â °ÍÀ» º¸¿©ÁØ´Ù.

   
¡ã Æ÷½ºÆ®±×·¹SQL µ¥ÀÌÅÍ ÆäÀÌÁöÀÇ ½ºÅ×ÀÌÁö2

<±×¸² 3>Àº T2 ½ÃÁ¡ÀÏ ¶§, Æ©ÇÃ2¸¦ ¾÷µ¥ÀÌÆ®ÇÏ¸é µ¥ÀÌÅÍ ÆäÀÌÁö¿¡¼­ °ªÀ» º¯°æÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó »õ·Î¿î Æ©ÇÃÀ» Ãß°¡ÇÏ°í ¿À·¡µÈ Æ©ÇÃÀº XMAX¿¡ À¯È¿ÇÑ XID ¹üÀ§ °ªÀ» ¼¼ÆÃÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.

   
¡ã Æ÷½ºÆ®±×·¹SQL µ¥ÀÌÅÍ ÆäÀÌÁöÀÇ ½ºÅ×ÀÌÁö3

<±×¸² 4>´Â T1 ½ÃÁ¡ÀÏ ¶§, ¿ÀÇÂµÈ ¼¼¼Ç1¿¡¼­ ¼±ÅÃÇϸé Æ©ÇÃ1, ÀÌÀü Æ©ÇÃ2, Æ©ÇÃ3ÀÌ ¹ÝȯµÇ°í, T3 ½ÃÁ¡ÀÏ ¶§, ¿ÀÇÂµÈ ¼¼¼Ç3¿¡¼­ ¼±ÅÃÇϸé Æ©ÇÃ1, »õ·Î¿î Æ©ÇÃ2, Æ©ÇÃ3ÀÌ ¹ÝȯµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.


µÎ ¹ø° È帧 ‘·Ñº¤ ¼¼±×¸ÕÆ®’

1980³â´ë ÈÄ¹Ý ¿À¶óŬÀÇ ¹ä ¸¶À̳ʴ ·Ñ¹é ¼¼±×¸ÕÆ®¸¦ µµÀÔÇØ MVCC¸¦ ±¸ÇöÇߴµ¥, ÀÌ´Â ´ç½Ã ȹ±âÀûÀÎ ¹æ¹ýÀ̾ú´Ù. ·Ñ¹é ¼¼±×¸ÕÆ® ¸ÞÄ¿´ÏÁò¿¡¼­´Â ¾÷µ¥ÀÌÆ®¹®ÀÌ ½ÇÇàµÇ¸é ±âÁ¸ µ¥ÀÌÅÍ ºí·Ï ³»ÀÇ µ¥ÀÌÅÍ ·¹Äڵ带 »õ·Î¿î ¹öÀü(New Version)À¸·Î º¯°æÇÏ°í, ÀÌÀü ¹öÀü(Old Version)À» º°µµÀÇ ÀúÀå¼ÒÀÎ ·Ñ¹é ¼¼±×¸ÕÆ®¿¡ º¸°üÇÑ´Ù.

ÀÌÈÄ ¼¿·ºÆ®¹®ÀÌ ½ÇÇàµÉ ¶§, ¼¿·ºÆ® SCN°ú µ¥ÀÌÅÍ ºí·ÏÀÇ SCNÀ» ºñ±³ÇØ Àбâ ÀÏ°ü¼º(Consistent Read)ÀÌ ÇÊ¿äÇÏ´Ù°í ÆÇ´ÜµÇ¸é ·Ñ¹é ¼¼±×¸ÕÆ®ÀÇ ÀÌÀü ¹öÀüÀ» Àо ¹öÆÛ Ä³½Ã¿¡ CRºí·ÏÀ» »ý¼ºÇÑ´Ù. ¼¿·ºÆ® Äõ¸®ÀÇ ½º³À¼¦ Àб⸦ º¸ÀåÇØÁÖ´Â ÀÌ ¹æ¹ýÀº À¯¸íÇÑ ‘ORA-1555(Snapshot too old)’ ¿¡·¯¶ó´Â ÇѰ踦 Á¦¿ÜÇÏ°í´Â µ¿½Ã¼ºÀ» ±Ø´ëÈ­½ÃÅ°´Â ÃÖ°íÀÇ ¹æ¹ýÀ̾ú´Ù.

¿À¶óŬÀº ·Ñ¹é ¼¼±×¸ÕÆ®¸¦ ÅëÇØ Read Committed °Ý¸® ¼öÁØ(Isolation Level)¿¡¼­ °ÅÀÇ ¿Ïº®ÇÑ MVCC¸¦ ±¸ÇöÇÔÀ¸·Î½á 90³â´ë ÀÌÈÄ¿¡ ¹ú¾îÁö´Â DBMS °æÀï¿¡¼­ ¼±µÎ¸¦ Á¡ÇÏ°Ô µÈ´Ù. ƯÈ÷ ¸¹Àº »ç¿ëÀÚµéÀÌ µ¿½Ã¿¡ Á¢¼ÓÇÏ´Â ¿Â¶óÀÎ ½Ã½ºÅÛ°ú ÀÎÅÍ³Ý ¼­ºñ½º ȯ°æ¿¡¼­ °­·ÂÇÑ °æÀï·ÂÀ» º¸À¯ÇÏ°Ô µÈ´Ù.

¿À¶óŬÀÇ MVCC ¾ÆÅ°ÅØó´Â 2000³â´ë Ãʹݿ¡ ‘Pessimistic Lock’À» ÀÌ¿ëÇØ µ¿½Ã¼ºÀ» ³ôÀÌ´Â ±â¼úÀ» °¡Áø IBM DB2 UDB¿ÍÀÇ °æÀï¿¡¼­ ½ÇÁúÀûÀÎ ¿ìÀ§¸¦ Á¡ÇÔÀ¸·Î½á ÀÌÈÄ¿¡´Â RDBMS°¡ ±¸ÇöÇØ¾ß ÇÏ´Â Áß¿äÇÑ ÇÙ½É ¾ÆÅ°ÅØó·Î ÀÚ¸® Àâ°Ô µÆ´Ù.

   
¡ã ¿À¶óŬÀÇ ·Ñ¹é ¼¼±×¸ÕÆ® °³¿ä

<±×¸² 5>¸¦ ÅëÇØ ¿À¶óŬÀÇ ·Ñ¹é ¼¼±×¸ÕÆ® µ¿ÀÛ¿ø¸®¸¦ ¾Ë ¼ö ÀÖ´Ù. µ¥ÀÌÅÍ ºí·Ï¿¡ ÀÖ´Â ÇöÀç ¹öÀüÀÎ A¸¦ B·Î ¾÷µ¥ÀÌÆ®ÇÏ°Ô µÇ¸é ÀÌÀü ¹öÀüÀÎ A¸¦ º°µµÀÇ ·Ñ¹é ºí·Ï¿¡ ÀúÀåÇÏ°í, µ¥ÀÌÅÍ ºí·Ï¿¡´Â »õ·Î¿î ¹öÀüÀÎ B·Î º¯°æÇÏ°Ô µÈ´Ù. ù ¹ø° ¾ÆÅ°ÅØóÀÎ MGA ¾ÆÅ°ÅØó¿Í´Â ´Þ¸® ÀÌÀü ¹öÀüÀ» º°µµÀÇ ÀúÀå °ø°£ÀÎ ·Ñ¹é ¼¼±×¸ÕÆ®¿¡ ÀúÀåÇÏ°í µ¥ÀÌÅÍ ºí·Ï¿¡´Â ¿ÀÁ÷ ÇöÀç ¹öÀü¸¸ Á¸ÀçÇÏ´Â °ÍÀÌ´Ù.

   
¡ã ¿À¶óŬÀÇ MVCC °³¿ä

·Ñ¹é ¼¼±×¸ÕÆ®¸¦ »ç¿ëÇÏ´Â ¾ÆÅ°ÅØó´Â <±×¸² 6>ó·³ ¼¿·ºÆ® ½ÃÁ¡¿¡ SCNÀ» ºñ±³Çؼ­ Àбâ ÀÏ°ü¼ºÀ» À§Çؼ­ ·Ñ¹é ¼¼±×¸ÕÆ®¿¡ Á¸ÀçÇÏ´Â ÇØ´ç ÀÌÀü ¹öÀüÀ» ã¾Æ¼­ ¹öÆÛ Ä³½Ã¿¡ CR ºí·ÏÀ» »ý¼ºÇÑ´Ù. ÀÌ·¸°Ô CR ºí·ÏÀ» »ý¼ºÇÔÀ¸·Î½á ¼¿·ºÆ® ½ÃÁ¡ÀÇ ½º³À¼¦ À̹ÌÁö¸¦ ÀÐÀ» ¼ö ÀÖ´Ù.

1990³â´ë Áß¹Ý ÇɶõµåÀÇ ÇìÀÌÅ° Æ©¸®(Heikki Tuuri)¿¡ ÀÇÇؼ­ °³¹ßµÈ À̳ë(Inno)DB´Â º°µµÀÇ ·Ñ¹é ¼¼±×¸ÕÆ®¿¡ ÀÌÀü ¹öÀüÀ» ÀúÀåÇϹǷΠµÎ ¹ø° È帧¿¡ ¼ÓÇÑ´Ù°í º¼ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ Æ®·£Àè¼ÇÀ» ó¸®ÇÏ´Â ID³ª ¸®µåºä(Readview) µîÀº ¿ÀÈ÷·Á ù ¹ø° È帧°ú À¯»ç¼ºÀ» ¶í´Ù.

µ¥ÀÌÅͳÝÀÇ ´Ù¸¥±â»ç º¸±â  
¨Ï µ¥ÀÌÅͳÝ(http://t564.ndsoftnews.com) ¹«´ÜÀüÀç ¹× Àç¹èÆ÷±ÝÁö | ÀúÀ۱ǹ®ÀÇ  

     

Àαâ±â»ç

 
°¡Àå ¸¹ÀÌ º» ±â»ç
Àλ硤µ¿Á¤¡¤ºÎÀ½
Àüü±â»çÀÇ°ß(0)  
 
   * 200ÀÚ±îÁö ¾²½Ç ¼ö ÀÖ½À´Ï´Ù. (ÇöÀç 0 byte/ÃÖ´ë 400byte)
   * ¿å¼³µî ÀνŰø°Ý¼º ±ÛÀº »èÁ¦ ÇÕ´Ï´Ù. [¿î¿µ¿øÄ¢]
Àüü±â»çÀÇ°ß(0)
»ç¸í: (ÁÖ)È­»ê¹Ìµð¾î | ÁÖ¼Ò: ¼­¿ï½Ã °­³²±¸ °­³²´ë·Î 124±æ 26 À¯¼ººôµù 2Ãþ | ÀüÈ­: 070-8282-6180 | Æѽº: 02-3446-6170
µî·Ï¹øÈ£: ¼­¿ï¾Æ03408 | µî·Ï³â¿ùÀÏ: 2014³â 11¿ù 4ÀÏ | ¹ßÇà³â¿ùÀÏ: 2003³â 12¿ù 17ÀÏ | »ç¾÷ÀÚµî·Ï¹øÈ£: 211-88-24920
¹ßÇàÀÎ/ÆíÁýÀÎ: Á¤¿ë´Þ | Åë½ÅÆǸž÷½Å°í: ¼­¿ï°­³²-01549È£ | °³ÀÎÁ¤º¸°ü¸® ¹× û¼Ò³âº¸È£ Ã¥ÀÓÀÚ: ¹ÚÇϼ® | È£½ºÆà »ç¾÷ÀÚ: (ÁÖ)¾ÆÀ̳×ÀÓÁî
Copyright ¨Ï 2010 µ¥ÀÌÅͳÝ. All rights reserved. mail to webmaster@datanet.co.kr