• 제목/요약/키워드: Buffer cache

검색결과 132건 처리시간 0.016초

임의쓰기 성능향상을 위한 로그블록 기반 FTL의 효율적인 합병연산 (The Efficient Merge Operation in Log Buffer-Based Flash Translation Layer for Enhanced Random Writing)

  • 이준혁;노홍찬;박상현
    • 정보처리학회논문지D
    • /
    • 제19D권2호
    • /
    • pp.161-186
    • /
    • 2012
  • 최근 플래시 메모리의 꾸준한 용량 증가와 가격 하락으로 인해 대용량 SSD(Solid State Drive)가 점차 대중화 되고 있다. 하지만, 플래시 메모리는 하드웨어적인 제약사항이 존재하며, 이러한 제약사항을 보완하기 위해 FTL(Flash Translation Layer)이라는 특별한 미들웨어 계층을 필요로 한다. FTL은 플래시 메모리의 하드웨어적인 제약사항을 효율적으로 운용하기 위해 필요한 계층으로서 파일 시스템으로부터의 논리적 섹터 번호(logical sector number)를 플래시 메모리의 물리적 섹터 번호(physical sector number)로 변환해주는 역할을 한다. 특히, 플래시 메모리의 여러 제약사항 중 "쓰기 전 지우기(erase-before-write)"는 플래시 메모리 성능 저하의 주요한 원인이 되고 있으며, 이와 관련하여 로그블록 기반의 여러 연구들이 활발히 진행되어 왔지만, 대용량의 플래시 메모리를 효율적으로 운용하기 위해서는 몇몇 문제점들이 존재한다. 로그블록 기반의 FAST는 넓은 지역에 임의쓰기(random writing)가 빈번하게 발생하면 데이터 블록 내 사용되지 않은 섹터들로 인해 효율적이지 못한 합병 연산이 발생한다. 즉, 효율적이지 못한 블록 쓰레싱(thrashing)이 빈번하게 발생하고, 플래시 메모리의 성능을 저하시킨다. 로그블록은 덮어쓰기(overwriting) 발생 시 일종의 캐쉬처럼 운영되며, 이러한 기법은 플래시 메모리 성능 향상에 많은 발전을 주었다. 본 연구에서는 임의쓰기에 대한 성능 향상을 위해 로그 블록만을 캐쉬처럼 운영하는 것이 아니라 플래시 메모리 전체를 캐쉬처럼 운용하고, 이를위해 별도의 오프셋이라는 매핑 테이블을 운용하여 플래시 메모리 성능 저하의 주요한 원인이 되는 합병연산과 삭제연산을 줄였다. 새로운 FTL은 XAST(eXtensively-Associative Sector Translation)이라 명명하며, XAST에서는 공간지역성과 시간지역성에 대한 기본적인 이론을 바탕으로 오프셋 매핑 테이블을 효율적으로 운용한다.

주사본 권한을 이용한 동적 트랜잭션 분배 알고리즘 (A Dynamic Transaction Routing Algorithm with Primary Copy Authority)

  • 김기형;조행래;남영환
    • 정보처리학회논문지D
    • /
    • 제10D권7호
    • /
    • pp.1067-1076
    • /
    • 2003
  • 데이터베이스 공유 시스템(Database Sharing System: DSS)은 고성능 트랜잭션 처리를 위해 제안된 시스템이다. DSS에서 고속의 통신망으로 연결된 노드들은 별도의 메모리와 운영체제를 가지며, 데이터베이스를 저장하고 있는 디스크는 모든 노드에 의해 공유된다. 그리고 빈번한 디스크 액세스를 피하기 위해 각 노드는 자신의 메모리 버퍼에 최근에 액세스한 페이지들을 캐싱한다. 본 논문에서는 DSS를 구성하고 있는 각 노드의 부하를 효과적으로 분산한 수 있는 동적 트랜잭션 분배 알고리즘을 제안한다. 제안한 알고리즘은 각 노드에 할당된 주사본 권한을 이용함으로써 노드별 참조 지역성을 지원하고, 그 결과 캐쉬 이용률을 증가하여 디스크 액세스 수를 최소화한다. 뿐만 아니라, 노드의 현재 부하를 고려하여 트랜잭션 분배 정책을 결정함으로써 특정 노드에 트랜잭션이 집중되는 것을 피한다. 제안된 알고리즘의 성능평가를 위해 시뮬레이션 실험을 수행하였으며, 실험결과 제안된 알고리즘이 기존 알고리즘들보다 트랜잭션 처리율에서 높은 성능을 보였다. 특히 트랜잭션 부하량이 높은 경우와 편중된 데이터 참조를 보이는 경우에 좋은 성능을 보였다.