Oracle, PostgreSQL, MySQL Core Architecture 2 (Memory Architecture의 내부 동작 원리를 중심으로 | 양장본 Hardcover)

Oracle, PostgreSQL, MySQL Core Architecture 2 (Memory Architecture의 내부 동작 원리를 중심으로 | 양장본 Hardcover)

$35.32
Description
이 책의 시작은 10여 년 전으로 거슬러 올라간다. Oracle의 Library Cache에 대한 깊은 이해는 현장에서 금융시스템을 운영하고 튜닝하는 DBA로서 필수적임에도 불구하고 그동안 Oracle에 관련된 어떠한 책에서도 명쾌하게 설명하지 않았다. OWI event를 중심으로 Library Cache에 아키텍처를 추론하여 짐작하였을 뿐, 명확하게 구조적으로 설명된 자료는 없었다. 명확한 구조를 모른다는 것은 정확한 솔루션을 제시하지 못한다는 것이다. 국내의 서적 뿐만 아니라 해외의 유명한 구루들의 서적에서도 마찬가지였다.

예를 들면, enq lock은 holder session과 waiter session 단 2개로 locking 상황을 재현하면서 비교적 명쾌하게 설명이 가능했으나 Library Cache에서는 수많은 세션을 동시에 실행시켜서 부하 테스트 방법으로 비슷한 상황을 재현할 수 있을 뿐 enq처럼 명확하게 설명되지 못했다. 현장의 많은 DBA들은 정확한 이유도 모른 체 flush 명령을 내리거나, 세션을 kill 시키고 sql의 hard parsing을 줄이기 위한 bind variable을 쓸 뿐 정확한 메커니즘에 대한 이해가 부족했다. 필자 역시 후배와 수많은 Library Cache 덤프를 떠보고 국내외 유명 서적을 탐독했으나 그 내부구조에 대한 원리를 명확히 이해할 수 없어서 답답하기만 하였다.

그런 답답함이 이번 연구를 통하여 많이 해소되었다. Oracle 내부를 탐험하며 구석구석 사진을 찍고, 그 동작 원리를 이해하는 것은 하나의 예술작품을 보는 것과 같았다. 그러나 이만큼의 성과가 나올 수 있었던 것은 10여년 전 Library Cache의 정확한 메커니즘을 파헤치기 위해서 저자와 함께 수개월간 Library Cache 덤프를 수천 번 수행하고 분석했었던 기초 자료가 있었기에 가능했고 그 작업을 함께 했었던 이인규 책임에게 감사의 마음을 전하고 싶다.

지난 1권에서는 트랜잭션 처리와 관련된 메커니즘을 세 개의 주요 DBMS를 대상으로 비교 연구하였고, 이번 2권에서는 Buffer Cache를 비롯한 Shared Memory 메커니즘을 비교 연구하였다. 다음 3권에서는 아직 다루지 못했던 PGA를 비롯한 기타 아키텍처를 추가적으로 연구하고 그동안 연구해온 깊은 아키텍처의 이해를 바탕으로 현장에서 발생하는 다양한 성능저하 케이스, 에러 케이스 등의 원리를 명확하게 연구해 보려고 한다. 또한 앞서 말했던 하둡을 비롯한 최근의 다양한 데이터 저장플랫폼과 그동안 연구했던 RDBMS와의 비교연구 또한 계속 이어질 것이다.
저자

권건우

저자권건우는삼성SDS에서DBA,TechnicalArchitect로다수의차세대시스템을구축했으며현재는㈜엑셈에서글로벌마케팅팀및연구콘텐츠팀을리딩하고있다.

목차

1.RDBMS의메모리아키텍처
1.1.DBMS아키텍처의발전ㆍㆍㆍㆍㆍㆍㆍ30
톰길번과가상메모리그리고페이징ㆍㆍㆍㆍㆍㆍㆍ30
찰스바크만과DBMS의탄생ㆍㆍㆍㆍㆍㆍㆍ30
IBMSystem/360과ISAM ㆍㆍㆍㆍㆍㆍㆍ31
번와츠와IMS/DBㆍㆍㆍㆍㆍㆍㆍ31
E.F.Codd박사의RDBMS논문과SystemR프로젝트ㆍㆍㆍㆍㆍㆍㆍ32
마이클스톤브레이커와Ingres프로젝트ㆍㆍㆍㆍㆍㆍㆍ33
RDBMS를완성한시대의천재밥마이너ㆍㆍㆍㆍㆍㆍㆍ33
밥엡스타인과SybaseDB ㆍㆍㆍㆍㆍㆍㆍ33
오픈소스DBMS의시대ㆍㆍㆍㆍㆍㆍㆍ34
컬럼스토어DBMS ㆍㆍㆍㆍㆍㆍㆍ34
RDBMS의전성기와새로운도전ㆍㆍㆍㆍㆍㆍㆍ35
NoSQL의등장ㆍㆍㆍㆍㆍㆍㆍ35
분산처리와하둡ㆍㆍㆍㆍㆍㆍㆍ36
분산원장DBMS인블록체인ㆍㆍㆍㆍㆍㆍㆍ36
1.2.가상메모리와페이징ㆍㆍㆍㆍㆍㆍㆍ38
페이징의필요성ㆍㆍㆍㆍㆍㆍㆍ38
가상메모리ㆍㆍㆍㆍㆍㆍㆍ39
페이지교체알고리즘ㆍㆍㆍㆍㆍㆍㆍ42
1.3.DBMS의BufferManagementㆍㆍㆍㆍㆍㆍㆍ52
Buffermanager의개념ㆍㆍㆍㆍㆍㆍㆍ52
첫번째흐름LRUBufferReplacementAlgorithmㆍㆍㆍㆍㆍㆍㆍ54
두번째흐름ClockBufferReplacementAlgoithmㆍㆍㆍㆍㆍㆍㆍ56
1.4.DBMS메모리아키텍처의비교57
해시함수의InputParameter와버킷서치알고리즘ㆍㆍㆍㆍㆍㆍㆍ 58
버퍼교체알고리즘ㆍㆍㆍㆍㆍㆍㆍ66
버퍼리스트관리ㆍㆍㆍㆍㆍㆍㆍ66
멀티플버퍼풀ㆍㆍㆍㆍㆍㆍㆍ68
리두로그메커니즘ㆍㆍㆍㆍㆍㆍㆍ70
리두로그의식별자메커니즘ㆍㆍㆍㆍㆍㆍㆍ72
멀티플로그버퍼ㆍㆍㆍㆍㆍㆍㆍ72
SQL공유메커니즘ㆍㆍㆍㆍㆍㆍㆍ72
Insert문성능향상메커니즘ㆍㆍㆍㆍㆍㆍㆍ73
트랜잭션상태보관메커니즘ㆍㆍㆍㆍㆍㆍㆍ74

2.Oracle의메모리아키텍처
2.1.SGA(SystemGlobalArea)개요ㆍㆍㆍㆍㆍㆍㆍ78
IPC(Inter-ProcessCommunication) ㆍㆍㆍㆍㆍㆍㆍ80
Granule ㆍㆍㆍㆍㆍㆍㆍ83
SharedPool ㆍㆍㆍㆍㆍㆍㆍ87
2.2.LibraryCacheㆍㆍㆍㆍㆍㆍㆍ95
LibraryCache구조ㆍㆍㆍㆍㆍㆍㆍ 95
LibraryCache의동작 ㆍㆍㆍㆍㆍㆍㆍ104
2.3.BufferCacheㆍㆍㆍㆍㆍㆍㆍ127
BufferCache의구조ㆍㆍㆍㆍㆍㆍㆍ127
BufferCache의동작 ㆍㆍㆍㆍㆍㆍㆍ147
2.4.RedoLogBufferCache ㆍㆍㆍㆍㆍㆍㆍ155
RedoLogBufferCache의구조 ㆍㆍㆍㆍㆍㆍㆍ155
RedoLogBufferCache의동작 ㆍㆍㆍㆍㆍㆍㆍ169

3.PostgreSQL의메모리아키텍처
3.1.SharedBuffersㆍㆍㆍㆍㆍㆍㆍ183
HashTable ㆍㆍㆍㆍㆍㆍㆍ186
해시함수의InputParameter와버킷서치알고리즘 ㆍㆍㆍㆍㆍㆍㆍ194
BufferPoolㆍㆍㆍㆍㆍㆍㆍ 197
ClockSweep알고리즘 ㆍㆍㆍㆍㆍㆍㆍ204
DiskRead시나리오 ㆍㆍㆍㆍㆍㆍㆍ209
3.2.WALBuffers ㆍㆍㆍㆍㆍㆍㆍ222
WALSegmentFile의구조 ㆍㆍㆍㆍㆍㆍㆍ222
pg_xlogdumpㆍㆍㆍㆍㆍㆍㆍ 229
3.3.CLogBuffersㆍㆍㆍㆍㆍㆍㆍ238

4.MySQL의메모리아키텍처
4.1.MySQL아키텍처ㆍㆍㆍㆍㆍㆍㆍ244
InnoDBOverview ㆍㆍㆍㆍㆍㆍㆍ244
StorageEngineOverview ㆍㆍㆍㆍㆍㆍㆍ245
SharedMemoryOverview ㆍㆍㆍㆍㆍㆍㆍ246
4.2.BufferPool ㆍㆍㆍㆍㆍㆍㆍ247
BufferPoolRoutinesㆍㆍㆍㆍㆍㆍㆍ247
BufferPoolInstance ㆍㆍㆍㆍㆍㆍㆍ247
BufferPool의전반적구조 ㆍㆍㆍㆍㆍㆍㆍ249
BufferPool의주요구조체 ㆍㆍㆍㆍㆍㆍㆍ251
해시함수의InputParameter와버킷서치알고리즘ㆍㆍㆍㆍㆍㆍㆍ 265
DiskRead시나리오ㆍㆍㆍㆍㆍㆍㆍ 267
InsertBufferㆍㆍㆍㆍㆍㆍㆍ283
4.3.RedoLogㆍㆍㆍㆍㆍㆍㆍ286
RedoLogBufferㆍㆍㆍㆍㆍㆍㆍ286
RedoLogFile ㆍㆍㆍㆍㆍㆍㆍ287
RedoLoggingProcess ㆍㆍㆍㆍㆍㆍㆍ293
Log_sysㆍㆍㆍㆍㆍㆍㆍ294
4.4.DoublewriteBufferㆍㆍㆍㆍㆍㆍㆍ295

5.레퍼런스

6.표ㆍ그림리스트

출판사 서평

최근국가사회전분야의새로운비전으로제4차산업혁명이제시되고있는데그핵심키워드는바로"데이터"이다.4차산업의키워드인"데이터"에대한특별한관심은최초로1960년대GE의찰스바크만에의해서이뤄졌다.찰스바크만은프로그램로직별도로"데이터"를특별히분리하여저장해야된다는아이디어를제시했고이는DBMS탄생으로이어졌다.이후DBMS는IBM,Oracle,Sybase,MS등미국의IT기업이중심이되어발전하여왔고엔터프라이즈IT환경에서OS와더불어가장중요한위치를차지하는핵심소프트웨어가되었다.아시아와유럽의여러나라들은국가적과제로DBMS개발을시도한바있으나큰성공을거두지는못했다.더나아가최근에는데이터의폭발적증가와다양화로기존RDBMS중심에서벗어나서NoSQL,Hadoop,블록체인등새롭고다양한데이터저장플랫폼이나타나고있다.
그러나새로운데이터활용상황에맞게변용되는다양한데이터저장플랫폼의아키텍처의기본구조에는RDBMS의아키텍처가깔려있다.그러므로여전히RDBMS의내부구조에대한이해는필수적이라고할수있다.더군다나오픈소스DBMS가엔터프라이즈환경에도점차적용되는요즘에기존유명벤더의RDBMS와의구조적차이를이해한다는것은필수적이라고할수있다.
이제삼성에서DBA와TA로서근무하던후배들이Oracle과PostgreSQL,MySQL의인터널구조를비교연구하여세상에내놓는다는소식을들으니지금이시점에꼭필요한책이라는생각이든다.지금까지의DBMS에관한책은대부분의활용적인측면에서만접근했고각DBMS의내부구조에대한비교연구는부족했었다.독자들은이책을통하여오픈소스DBMS에대한이해를깊게할수있고,또한RDBMS의내부구조에대한깊은통찰을얻게될것이다.앞으로도후배들이더좋은연구로한국DBMS발전에큰기여를하길바라며추천의글을마무리한다.
삼성S-Core대표이사한인철

IT관련콘텐츠연구로국내IT회사들의모범이되고있는엑셈에서이번에Oracle과PostgreSQL,MySQL의메모리인터널구조를비교연구서를출간하며추천의글을부탁하기에기쁜마음으로펜을들어본다.
엑셈은창사이래지속적으로IT관련전문서적을출판하여다른IT기업들의찬사와부러움을받아왔다.엑셈의이러한지식기업화전략은오늘의엑셈을있게한주요성공요인이라고생각한다.
한국의DBA들은데이터베이스를공부할때엑셈의서적으로공부하고있으며지금도DBA들의자리에가보면대부분엑셈의서적이책상위에놓여져있다.엑셈은엔지니어들의성장을지원하며그결과물인IT전문서적을지속적으로세상에보여왔다.엑셈은그렇게한국IT발전에큰기여를해왔고,이는곧엑셈의회사성장으로이어지는선순환을그려오고있는것이다.본인은그동안이러한엑셈의콘텐츠생산을지켜보며저자들의노력못지않게이선순환을신념으로지속시킨엑셈의조종암사장님에게경의를표하고싶다.
최근NoSQL,Hadoop,BlockChain등새로운데이터저장기술이각광을받고있지만여전히RDBMS의내부메커니즘은여전히DBA가반드시이해해야하는가장중요한기술이다.그러나지금까지발간된DBMS에관한책은활용적인측면에서만주로다뤄왔고DBMS의내부구조에대한비교연구는매우부족했었다.이번에엑셈에서출간하는메모리인터널구조에대한비교연구는DBMS내부구조에대한이해를갈구했던많은DBA들에게조금이나마답을줄수있을것으로기대하며관심있는한국의DB엔지니어들에게일독을권하고싶다.
선재소프트대표이사김기완

현재기업의다양한비즈니스니즈에맞춰많은트랜잭션이발생하므로데이터증가량이폭발적으로증가하고있다.IT기술이발달하면서서버및데이터베이스의성능은발전했지만빠른데이터의증가에의한이슈는다양하게나타나고있으며,발생빈도도증가되고있다.서비스기대수준이높은고객에게데이터베이스서버의최적화방안을제시하기위해서는시스템과데이터베이스아키텍처를정확하게이해하고있어야한다.
이와관련한문제점의실마리와원인을찾아가는과정에지난번출판되었던"트랜잭션처리Internal의CoreArchitecture",그리고이번에출판되는"MemoryInternal의CoreArchitectureⅡ"는많은도움을줄것이다.데이터베이스아키텍처를이해하고원리를정확하게아는것은서비스안정화를바라는고객에게데이터베이스에대한최적화를제공해줄수있다.데이터베이스에대한새로운접근방법의길라잡이가되어주길기원합니다.
한국후지쯔㈜정승환