KR101221992B1 - 데이터 로깅 장치 - Google Patents

데이터 로깅 장치 Download PDF

Info

Publication number
KR101221992B1
KR101221992B1 KR1020110039046A KR20110039046A KR101221992B1 KR 101221992 B1 KR101221992 B1 KR 101221992B1 KR 1020110039046 A KR1020110039046 A KR 1020110039046A KR 20110039046 A KR20110039046 A KR 20110039046A KR 101221992 B1 KR101221992 B1 KR 101221992B1
Authority
KR
South Korea
Prior art keywords
logging
buffer
data
message
data message
Prior art date
Application number
KR1020110039046A
Other languages
English (en)
Other versions
KR20120121207A (ko
Inventor
김성철
Original Assignee
삼성탈레스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성탈레스 주식회사 filed Critical 삼성탈레스 주식회사
Priority to KR1020110039046A priority Critical patent/KR101221992B1/ko
Publication of KR20120121207A publication Critical patent/KR20120121207A/ko
Application granted granted Critical
Publication of KR101221992B1 publication Critical patent/KR101221992B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 데이터 로깅 장치에 관한 것으로서, 데이터 로깅 전송에 의한 시스템 부하가 최소화되도록 하며 로깅 데이터 메시지 분실을 방지하는 데이터 로깅 장치에 관한 것이다. 본 발명의 실시 형태는 로깅 전송되는 로깅 데이터 메시지가 저장되는 저장 매체를 구비한 모니터링 단말기와, 로깅 버퍼를 구비하여, 상기 로깅 버퍼에 저장되는 로깅 데이터 메시지를 상기 저장 매체로 전송하는 로깅 태스크 모듈과, 유저 어플리케이션으로부터의 로깅 데이터 메시지가 발생할 경우, 상기 로깅 데이터 메시지의 타입에 따른 전송 파라미터를 파악하여, 파악된 전송 파라미터에 따라 상기 로깅 버퍼로 전송하는 유저 태스크 모듈을 포함한다.

Description

데이터 로깅 장치{Apparatus for logging data}
본 발명은 데이터 로깅 장치에 관한 것으로서, 데이터 로깅 전송에 의한 시스템 부하가 최소화되도록 하며 로깅 데이터 메시지 분실을 방지하는 데이터 로깅 장치에 관한 것이다.
데이터베이스 관리시스템(DBMS)을 활용하고자 하는 목적은 데이터를 체계적으로 관리함으로써 응용프로그램을 보다 쉽게 개발하고, 어떠한 상황에서도 데이터를 안전하게 유지, 관리하기 위함이다. 일반적으로 데이터베이스 관리 시스템(DBMS;DataBase Management System)는 이러한 데이터베이스의 안정성(지속성)을 보장하기 위해, 데이터 변경에 대한 로깅(logging)을 수행한다.
로깅(logging)이란, 발생하는 데이터의 삽입/삭제/변경을 디스크 드라이브와 같이 안전한 저장 매체(stable storage device)에 기록함으로써, 예외 상황 발생시 이를 이용하여 데이터를 분석하거나, 이전의 데이터베이스 상태로 되돌리기 위한 데이터베이스 관리 시스템(DBMS)의 기본 기능이다. DBMS에서 지속성(durability)의 개념은 트랜잭션 처리에서 중요한 특성인 ACID(Atomicity, Consistency, Isolation, Durability) 성질 중 하나로, 이는 트랜잭션이 성공적으로 완료되면 어떠한 시스템 오류에도 트랜잭션 처리 결과는 데이터베이스에 반영됨을 보장해야 함을 의미한다. 일반적으로 DBMS는 트랜잭션 처리 중 발생하는 데이터베이스의 상태 변화에 대한 내용을 로그로 남기며, 이 로그를 안전한 저장 매체(일반적으로 디스크)에 저장한다. 따라서 로그는 데이터베이스의 상태 변경을 기록함으로써 데이터베이스 상태를 일관성 있게 유지할 수 있도록 지원한다. 단순하게는 모든 트랜잭션의 변경 내역을 디스크의 로그 파일에 기록하면 되지만, 이 경우 트랜잭션 내의 각 연산마다 디스크 입출력(inputand output: I/O)을 수반하게 되어 DBMS의 성능이 매우 떨어지게 된다.
도 1은 종래 기술에 따른, DBMS(DataBase Management System)의 로깅 과정을 개괄적으로 나타내는 도면이다.
데이터베이스(DB, 131)는 영구적인 저장 매체인 디스크 드라이브(130)에 특정 영역에서 데이터 파일(132)을 함께 포함하고 있다. 응용 프로그램의 실행에 의한 트랜잭션이 갱신 작업을 수행함에 따라, 데이터 페이지(110)는 메모리 상에 있는 로깅 버퍼(120)로 페이지(page) 단위로 로딩(loading)되어 갱신된다. 이렇게 로깅 버퍼(120)로 갱신되는 데이터 페이지(110)는 WAL(Write Ahead Log) 프로토콜에 따라 디스크 드라이브(120)의 데이터 파일(132)로 저장된다.
도 1에 도시한 바와 같이, 종래에는 1개의 버퍼를 두고 로깅을 수행하였으며, 데이터 페이지에 입력이 있을 때마다 로깅이 수행되었다. 그런데, 도 1과 같이 1개의 버퍼를 두어 FIFO(First Input First Output) 방식의 입출력이 수행될 경우, 중요한 로깅 데이터 메시지가 로깅되지 못하고 잃어버리게 되는 문제가 있다. 즉, 하나의 버퍼 상에 중요한 로깅 데이터 메시지와 전송 주기가 빠른 로깅 데이터 메시지가 함께 로깅되는 경우, 중요한 로깅 데이터 메시지가 뒤로 밀리거나 버퍼가 다차서, 중요한 로깅 데이터 메시지가 로깅되지 못하고 분실될 우려가 있다.
본 발명의 기술적 과제는 로깅 작업이 이루어질 때 중요한 메시지가 분실되지 않도록 하는데 있다. 또한 본 발명의 기술적 과제는 사용자에게 통합된 API를 제공하고, 태스크 및 시스템에 최소한의 영향을 미치도록 하는데 있다. 또한 본 발명의 기술적 과제는 다양한 주기의 메시지를 처리하도록 하는데 있다. 또한 본 발명의 기술적 과제는 우선순위 높은 메시지를 처리하도록 하는데 있다.
본 발명의 실시 형태는 로깅 전송되는 로깅 데이터 메시지가 저장되는 저장 매체를 구비한 모니터링 단말기와, 로깅 버퍼를 구비하여, 상기 로깅 버퍼에 저장되는 로깅 데이터 메시지를 상기 저장 매체로 전송하는 로깅 태스크 모듈과, 유저 어플리케이션으로부터의 로깅 데이터 메시지가 발생할 경우, 상기 로깅 데이터 메시지의 타입에 따른 전송 파라미터를 파악하여, 파악된 전송 파라미터에 따라 상기 로깅 버퍼로 전송하는 유저 태스크 모듈을 포함한다.
로깅 태스크 모듈은, 상기 유저 태스크로부터 전송되는 로깅 데이터 메시지가 저장되는 로깅 버퍼와, 상기 로깅 버퍼에 저장된 로깅 데이터 메시지를 상기 저장 매체로 상기 전송 파라미터에 따라 전송하는 데이터 수집 API를 포함한다.
로깅 버퍼는, 특정값을 초과하는 고주기로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제1로깅 버퍼와, 상기 특정값 이하의 저주기로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제2로깅 버퍼와, 가장 높은 중요도로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제3로깅 버퍼를 포함한다.
상기 전송 파라미터가 중요도 및 전송 주기를 모두 포함하는 경우, 중요도를 우선하여 상기 제3로깅 버퍼로 전송한다. 상기 유저 태스크 모듈은, 사용자로부터 데이터 입력이 있는 경우 로깅 데이터 메시지를 발생하는 유저 어플리케이션과, 상기 로깅 데이터 메시지를 상기 전송 파라미터에 따라서 상기 로깅 버퍼로 전송하는 로깅 API를 포함한다.
본 발명의 실시 형태에 따르면 다양한 전송 주기의 메시지를 처리함으로써, 빠른 전송 주기의 데이터에도 병목 현상이 생기지 않도록 할 수 있다. 또한 본 발명의 실시 형태에 따르면 메시지에 대한 전송 주기에 대한 제어에 의해 로깅 시에 데이터 전송 주기를 낮춤으로써 로깅 부하를 줄일 수 있다. 또한 본 발명의 실시 형태에 따르면 다양한 로깅 버퍼를 두고 태스크의 우선 순위를 다르게 설정함으로써, 중요한 메시지가 고주기 등의 우선순위 낮은 메시지에 의해 지연되는 효과를 줄일 수 있다. 또한, 로깅 온/오프 제어 정보를 참조하여 로깅 오프시에 로깅 버퍼에 저장하지 않음으로써 시스템 부하 발생을 줄일 수 있다.
도 1은 종래의 데이터 로깅 장치를 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 데이터 로깅 장치를 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 로깅 데이터 메시지를 도시한 그림이다.
도 4는 본 발명의 실시예에 따라 설정된 전송 주기에 따라 데이터를 수집하는 모습을 도시한 그림이다.
도 5는 본 발명의 실시예에 따라 중요도 및 전송 주기에 따른 데이터 로깅 장치를 도시한 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 더욱 상세히 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.
도 2는 본 발명의 실시 예에 따른 데이터 로깅 장치를 도시한 블록도이다.
유저 태스크 모듈(200;User Task Module)은 유저 어플리케이션으로부터의 로깅 데이터 메시지가 발생할 경우, 상기 로깅 데이터 메시지의 타입에 따른 전송 파라미터를 파악하여, 파악된 전송 파라미터에 따라 상기 로깅 버퍼로 전송한다.
즉, 사용자로부터 입력받은 데이터를 저장 매체에 로깅시키는 로깅 기능을 제공하는 작업 단위 모듈로서, 유저 어플리케이션(210)과 로깅 API(220)를 구비한다.
상기 유저 어플리케이션(210;User Application)은, 사용자로부터 데이터를 입력받는 사용자 어플리케이션 프로그램이다. 사용자로부터 데이터 입력이 있을 때 데이터를 포함하는 로깅 데이터 메시지를 발생한다. 상기 로깅 데이터 메시지는 헤더 정보 및 데이터를 포함하는 메시지로서, 사용자로부터 데이터 입력이 있을 때마다 입력된 데이터를 포함하는 로깅 데이터 메시지가 발생된다.
로깅 API(220;Logging API)는 사용자 어플리케이션 프로그램(유저 어플리케이션)에 로깅 기능을 제공하는 인터페이스이다. 상기 로깅(logging)이란, 발생하는 데이터의 삽입/삭제/변경을 디스크 드라이브와 같이 안전한 저장 매체(stable storage device)에 기록하는 기능을 말한다. 안전한 저장 매체에 기록함으로써, 예외 상황 발생시 이를 이용하여 이전의 데이터베이스 상태로 되돌릴 수 있다. 이하에서, 로깅 전송이라 함은 로깅을 위해 데이터가 로깅 데이터 메시지 형태로서 다른 태스크 모듈로 전송되는 것을 말한다.
상기에서 API(Application Programming Interface)란 어플리케이션 프로그램간의 인터페이스를 말하는 것으로서, 어플리케이션 프로그램(응용 프로그램) 사이의 통신에 사용되는 언어나 로깅 데이터 메시지 형식이 해당된다.
로깅 API(220)는 유저 어플리케이션을 통해 입력되는 로깅 데이터 메시지를 로깅 버퍼에 전송하는데, 이때, 입력되는 로깅 데이터 메시지를 로깅 버퍼에 그대로 전송하면, 중요도 높은 로깅 데이터 메시지와 전송 주기가 빠른 로깅 데이터 메시지가 함께 로깅 전송되는 경우, 중요도 높은 로깅 데이터 메시지가 뒤로 밀리거나 버퍼가 다차서, 중요도 높은 로깅 데이터 메시지가 로깅되지 못하고 분실될 우려가 있다.
따라서 본 발명의 실시예는 빠른 주기를 갖는 로깅 데이터 메시지로 인해 중요도 높은 로깅 데이터 메시지가 분실되는 문제를 해결하기 위해, 전송 주기를 포함하는 전송 파라미터를 두어서, 상기 전송 파라미터에 따라 로깅 버퍼로 전송이 이루어지도록 한다.
상기 전송 파라미터는 로깅 API가 로깅 태스크 모듈 내의 버퍼로 로깅 데이터 메시지를 전송하는 기준 파라미터로서, 로깅 데이터 메시지 타입(logging data message type)별로, 중요도, 로깅 온/오프(Logging ON/OFF), 전송 주기(Logging Frequency)를 포함한다. 따라서, 로깅 데이터 메시지 타입별로, 중요도, 로깅 온/오프, 전송 주기를 달리한다.
상기 로깅 데이터 메시지 타입은 로깅 API가 로깅 버퍼로 데이터를 로깅 데이터 메시지 형태로 전송할 때, 전송되는 로깅 데이터 메시지의 속성 타입을 말한다. 이러한 로깅 데이터 메시지 타입은 도 3에 도시한 바와 같이 로깅 메시지의 헤더 내에 기록되어 있다.
헤더 내에 기록되는 로깅 데이터 메시지 타입으로는 여러가지 형태로 속성이 설정될 수 있는데, 중요도, 로깅 온/오프, 전송 주기 등의 속성 타입으로 설정될 수 있다. 로깅 데이터 메시지 타입에 따라 해당 메시지를 전송 주기를 빠른 또는 늦은 메시지로 처리할 것인지, 중요도 높은 메시지로 처리할 것인지 알 수 있다.
예를 들어, 전송되는 로깅 데이터 메시지의 중요도에 따라서 A,B,C 타입으로 타입을 분류할 경우, A 타입 로깅 데이터 메시지는 중요도가 가장 높음을 나타내며, B->C로 내려갈수록 중요도 우선순위가 낮음을 나타낸다. 또한, 전송 주기에 따라서 α,β타입으로 분류할 경우, α타입 로깅 데이터 메시지는 전송 주기가 가장 빠름을 나타내며, β는 전송주기가 낮음을 나타낸다. 따라서, {A,α}조합의 메시지 타입을 갖는 경우, 중요도가 높으며, 아울러 전송주기가 빠름을 나타내며, {A,β} 조합의 메시지 타입을 갖는 경우 중요도가 높으며 전송주기가 늦음을 나타낸다.
상기에서 전송주기가 빠르거나 늦는다는 것은, 특정값을 기준으로 판단하는 것으로서, 전송주기가 특정값을 초과하는 경우 전송주기가 빠르다고 말하는 것이며, 전송주기가 특정값 이하인 경우 전송주기가 늦다고 말하는 것이다.
로깅 온/오프(Logging ON/OFF)는 로깅 API가 버퍼로 로깅 데이터 메시지를 로깅 전송을 할지 안할지를 나타내는 것으로서, 로깅 온(Logging ON)으로 되어 있는 경우에는 로깅 전송을 수행하며, 로깅 오프(Logging OFF)로 되어 있는 경우에는 로깅 전송을 수행하지 않는다.
상기 로깅 온/오프는 로깅 데이터 메시지 타입에 따라 달리 설정되어 로깅 전송 온/오프될 수 있다. 예컨대, 중요도 높은 A타입 로깅 데이터 메시지는 로깅 온(Logging ON)으로 설정되고, 나머지 B,C타입 로깅 데이터 메시지는 로깅 오프(Logging OFF)로 설정된 경우, 로깅 API는 A타입 로깅 데이터 메시지만 버퍼로 로깅 전송하고, 나머지 B타입 로깅 데이터 메시지 및 C타입 로깅 데이터 메시지는 버퍼로 로깅 전송하지 않는다.
전송 주기(Logging Frequency)는 로깅 API가 버퍼로 로깅 데이터 메시지를 로깅 전송을 할 때, 어느 정도의 주기로 로깅 전송할지를 결정하는 파라미터이다. 예컨대, 전송 주기가 낮은 주기로 설정된 경우, 유저 어플리케이션을 통해 고주기로 입력되는 로깅 데이터 메시지, 즉, 높은 빈도로 입력되는 로깅 데이터 메시지가 있을 때, 로깅 데이터 메시지 입력이 있을 때마다 로깅 전송되는 것이 아니라, 낮은 주기로 로깅 데이터 메시지를 버퍼로 로깅 전송한다. 따라서, 만약, 전송 주기가 1분당 10번으로 설정된 상태에서, 1분 동안 유저 어플리케이션을 통해 1000번의 로깅 데이터 메시지 입력이 있는 경우, 1000번의 로깅 데이터 메시지를 모두 로깅 전송하는 것이 아니라 1000번의 로깅 데이터 메시지 중에서 일정 간격으로 10개의 로깅 데이터 메시지만 전송하여 로깅 버퍼에 저장하는 것이다. 따라서, 고주기의 로깅 데이터 메시지를 주기 파라미터를 통해 로깅 전송 주기를 낮춤으로써, 로깅 부하를 줄일 수 있다.
상기의 전송 파라미터는 모니터링 단말기(400)에 의해 설정되어 로깅 API로 제공된다. 모니터링 단말기(400)는 로깅 저장되는 최종 저장 매체를 구비한 장치로서, 로깅 버퍼(310)에서 전송되어 오는 로깅 데이터 메시지가 최종적으로 모니터링 단말기(400)의 저장 매체(410)에 저장된다.
또한, 모니터링 단말기(400)는 상기 저장 매체 이외에 전송 파라미터 설정부(420)를 두어서 전송 파라미터의 값을 프로그램 설계자로부터 설정받는다. 설정되는 전송 파라미터는 유저 태스크 모듈(200)에 전달되며, 아울러, 로깅 태스크 모듈(300)에 전달되어 사용된다.
상기 모니터링 단말기(400)는, 휴대폰(mobile phone), 스마트 폰(smart phone), 노트북 컴퓨터(notebook computer), PDA(Personal Digital Assistants) 등이 있다. 물론, 본 발명이 적용 가능한 단말기는 상술한 종류에 한정되지 않고, 통신이 가능한 단말기를 모두 포함할 수 있음은 당연하다.
또한, 로깅 데이터가 최종 저장되는 저장 매체(410)는 하드디스크(Hard Disk), 플래시메모리(Flash Memory), CF카드(Compact Flash Card), SD카드(Secure Digital Card), SM카드(Smart Media Card), MMC 카드(Multi-Media Card) 또는 메모리 스틱(Memory Stick) 등 정보의 입출력이 가능한 모듈로서 장치의 내부에 구비되어 있을 수도 있고, 별도의 장치에 구비되어 있을 수도 있다.
로깅 태스크 모듈(300;Logging task Module)은 로깅 버퍼(310)를 관리하고 로깅 버퍼로부터 로깅 데이터를 입력받아서 모니터링 단말기의 저장 매체(410)로 전송하는 프로세스 작업 모듈이다. 이를 위하여 로깅 태스크 모듈(300)은 로깅 버퍼(310)와 데이터 수집 API(320)를 구비한다.
로깅 버퍼(310)는 로깅 API(220)로부터 전송되어 오는 로깅 데이터 메시지를 버퍼링 저장하는 버퍼로서, 메시지 타입별로 설정된 주기에 따라 로깅 API를 통해 전송된 로깅 데이터 메시지가 임시 저장된다.
데이터 수집 API(320)는 로깅 버퍼에 쌓여 있는 데이터를 수집하여, 저장 매체(410)에 저장한다. 로깅 API에서 메시지 타입별로 설정된 주기로서 전송하는 경우, 데이터 수집 API는 로깅 버퍼내 데이터를 그대로 수집하여 저장 매체로 제공한다. 예컨대, 로깅 API에서 A 타입 로깅 데이터 메시지에 대해서 10초에 10번만 메시지를 전송하도록 설정된 경우, 로깅 버퍼에는 10번의 A타입 로깅 데이터 메시지가 버퍼링되어 있고, 데이터 수집 API는 버퍼링된 10개의 A타입 로깅 데이터 메시지를 순차적으로 저장 매체에 저장한다.
또한, 본 발명의 다른 실시예는, 전송 파라미터의 하나인 전송 주기로서 로깅 버퍼에 버퍼링 저장된 로깅 데이터 메시지를 수집하여, 저장 매체에 저장하도록 할 수 있다. 로깅 API가 유저 어플리케이션에서 입력되는 데이터를 주기 고려없이 무조건적으로 로깅 버퍼로 버퍼링하는 경우, 데이터 수집 API는 설정된 전송 주기로서 로깅 버퍼에 버퍼링된 메시지를 수집하여 저장 매체로 전송한다. 데이터 수집 API에서의 수집 주기는, 전송 파라미터 설정부에서 제공된 전송 파라미터에 따른 주기로 이루어진다.
도 4에 도시한 바와 같이 A 타입 로깅 데이터 메시지에 대한 수집 주기가 10번째마다 이루어지도록 설정된 경우, 로깅 버퍼에 순차 저장되는 A 타입 로깅 데이터 메시지들 중에서 10번째마다 위치하는 A 타입 로깅 데이터 메시지를 수집하여 저장 매체에 저장한다. 또한, B 타입 로깅 데이터 메시지에 대한 수집 주기가 2번째마다 이루어지도록 설정된 경우, 로깅 로깅 버퍼에 순차 저장되는 B 타입 로깅 데이터 메시지들 중에서 2번째마다 위치하는 B 타입 로깅 데이터 메시지를 수집하여 저장 매체에 저장한다.
상기 메시지별 타입은 로깅 버퍼에 저장된 메시지의 헤더내 타입 정보를 파악할 수 있다. 각 로깅 데이터 메시지의 헤더에는 타입 정보가 기록되어 있어, 이를 통해 메시지 타입을 파악하는 것이다.
한편, 도 2에 도시한 바와 같이 미리 설정된 전송 주기로서 메시지를 로깅 전송하는 구조에서, 하나의 로깅 버퍼를 통해 구현할 수 있지만, 메시지의 중요도 및 전송 주기에 따른 복수의 로깅 버퍼와 부하 필터링을 통해 로깅 전송이 이루어지도록 구현할 수 있다. 도 5와 함께 상술한다.
도 5는 본 발명의 실시예에 따라 중요도 및 전송 주기에 따른 데이터 로깅 장치를 도시한 블록도이다.
로깅 태스크 모듈(300)은 다수개의 작업 모듈로 이루어지며, 각 로깅 태스크 모듈(310,320,330)에는 로깅 버퍼(310a,320a,330a) 및 데이터 수집 API(310b,320b,330b)가 각각 구비된다. 이하, 본 발명의 실시예는 3개의 로깅 태스크 모듈(310,320,330)을 예로 들어 설명하겠으나, 그 이상 또는 그 이하의 로깅 태스크 모듈의 개수도 적용될 수 있을 것이다. 각 로깅 태스크 모듈은 로깅 API로부터 로깅 버퍼로 병렬 입력되는 로깅 데이터 메시지를 병렬 처리하여 각각 저장 매체로 수집 전송한다.
로깅 버퍼는 각 로깅 태스크 모듈마다 구비되어 다수의 버퍼로 구비되는데, 각 로깅 버퍼(310a,320b,330c)마다 전송 입력되는 로깅 데이터 메시지 속성을 달리한다. 예를 들어, 제1로깅 버퍼의 경우 전송 빈도가 특정값을 초과하는 높은 주기(고주기)를 갖는 로깅 데이터 메시지가 전송되어 저장되며, 제2로깅 버퍼의 경우 전송 빈도가 특정값 이하의 낮은 주기(저주기)를 갖는 로깅 데이터 메시지가 전송되어 저장된다. 또한, 제3로깅 버퍼의 경우 중요한 로깅 데이터 메시지만이 전송되어 저장된다.
따라서 고주기 로깅 데이터 메시지, 저주기 로깅 데이터 메시지, 중요 로깅 데이터 메시지가 각각 다른 로깅 버퍼로 병렬 저장된 후, 저장 매체로 전송됨으로써 메시지 손실 우려를 해결할 수 있다.
이러한 로깅 데이터 메시지의 속성에 따라서 다수의 로깅 버퍼로 메시지가 병렬 전송되는데, 이러한 병렬 전송은, 로깅 API(220)에서 이루어진다.
로깅 API(220)는 유저 어플리케이션(210)으로부터 입력되는 로깅 데이터 메시지를 각 로깅 버퍼로 병렬 전송한다. 이때, 로깅 API(220)는 로깅 데이터 메시지의 헤더 정보를 통해 파악한 메시지 타입에 따라 전송 버퍼를 선택하여 해당 로깅 데이터 메시지를 전송한다.
예를 들어, 전송되는 로깅 데이터 메시지의 중요도에 따라서 A,B,C 타입으로 타입을 분류되며, A 타입 로깅 데이터 메시지가 중요도가 가장 높음을 나타낸다고 가정할 경우, 유저 어플리케이션으로부터 입력되는 A 타입 로깅 데이터 메시지는 제3로깅 버퍼(330a)로 전송하고, 다른 B,C 타입 로깅 데이터 메시지는 전송 주기에 따라서 제1 로깅 버퍼(310a) 또는 제2로깅 버퍼(310b)로 전송한다.
또한, 전송 주기 타입에 따라서 전송되는 로깅 버퍼가 달라지는데, 예를 들어, 전송 주기에 따라서 α,β 타입으로 분류되며, α타입 로깅 데이터 메시지는 전송 주기가 빠름을 나타내며, β는 전송주기가 낮음을 나타내며, 중요도가 우선한다고 가정할 경우, {B,α} 타입 조합을 갖는 로깅 데이터 메시지는 높은 전송주기를 처리하는 제1로깅버퍼(310a)로 전송되며, {B,β} 타입 조합을 갖는 로깅 데이터 메시지는 낮은 전송주기를 처리하는 제2로깅버퍼(320a)로 전송된다. 상기에서 전송 주기가 빠르거나 늦는다는 것은, 특정값을 기준으로 판단하는 것으로서, 전송 주기가 특정값을 초과하는 경우 전송주기가 빠르다고 말하는 것이며, 전송주기가 특정값 이하인 경우 전송주기가 늦다고 말하는 것이다.
결국, 다양한 로깅 버퍼를 두고 태스크의 우선 순위를 다르게 설정함으로써, 중요한 메시지가 고주기 등의 우선순위 낮은 메시지에 의해 지연되는 효과를 줄일 수 있다.
이하, [표 1]은 중요도 및 전송주기에 따라서 어느 버퍼로 로깅 데이터 메시지가 전송되어 저장될지를 나타내는 예시를 나타낸 표이다. 이때, 제1로깅버퍼는 전송 주기가 빠른 메시지가 저장되는 버퍼이며, 제2로깅버퍼는 전송 주기가 늦은 메시지가 저장되는 버퍼이며, 제3로깅버퍼는 중요 메시지가 저장되는 버퍼를 말한다. 또한, 각 로깅 데이터 메시지의 타입에서의 중요도의 우선순위는 A>B>C 관계이며, 전송주기는 α>β 관계를 가지며, 로깅 API에서 전송되는 로깅 버퍼를 결정할 때, 중요도가 전송 주기보다 우선된다고 가정한다.
로깅 데이터 메시지 타입 저장되는 로깅 버퍼
제1로깅 데이터 메시지 {A,α} 제3로깅 버퍼
제2로깅 데이터 메시지 {A,β} 제3로깅 버퍼
제3로깅 데이터 메시지 {B,α} 제1로깅 버퍼
제4로깅 데이터 메시지 {B,β} 제2로깅 버퍼
제5로깅 데이터 메시지 {C,α} 제1로깅 버퍼
제6로깅 데이터 메시지 {C,β} 제2로깅 버퍼
한편, 로깅 API(220)가 유저 어플리케이션으로부터 데이터 메시지를 입력받아 각각의 로깅 버퍼로 전송할 때, 시스템 부하를 고려하여 메시지의 전송되는 로깅 버퍼를 결정할 수 있다. 시스템 부하가 많이 걸려 있는 상태에서, 고주기 메시지를 그대로 제1로깅버퍼로 계속하여 고주기로 전송할 경우, 제1로깅 버퍼에만 부하가 많이 걸리기 때문이다.
따라서 로깅 API(220)는 유저 어플리케이션(210)으로부터 데이터 메시지를 입력받을 때, 전송할 로깅 버퍼로 결정하기 전에 입력되는 로깅 데이터 메시지의 전송량을 나타내는 부하 밸런스(load balance)를 고려하여, 전송 대상의 로깅버퍼를 결정한다.
예를 들어, 유저 어플리케이션(210)으로부터 입력되는 로깅 데이터 메시지들 중에서 고주기 메시지가 50% 이상을 차지한다면, 제1로깅 버퍼에(310a)만 메시지를 전송하지 않고 부하가 적은 제2로깅 버퍼(320a) 및 제3로깅 버퍼(330a)로 분산하여 데이터를 전송한다.
또한, 유저 어플리케이션(210)으로부터 입력되는 로깅 데이터 메시지들 중에서 고주기 메시지가 90% 이상을 차지한다면, 고주기로 로깅 전송 시에 시스템 전체에 부하가 걸릴 우려가 있기 때문에, 당분간 고주기 로깅 데이터 메시지를 전송하지 않고, 저주기 및 중요 로깅 데이터 메시지만을 제2 및 제3로깅 버퍼(320a,320b)로 전송한다.
본 발명을 첨부 도면과 전술된 바람직한 실시예를 참조하여 설명하였으나, 본 발명은 그에 한정되지 않으며, 후술되는 특허청구범위에 의해 한정된다. 따라서, 본 기술분야의 통상의 지식을 가진 자라면 후술되는 특허청구범위의 기술적 사상에서 벗어나지 않는 범위 내에서 본 발명을 다양하게 변형 및 수정할 수 있다.
200: 유저 태스크 모듈 210: 유저 어플리케이션
220: 로깅 API 300: 로깅 태스크 모듈
310: 로깅 버퍼 320: 데이터 수집 API
400: 모니터링 단말기 410: 저장매체
420: 전송 파라미터 설정부

Claims (9)

  1. 헤더에 메시지 타입을 기록한 로깅 데이터 메시지가 저장된 저장 매체를 구비한 모니터링 단말기;
    다수개의 로깅 버퍼를 구비하여, 상기 로깅 버퍼에 저장되는 로깅 데이터 메시지를 상기 저장 매체로 전송하는 로깅 태스크 모듈;
    유저 어플리케이션으로부터의 로깅 데이터 메시지가 발생할 경우, 헤더 내의 메시지 타입별로 전송 파라미터를 파악하여, 파악된 전송 파라미터에 따라 상기 로깅 버퍼로 전송하는 유저 태스크 모듈;
    로깅 데이터 메시지 타입별로 전송 파라미터를 설정하는 전송 파라미터 설정부;를 포함하며,
    상기 메시지 헤더내에 저장되는 메시지 타입은 {중요도,전송주기} 조합의 전송 파라미터를 나타내며,
    상기 로깅 버퍼는, 특정값을 초과하는 고주기로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제1로깅 버퍼와, 상기 특정값 이하의 저주기로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제2로깅 버퍼와, 가장 높은 중요도로 설정된 메시지 타입을 갖는 로깅 데이터 메시지가 저장되는 제3로깅 버퍼를 포함하며,
    메시지 타입의 {중요도,전송주기} 조합에 따라서 저장될 로깅 버퍼가 선택되며, 전송주기보다 중요도를 우선하여 가장 높은 중요도를 가지는 메시지는 상기 제3로깅 버퍼가 선택되어 저장되는 데이터 로깅 장치.
  2. 삭제
  3. 청구항 1에 있어서, {중요도,전송주기} 조합에 따라서 전송 온/오프를 결정하는 데이터 로깅 장치.
  4. 청구항 3에 있어서, 상기 로깅 태스크 모듈은,
    상기 유저 태스크로부터 전송되는 로깅 데이터 메시지가 저장되는 로깅 버퍼;
    상기 로깅 버퍼에 저장된 로깅 데이터 메시지를 상기 저장 매체로 상기 전송 파라미터에 따라 전송하는 데이터 수집 API;
    를 포함하는 데이터 로깅 장치.
  5. 청구항 4에 있어서, 상기 로깅 버퍼는, 상기 유저 태스크로부터 로깅 데이터 메시지를 병렬 전송받아 저장하는 데이터 로깅 장치.
  6. 삭제
  7. 삭제
  8. 청구항 5에 있어서, 상기 유저 태스크 모듈은,
    사용자로부터 데이터 입력이 있는 경우 로깅 데이터 메시지를 발생하는 유저 어플리케이션;
    상기 로깅 데이터 메시지를 상기 전송 파라미터에 따라서 상기 로깅 버퍼로 전송하는 로깅 API;
    를 포함하는 데이터 로깅 장치.
  9. 청구항 8에 있어서, 상기 로깅 API는, 상기 유저 어플리케이션으로부터 입력되는 로깅 데이터 메시지의 타입별 전송량인 부하 밸런스를 고려하여, 타입별 메시지 전송 여부와 전송될 로깅 버퍼 위치를 결정하는 데이터 로깅 장치.
KR1020110039046A 2011-04-26 2011-04-26 데이터 로깅 장치 KR101221992B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110039046A KR101221992B1 (ko) 2011-04-26 2011-04-26 데이터 로깅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110039046A KR101221992B1 (ko) 2011-04-26 2011-04-26 데이터 로깅 장치

Publications (2)

Publication Number Publication Date
KR20120121207A KR20120121207A (ko) 2012-11-05
KR101221992B1 true KR101221992B1 (ko) 2013-01-15

Family

ID=47507698

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110039046A KR101221992B1 (ko) 2011-04-26 2011-04-26 데이터 로깅 장치

Country Status (1)

Country Link
KR (1) KR101221992B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082949A (ko) 2018-12-31 2020-07-08 성균관대학교산학협력단 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120841A1 (en) * 2001-12-21 2003-06-26 Chang Matthew C.T. System and method of data logging
KR20070002582A (ko) * 2005-06-30 2007-01-05 주식회사 팬택앤큐리텔 로깅 메시지의 저장기능을 갖는 이동통신단말기와 이를이용한 통화성능측정방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120841A1 (en) * 2001-12-21 2003-06-26 Chang Matthew C.T. System and method of data logging
KR20070002582A (ko) * 2005-06-30 2007-01-05 주식회사 팬택앤큐리텔 로깅 메시지의 저장기능을 갖는 이동통신단말기와 이를이용한 통화성능측정방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082949A (ko) 2018-12-31 2020-07-08 성균관대학교산학협력단 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치
KR102165860B1 (ko) * 2018-12-31 2020-10-14 성균관대학교산학협력단 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치
US11442929B2 (en) 2018-12-31 2022-09-13 Research & Business Foundation Sungkyunkwan University Double header logging of slotted page structures

Also Published As

Publication number Publication date
KR20120121207A (ko) 2012-11-05

Similar Documents

Publication Publication Date Title
CN108319654B (zh) 计算系统、冷热数据分离方法及装置、计算机可读存储介质
US9632826B2 (en) Prioritizing deferred tasks in pending task queue based on creation timestamp
US20050246362A1 (en) System and method for dynamci log compression in a file system
CN102799514A (zh) 一种日志记录管理方法和系统
CN110609807B (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
CN109558456A (zh) 一种文件迁移方法、装置、设备及可读存储介质
CN107977167A (zh) 一种基于纠删码的分布式存储系统的退化读优化方法
CN113010289A (zh) 一种任务调度方法、装置和系统
CN115408149A (zh) 一种时序存储引擎内存设计及分配方法及装置
CN115291806A (zh) 一种处理方法、装置、电子设备及存储介质
WO2018077092A1 (zh) 应用于分布式文件系统的存盘方法、装置及分布式文件系统
US20170269868A1 (en) Information processing apparatus, storage system, computer-readable recording medium, and information processing method
US20120143928A1 (en) File system transaction log flush optimization
CN110019063A (zh) 计算节点数据容灾回放的方法、终端设备及存储介质
US20140320498A1 (en) Terminal device, information processing method, and computer program product
KR101666440B1 (ko) 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
US11392510B2 (en) Management method of cache files in storage space and recording device for storing cache files
CN103236938A (zh) 一种基于缓存及异步处理技术的用户行为采集方法及系统
CN104102552A (zh) 一种消息处理方法及装置
KR101221992B1 (ko) 데이터 로깅 장치
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质
CN111913913A (zh) 访问请求的处理方法和装置
CN103176753A (zh) 存储设备及其数据管理方法
KR101643278B1 (ko) 데이터베이스 시스템에서 스토리지 서버 관리 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램
CN106648550B (zh) 用于并发执行任务的方法与设备

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190108

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 8