• 제목/요약/키워드: fsync() system call

검색결과 3건 처리시간 0.01초

커널 버전 별 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.