( IT R&D program MKE/KEIT No. 10041608 )

We developed a heap-based persistent object store, HEAPO, to manage persistent objects in byte-addressable NVRAM. HEAPO defines its own persistent heap layout, the persistent object format, name space organization, object sharing and protection mechanism, and undo-only log based crash recovery, all of which are effectively tailored for NVRAM. We put our effort into developing lightweight and flexible layer to exploit the DRAM-like access latency of NVRAM. To address this objective, we developed (i) native management layer for NVRAM to eliminate redundancy between in-core and on-disk copy of the metadata, (ii) expandable object format, (iii) burst trie based global name space with local name space caching, (iv) static address binding, and (v) minimal logging for undo-only crash recovery.

Github Link: https://github.com/ESOS-Lab/HEAPO

WALDIO

( IT R&D program MKE/KEIT No. 10041608 )

This work is dedicated to resolve the Journaling of Journal Anomaly in Android IO stack. We orchestrate SQLite and EXT4 filesystem so that SQLite’s file-backed journaling activity can dispense with the expensive filesystem intervention, the journaling, without compromising the file integrity under unexpected filesystem failure. In storing the logs, we exploit the direct IO to suppress the filesystem interference. This work consists of three key ingredients: (i) Preallocation with Explicit Journaling, (ii) Header Embedding, and (iii) Group Synchronization. Preallocation with Explicit Journaling eliminates the filesystem journaling properly protecting the file metadata against the unexpected system crash. We redesign the SQLite B-tree structure with Header Embedding to make it direct IO compatible and block IO friendly. With Group Synch, we minimize the synchronization overhead of direct IO and make the SQLite operation NAND Flash friendly. Combining the three technical ingredients, we develop a new journal mode in SQLite, the WALDIO. We implement it on the commercially available smartphone. WALDIO mode achieves 5.1× performance (insert/sec) against WAL mode which is the fastest journaling mode in SQLite. It yields 2.7× performance (inserts/sec) against the LS-MVBT, the fastest SQLite journaling mode known to public. WALDIO mode achieves 7.4× performance (insert/sec) against WAL mode when it is relieved from the overhead of explicitly synchronizing individual log-commit operations. WALDIO mode reduces the IO volume to 1/6 compared against the WAL mode.

WALDIO mode does not cost any major changes on the existing interface definitions of SQLite or of the filesystem, nor the intro- duction of the new ones. It is achieved by the minimal set of right modifications of the current WAL mode. Users who want to use4 WALDIO should use the current WAL mode as the option.

Github Link: https://github.com/ESOS-Lab/WALDIO

( IT R&D program MKE/KEIT No. 10041608 )

Androtrace, which is specifically tailored for Android platform. Unlike earlier works that required prolonged post processing procedures, Androtrace not only traces with low overhead, but also provides efficient solution for storage with– in mobile devices. Captured IO trace is temporarily stored in main memory and storage device, and they are transferred to Androtrace server when the device is connected to WiFi. We use server and client model to support and analyze multiple Android users.

Github Link: https://github.com/ESOS-Lab/Androtrace

Suspend-aware Segment Cleaning is advanced segment cleaning policy of F2FS file system in Android device. Traditional segment cleaning routine would be stopped when the device is entered to the suspend mode. Under the situation that excessive data are wrote before suspend, there could be the lack of free segment because the segment cleaning thread is frozen when suspend. SASC awares the screen-off signal and then adjust segment cleaning period before entering suspend mode. SASC adjusts segment cleaning period from 300ms to 900ms by the storage utilization. SASC consolidates x6 more free segments than stock segment cleaning does.

Github Link: https://github.com/chunccc/SASC

( IT R&D program MKE/KEIT No. 10041608 )

Android imposes user-level filesystem (FUSE) over native filesystem partition to provide flexibility in managing the internal storage space and to maintain host compatibility. However, the overhead of user-level filesystem is prohibitively large and the native storage bandwidth is significantly under-utilized. In order to address this overhead of user-level filesystem, we propose Buffered FUSE (bFUSE). The key technical ingredients of Buffered FUSE are (i) extended FUSE IO size, (ii) internal user-level write buffer (FUSE buffer) and (iii) independent management thread which performs time driven FUSE buffer synchronization.

Github Link: https://github.com/ESOS-Lab/BufferedFUSE

( IT R&D program MKE/KEIT No. 10041608 )

Mobibench is a benchmark tool specifically designed for simulating the I/O characteristics of the Android applications. It is capable of measuring the performance of file I/Os and SQLite operations. This has four essential features as following. First, Mobibench has a function to generate write() followed by fsync(). Second, measuring the performance of SQLite is possible. Third, Mobibench is able to run as an Android app, as well as a shell command. Finally, this tool provides various options for file and database in measuring the performance of file I/O and DBMS. Mobibench tool is used in the research works listed below.

Link: http://www.mobibench.co.kr/

  • “AndroStep: Android Storage Performance Analysis Tool”, Lecture Notes in Informatics, Vol. 215, Stefan Kowalewski and Bernhard pe(Hrsg.) (1st European Workshop on Mobile Engineering), Feb. 26-Mar 1, 2013, Aachen, Germany

( IT R&D program MKE/KEIT No. 10041608 )

We developed mobile storage analyzer, MOST (MObile STorage analyzer) to capture the IO traces and extract key file system characteristics such as file types, ratio between random/sequential access, ratio between buffered/synchronous IO, block type, file name using reverse mapping feature. This consists of modifed Linux kernel to caputre IO traces and modified debugfs utility to reverse-map the block in the EXT4 file system. MOST is used in the research works listed below.

Github Link: https://github.com/ESOS-Lab/MOST

  • Sooman Jeong, Kisung Lee, Jungwoo Hwang, Seongjin Lee, Youjip Won, “AndroStep: Android Storage Performance Analysis Tool”, Lecture Notes in Informatics, Vol. 215, Stefan Kowalewski and Bernhard pe(Hrsg.) (1st European Workshop on Mobile Engineering), Feb. 26-Mar 1, 2013, Aachen, Germany

( IT R&D program MKE/KEIT. No.10035202 )

This is an SSD Simulator performed with full virtualized system based on QEMU. VSSIM runs in real-time and allows the user to measure both the host performance and SSD behavior under various design choices. This Simulator is used in the research works listed below.

Github Link: https://github.com/ESOS-Lab/VSSIM

  • Jinsoo Yoo, Youjip Won, Joongwoo Hwang, Sooyong Kang, Jongmoo Choi, Sungroh Yoon and Jaehyuk Cha, “VSSIM: Virtual Machine based SSD Simulator”, IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST 2013), Long Beach, California, USA, May 6-10, 2013
  • Joohyun Kim, Haesung Kim, Seongjin Lee, Youjip Won, “VSSIM : Virtual SSD Simulator” , 9th USENIX Symposium on Operating System Design and Implementation (OSDI ’10), Vancouver, BC, Canada, Work-In-Progress, October 4-6, 2010)

We collect the IO traces from the following applications using blktrace: < Gmail, Google Drive, Chrome, Facebook, Twitter, etc >. These IO traces are used in the research works listed below.

SSD Trace Data: http://esos.hanyang.ac.kr/sub/ssd_trace_data.zip

  • Seokhei Cho, Changhyun Park, Youjip Won, Sooyong Kang, Jaehyuk Cha, Sungroh Yoon, Jongmoo Choi, “Design Trade-Offs of SSDs: from Energy Consumption’s Perspective”, ACM Trans. On Storage, Accepted for publication, Mar 2014

These trace files are collected from a SAMBA Server, which is used by about twenty people at ESOS Lab, Hanyang University. It is collected by blktrace. File types in the storage deivce include music, video, document files and files from various applications. Users access files directly or download files to host computer. Users access files directly or download files to host computer. Upload and deletion of the files in the SAMBA Server is not too frequent. Related research works are listed below.

SAMBA Trace Data: http://cfsr.hanyang.ac.kr/publications/main_sambatrace.htm

  • Seokhei Cho, Changhyun Park, Youjip Won, Sooyong Kang, Jaehyuk Cha, Sungroh Yoon, Jongmoo Choi, “Design Trade-Offs of SSDs: from Energy Consumption’s Perspective”, ACM Trans. On Storage, Accepted for publication, Mar 2014

The disk layout model provided by current Disksim package is simple cylindrical layout which few modern hard disk drives adopt, and surface serpentine which most widely used. We developed a hybrid serpentine layout model for Disksim, These Layout was developed with Samsung hard disk division in developing hard disk drive for HD quality video playback. Related research works listed below.

Link: http://esos.hanyang.ac.kr/sub/main_disksim.htm

We developed novel disk characterization suite, DIG(Disk Geometry Analyzer), to rapidly extract and characterize the key performance metrics of modern hard disk drive. DIG is used in research works listed below.

Link: http://esos.hanyang.ac.kr/sub/main_dig.htm

We implemented Real-Time operating system for highly agile media, HAMOS adopts several basic characteristics such as real-time scheduler, inter-task synchronization, etc. Related research work listed below.

Link: http://hamos.hanyang.ac.kr/index.php

  • 정원민, 한석희, 신형종, 원유집, “고속 미디어 처리를 위한 실시간 운영체제의 설계 및 구현”, 정보과학회논문지: 시스템 및 이론, 2006년 12월

We analyzed mpeg traces which is publicly available library of frame size traces of long MPEG-4 and H.263 encoded videos. Related research work listed below

Link: http://dmclab.hanyang.ac.kr/wikidata/mpeg2data/Video_traces.htm

  • 강성주, 원유집, 성병찬, “Non-stationary VBR 트래픽을 위한 동적 데이타 크기 예측 알고리즘”, 정보과학회 논문지: 정보통신 제 34 권 제 3 호, 2007년 6월

We collected the packet traces from existing campus wireless LAN infra-structure. In analysis of collected tracffic data is presented in research work in the below

Traffic Data: http://esos.hanyang.ac.kr/files/personal/Dashdorj/traffic_data.zip

NVRAM

( IT R&D program MKE/KEIT No. 10041608 )

뉴메모리 기반 2-level 브라우저 개슁 기술이 적용된 웹브라우저 ( 광운대학교 )

    뉴메모리와 스토리지를 2-level로 사용하는 브라우저 캐쉬 기술이 적용된 웹브라우저.


뉴메모리 지원 브라우저 및 프리패처 ( 광운대학교 )

    일부 처리된 웹페이지 리소스를 뉴메모리에 캐슁하는 기술이 적용된 웹브라우저.


뉴메모리 기반 웹페이지 프리로딩 기술이 적용된 웹브라우저 ( 광운대학교 )

    뉴메모리를 활용하여 사용자가 다음에 방문할 웹페이지를 프리로딩하는 기술이 적용된 웹브라우저.


NVRAM persistency를 고려한 ARM 기반 SQLite ( UNIST )

    NVRAM의 persistency를 고려한 SQLite 구현으로, Cache Line Flush 호출을 파일 시스템이나 Heap 매니저가 아닌 SQLite가 담당하게 하여 성능을 개선한 코드.


뉴메모리 기반 프레임버퍼 캐슁 기술이 적용된 웹브라우저 ( UNIST )

    리눅스 커널의 STR (Suspend To RAM) 매커니즘을 수정하여 시스템 비휘발성 정보를 메인 메모리에 저장 후 종료. 이 때 모든 Cache line을 flush 해주는 코드 추가. 시스템 재개(부팅) 시 특정 주변장치(TTC, SLCR)에 대한 초기화 코드 추가.


멀티버전 B-tree 기반 SQLite ( UNIST )

    복구를 위한 I/O를 최소화 한 멀티버전 B-tree를 적용한 SQLite.


Failure-atomic Slot header logging 알고리즘 ( UNIST )

    리눅스 커널의 STR (Suspend To RAM) 매커니즘을 수정하여 시스템 비휘발성 정보를 메인 메모리에 저장 후 종료. 이 때 모든 Cache line을 flush 해주는 코드 추가. 시스템 재개(부팅) 시 특정 주변장치(TTC, SLCR)에 대한 초기화 코드 추가.


Fast System Launch ( UNIST )

    리눅스 커널의 STR (Suspend To RAM) 매커니즘을 수정하여 시스템 비휘발성 정보를 메인 메모리에 저장 후 종료. 이 때 모든 Cache line을 flush 해주는 코드 추가. 시스템 재개(부팅) 시 특정 주변장치(TTC, SLCR)에 대한 초기화 코드 추가.


Transactional buffer cache with NVM journaling ( 이화여자대학교 )

    뉴메모리를 이용하여 트랜잭션 기능을 지원하는 버퍼캐시 구현.


Android Memory Reference Trace ( 이화여자대학교 )

    안드로이드 플랫폼에서의 메모리 참조 트레이스.


Dynamic Profiler for NVRAM ( 한양대학교 )

    Count variables through Static Analysis and Dynamic profiling.


뉴메모리용 컴파일러 ( 한양대학교 )

    정적, 동작 프로파일링을 지원하는 SPM 기반 환경의 뉴메모리 컴파일러.


뉴메모리 하이브리드 암호화 시뮬레이터 ( 한양대학교 )

    하이브리드 암호화 알고리즘이 적용된 시스템 시뮬레이터.


Mobibench ( 한양대학교 )

    안드로이드 기반 모바일 디바이스용 벤치마크 툴.


MOST ( 한양대학교 )

    안드로이드 기반 모바일 디바이스용 스토리지 입출력 분석 툴.


MobiGen ( 한양대학교 )

    안드로이드 기반 디바이스용 트레이스 생성 및 재생 툴.


뉴메모리 주소공간 관리모듈, 유저 라이브러리 ( 한양대학교 )

    영속객체를 생성하고 영속객체 내부의 노드들을 관리하는 Persistent Objet Store (POS) 커널 및 라이브러리.


코드 프로파일러 및 리제너레이터 ( 한양대학교 )

    기존의 프로그램 코드를 뉴메모리 라이브러리 적용 코드로 재생성하는 프로파일러 및 리제너레이터.


하이브리드 메모리용 프로세스 스와핑 ( 한양대학교 )

    비휘발성 메모리에 매핑된 영속 힙영역의 스왑-아웃 방지 코드.


영속 객체 보호 기법 및 공유 라이브러리 ( 한양대학교 )

    HEAPO는 멀티 스레드에서 동작하는 어플리케이션 환경에서 Mutual Exclusion 문제가 발생하면 데이터를 손실하므로 대표적인 Solution인 Lock 과 STM 을 사용하여 Mutual Exclusion 문제를 해결.


뉴메모리 관리용 디바이스 드라이버 ( 한양대학교 )

    뉴메모리 기반 파일시스템에서 블록 기반 입출력의 원자성을 지원하는 기법.


뉴메모리 기반 메모리 캐슁 기술이 적용된 웹브라우저 ( 한양대학교 )

    일부 처리된 웹페이지 리소스를 뉴메모리에 캐슁하는 기술이 적용된 웹브라우저.


트랜잭션 메모리 적용 라이브러리 ( 한양대학교 )

    메모리 입출력을 트랜잭션 단위로 처리하는 트랜잭셔널 메모리 기법.


뉴메모리 기반 디바이스용 인터넷 브라우저 ( 한양대학교 )

    XML 돔 트리 모델 및 XML 처리 라이브러리.


XML garbage collector ( 한양대학교 )

    가비지 컬렉션 모듈.


멀티 타입용 가비지 컬렉션 기술 ( 한양대학교 )

    상이한 타입의 자료구조에 포함된 객체들의 가비지 여부를 판단하고 회수하는 가비지 수집 기법.


IOT용 디바이스를 위한 스토리지 플랫폼 ( 이에프텍 )

    ARM mbed IoT 플렛폼을 확장한 Object Storage Library (OSL).