• 제목/요약/키워드: fsync

검색결과 6건 처리시간 0.018초

커널 버전 별 Ext4 파일 시스템의 fsync()에 대한 고찰 (Consideration of fsync() of the Ext4 File System According to Kernel Version)

  • 손성배;노연진;이도근;박성순;원유집
    • 정보과학회 논문지
    • /
    • 제44권4호
    • /
    • pp.363-373
    • /
    • 2017
  • Ext4 파일시스템은 리눅스를 기반으로 하는 PC, 서버, 임베디드 시스템 등에 널리 사용되고 있고, 동작 분석 및 성능 향상에 대한 많은 연구들이 진행되어왔다. 하지만, 버퍼를 활용한 입출력을 사용하는 Ext4에서 특정 파일에 대한 즉시 내구성을 요구하는 fsync() 시스템 콜을 커널 버전 별로 자세히 분석한 연구는 찾아보기 힘들다. fsync() 시스템 콜의 분석을 통해 커널 3.4.0 ~ 4.6.4 버전 중 3.4.0, 3.8.0, 그리고 4.6.2 세 개의 버전에서 fsync() 동작에 차이가 있음을 발견하였다. 커널 3.4.0 버전은 3.7.10 이후 버전에 비해 긴 지연시간을 가지는 특징이 있다. 3.8.0 버전은 Ext4 저널링의 순차 모드가 깨질 수 있는 단점을 가지고 있으며, 해당 문제는 4.6.2 버전에서 해결되었다.

NVDIMM-N을 활용한 WiscKey 키-밸류 스토어 성능 향상 (Boosting WiscKey Key-Value Store Using NVDIMM-N)

  • 송일한;이보현;이상원
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제12권3호
    • /
    • pp.111-116
    • /
    • 2023
  • LSM 트리 기반 Key-Value 스토어의 컴팩션(compaction)에 의한 오버헤드를 최적화한 WiscKey 데이터베이스는 값은 별도의 파일에 저장하고, 데이터베이스에는 키와 값의 주소만을 저장한다. 값을 저장하는 과정에서 데이터 무결성을 보장하기 위해 매번 fsync 시스템 호출 함수를 사용한다. 기존의 수행된 연구에서 fsync 시스템 호출 함수를 호출하지 않고 데이터 저장 작업을 반복적으로 수행해 본 결과 총 작업 수행시간이 최대 5.8배까지 줄어들었다. 하지만 fsync 시스템 호출 함수를 사용하지 않을 경우 데이터베이스의 데이터 무결성을 보장하기 어렵다. 본 논문에서는 WiscKey 데이터베이스에서 작업 수행 중 fsync 시스템 호출 함수의 오버헤드를 줄이기 위해 NVDIMM 캐싱 기법을 사용하여 데이터 무결성을 보장함과 동시에 WiscKey 데이터베이스의 성능을 향상시켰다.

Optimizing Fsync Performance with Dynamic Queue Depth Adaptation

  • Park, Daejun;Kim, Min Ji;Shin, Dongkun
    • JSTS:Journal of Semiconductor Technology and Science
    • /
    • 제15권5호
    • /
    • pp.570-576
    • /
    • 2015
  • Existing flash storage devices such as universal flash storage and solid state disk support command queuing to improve storage I/O bandwidth. Command queuing allows multiple read/write requests to be pending in a device queue. Because multi-channel and multi-way architecture of flash storage devices can handle multiple requests simultaneously, command queuing is an indispensable technique for utilizing parallel architecture. However, command queuing can be harmful to the latency of fsync system call, which is critical to application responsiveness. We propose a dynamic queue depth adaptation technique, which reduces the queue depth if user application is expected to send fsync calls. Experiments show that the proposed technique reduces the fsync latency by 79% on average compared to the original scheme.

키-값 저장소를 위한 효율적인 로그 처리 기법 설계 및 평가 (Design and Evaluation of an Efficient Flushing Scheme for key-value Store)

  • 한혁
    • 한국콘텐츠학회논문지
    • /
    • 제19권5호
    • /
    • pp.187-193
    • /
    • 2019
  • 키-값 스토리지 엔진은 소셜 네트워크, 온라인 전자 상거래 환경 및 클라우드 서비스를 포함한 많은 컴퓨팅 환경에서 점점 더 수요가 증가하고 있는 필수적인 구성 요소다. 최근 키-값 스토리지 엔진은 트랜잭션, 버전관리 및 복제를 비롯한 많은 기능을 제공한다. 키-값 스토리지 엔진에서 트랜잭션 처리는 로그 선행 기입을 사용하여 원자성을 제공하며, 동기식 커밋 방식에서는 트랜잭션이 완료되기 전에 로그 데이터를 플러시한다. 그러나 로그 선행 기입에서 로그 데이터를 저장 장치로 플러시하는 것은 다양한 최적화 기법이 제안되었음에도 불구하고 여전히 fsync() 호출에 큰 오버헤드가 존재하고 있기 때문에 키-값 스토리지 엔진의 성능 병목이다. 이 논문에서는 기존 플러싱 체계를 최적화하기 위해 그룹 동기화 기법을 제안하여 키-값 스토리지 엔진의 성능을 개선한다. 또한, fsync()를 수행하는 동안에 다른 트랜잭션을 수행하는 트랜잭션 스케줄링 기법을 제안한다. 이 체계는 기존 시스템이 제공하는 동일한 트랜잭션 수준을 지원하면서 fsync() 호출의 수를 줄이는 효율적인 방법이다. 우리는 WiredTiger 스토리지 엔진에 제안하는 방법을 구현하였다. 실험 결과는 제안된 시스템이 기존 시스템에 비해 키-값 워크로드의 성능을 향상시킨다는 것을 보여준다.

InnoDB 기반 DBMS에서 다중 버퍼 풀 오버헤드 분석 (An Analysis of the Overhead of Multiple Buffer Pool Scheme on InnoDB-based Database Management Systems)

  • 송용주;이민호;엄영익
    • 정보과학회 논문지
    • /
    • 제43권11호
    • /
    • pp.1216-1222
    • /
    • 2016
  • 대규모 웹 서비스의 등장으로 데이터의 규모가 점차 증가하는 추세이다. 이러한 대규모 데이터를 효율적으로 관리하기 위해 MySQL과 MariaDB와 같은 DBMS가 주로 사용되고 있으며, 이들은 데이터 관리를 위한 스토리지 엔진으로 InnoDB를 주로 사용한다. InnoDB는 ACID를 보장할 뿐만 아니라 대규모 데이터 처리에 적합하다는 장점이 있기 때문이다. InnoDB의 경우, I/O 성능 향상을 위해 버퍼 풀을 통해 데이터와 인덱스를 캐싱하며 락 경쟁(lock contention)을 줄이기 위해 다중 버퍼 풀을 지원한다. 그러나 다중 버퍼 풀 기법은 데이터 일관성 오버헤드를 증가시킨다. 본 논문에서는 다중 버퍼 풀 기법의 오버헤드를 분석한다. 실험 결과, 다중 버퍼 풀 기법을 사용함에 따라 락 경쟁이 최대 46.3%까지 완화되었지만 디스크 I/O와 fsync 명령이 증가하면서 DBMS의 처리량이 50.6%까지 떨어지는 현상을 확인하였다.

시스템 환경이 Filebench 벤치마크에 미치는 영향 분석 (Analyses of the Effect of System Environment on Filebench Benchmark)

  • 송용주;김정훈;강동현;이민호;엄영익
    • 정보과학회 논문지
    • /
    • 제43권4호
    • /
    • pp.411-418
    • /
    • 2016
  • 최근 낸드 플래시 메모리가 널리 보급됨에 따라 기존 파일 시스템의 한계를 보완하고 낸드 플래시 메모리의 장점을 활용하기 위한 파일 시스템 연구가 활발히 진행되고 있다. 이렇게 제안된 파일 시스템들에 대해서는, 일반적으로 벤치마크를 통해 성능 측정이 이루어진다. 서버나 모바일 환경에서 실제 시스템의 성능 측정이 어려울 경우, 벤치마크는 측정하고자 하는 실제 시스템에 대한 직접적인 성능 측정 대신 워크로드를 통해 재현된 환경에서 소프트웨어적 성능 측정을 가능하게 한다. 이 때, 성능 측정 환경이 실제 시스템이 아니기 때문에 측정하는 시스템 환경에 따라서 일정하지 않은 성능 측정 결과를 보인다. 이에 본 논문에서는 파일 시스템의 성능을 측정하는데 흔히 사용되는 벤치마크 중에서 Filebench를 이용하여 여러 가지 시스템 환경에 따른 성능 측정 결과를 살펴보고 측정 결과의 변동이 생기는 원인을 알아본다. 실험 결과, 캐시 내부에 벤치마크 I/O 외의 성능 측정에 불필요한 I/O가 많이 발생할수록 벤치마크의 성능 측정 결과가 떨어지는 것을 확인하였다. 또한 fsync 동작이 포함된 백그라운드 I/O를 동작시키는 경우에는 최대 98.2%의 성능 저하가 발생하는 것을 확인하였다.