Barrier-Enabled IO Stack
Exploiting the cache barrier command for Flash storage, we overhaul the IO scheduler, the dispatch module, and the filesystem so that these layers are orchestrated to preserve the ordering condition imposed by the application with which the associated data blocks are made durable. We implement the barrier-enabled IO stack in server as well as in mobile platforms.
Github Link: https://github.com/ESOS-Lab/barrieriostack
-
- [USENIX FAST] Youjip Won, Jaemin Jung, Gyeongyeol Choi, Joontaek Oh, Seongbae Son, Jooyoung Hwang, Sangyeun Cho “Barrier Enabled IO Stack for Flash Storage”, in Proc. of USENIX FAST 2018, Oakland, CA, USA, Feb. 12-15, 2018, Slide link : slide (Awarded Best Paper)
Database Shadowing
Github Link: https://github.com/ESOS-Lab/SHADOW
-
- [VLDB] Youjip Won, Sundoo Kim, Juseong Yun, Dam Quang Tuan, Jiwon Seo, “DASH: Database Shadowing for Mobile DBMS”, Accepted for publication, In proc. of VLDB 2019, Los Angeles, CA, USA, August 26-30, 2019
HEAPO
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.
Github Link: https://github.com/ESOS-Lab/HEAPO
-
- Taeho Hwang, Jaemin Jung, and Youjip Won, “HEAPO: Heap-based Persistent Object Store”, ACM Transactions on Storage, Accepted for publication, May 2014
WALDIO
Github Link: https://github.com/ESOS-Lab/WALDIO
-
- Wongun Lee, Keonwoo Lee, Hankeun Son, Wook-Hee Kim, Beomseok Nam, Youjip Won, “WALDIO: Eliminating the Filesystem Journaling in Resolving the Journaling of Journal Anomaly”, In Proceedings of USENIX ATC(Annual Technical Conference), Santa Clara, CA, July 8 – 10, 2015
Androtrace
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
-
- Eunryoung Lim, Seongjin Lee, Youjip Won, “Androtrace: Framework for Tracing and Analyzing IOs on Android”, In Proceedings of 3rd workshop on Interactions of NVM/Flash with Operating-Systems and Workloads (INFLOW 2015), California, USA, Oct. 4-7, 2015
Suspend-aware Segment Cleaning
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
-
- Dongil Park, Seungyong Cheon and Youjip Won, “Suspend-aware Segment Cleaning in Log-structured File System”, In Proceedings of USENIX HotStorage’15, Santa Clara, USA, July. 6-7, 2015
Buffered FUSE
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
-
- Sooman Jeong, Youjip Won, “Buffered FUSE: optimising the Android IO stack for user-level filesystem” , International Journal of Embedded Systems (IJES), Special Issue for Embedded and Ubiquitous Computing,2014 Vol. 6, No.2/3, pp.95 – 107, doi:10.1504/IJES.2014.063806
Mobibench
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
-
- Sooman Jeong, Kisung Lee, Jungwoo Hwang, Seongjin Lee, Youjip Won, “Framework for Analyzing Android I/O Stack Behavior: from Generating the Workload to Analyzing the Trace”, Future Internet 2013, 5(4), Special Issue for “Mobile Engineering², MDPI(ISSN 1999-5903), 591-610; doi:10.3390/fi5040591
-
- Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, Youjip Won, “I/O Stack Optimization for Smartphones”, USENIX ATC(Annual Technical Conference) 2013, June 26-28, 2013, San Jose, CA, USA, (Best Paper Award)
MOST
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
-
- Sooman Jeong, Kisung Lee, Jungwoo Hwang, Seongjin Lee, Youjip Won, “Framework for Analyzing Android I/O Stack Behavior: from Generating the Workload to Analyzing the Trace”, Future Internet 2013, 5(4), Special Issue for “Mobile Engineering², MDPI(ISSN 1999-5903), 591-610; doi:10.3390/fi5040591
-
- Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, Youjip Won, “I/O Stack Optimization for Smartphones”, USENIX ATC(Annual Technical Conference) 2013, June 26-28, 2013, San Jose, CA, USA, (Best Paper Award)
-
- Kisung Lee, Youjip Won, “Smart layers and dumb result: Io characterization of an android-based smartphone”, In EMSOFT 2012, In Proceedings of International Conference on Embedded Software (Oct.7-12 2012). Tampere, Finland
VSSIM
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)
IO Traces of Linux Applications
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: https://oslab.kaist.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
-
- Seokhei Cho, Youjip Won, Sooyong Kang, Jaehyuk Cha, Jongmoo Choi, Sungroh Yoon, “Influence of Number of Channels and FTL on SSD Power Consumption”, International Conference of Electrical, Computer, Electronics and Biomedical Engineering (ICECEBE’2012), Dec. 28-29, 2012, Bangkok, Thailan
IO Traces of SAMBA
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
-
- Seokhei Cho, Youjip Won, Sooyong Kang, Jaehyuk Cha, Jongmoo Choi, Sungroh Yoon, “Influence of Number of Channels and FTL on SSD Power Consumption”, International Conference of Electrical, Computer, Electronics and Biomedical Engineering (ICECEBE’2012), Dec. 28-29, 2012, Bangkok, Thailand
Hybrid Serpentine Layout for DiskSim
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: https://oslab.kaist.ac.kr/sub/main_disksim.htm
-
- Jongmin Gim, Youjip Won, “Relieving the Burden of Track Switch in Modern Hard Disk Drives” , Multimedia Systems: Volume 17, Number 3 (June 2011), Pages 219-235, Springer
-
- Jongmin Gim, Jaehyeok Chang, Hyungwon Jung, Youjip Won,Junseok Shim, Youngseon Park, “Hard Disk Drive for HD Quality Multimedia Home Appliance” , Computational Sciences and Its Applications, 2008. ICCSA’08. IEEE, Peruja, Italy, June 2008
DIG
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: https://oslab.kaist.ac.kr/sub/main_dig.htm
-
- Jongmin Gim and Youjip Won “Extract and Infer Quickly: Obtaining Sector Geometry of Modern Hard Disk Drive” , ACM Transactions on Storage, Volume 6 (2), 1553-3077, July. 1. 2010
-
- Jongmin Gim, Youjip Won, Jaehyeok Chang, Junseok Shim, Youngseon Park, “DIG: Rapid Characterization of Modern Hard Disk Drive and its performance implication” , The 5th IEEE International Workshop on Storage Network Architecture and Parallel I/Os, 2008. IEEE MSST/SNAPI’08. Baltimore, USA, September 20
HAMOS
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월
mpeg trace
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://broadpeak.kaist.ac.kr/wiki/dmcweb/mpeg2data/Video_traces.htm
-
- 강성주, 원유집, 성병찬, “Non-stationary VBR 트래픽을 위한 동적 데이타 크기 예측 알고리즘”, 정보과학회 논문지: 정보통신 제 34 권 제 3 호, 2007년 6월
-
- Sungjoo Kang, Seongjin Lee, Youjip Won, Byeongchan Seong, “On-Line Prediction of Nonstationary Variable-Bit-Rate Video Traffic”, IEEE Transactions on Signal Processing, Volume: 58, Issue: 3, Part: 1, Mar, 2010, Page(s): 1219 – 1237
Wireless LAN Traffic
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: https://oslab.kaist.ac.kr/wp-content/uploads/esos_files/personal/Dashdorj/traffic_data.zip
-
- Dashdorj Yamkhin, Seongjin Lee and Youjip Won, “Modeling and Analysis of Wireless LAN traffic” , Journal of Information Science and Engineering, Vol.25, No. 6, pp. 1783-1801, Nov. 200
NVRAM
뉴메모리 기반 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).