KR20070106317A - Method for extending queue capacity and message processing device capable of extending queue capacity - Google Patents

Method for extending queue capacity and message processing device capable of extending queue capacity Download PDF

Info

Publication number
KR20070106317A
KR20070106317A KR1020060039034A KR20060039034A KR20070106317A KR 20070106317 A KR20070106317 A KR 20070106317A KR 1020060039034 A KR1020060039034 A KR 1020060039034A KR 20060039034 A KR20060039034 A KR 20060039034A KR 20070106317 A KR20070106317 A KR 20070106317A
Authority
KR
South Korea
Prior art keywords
queue
message
directory
memory
logical address
Prior art date
Application number
KR1020060039034A
Other languages
Korean (ko)
Other versions
KR100836621B1 (en
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 KR1020060039034A priority Critical patent/KR100836621B1/en
Publication of KR20070106317A publication Critical patent/KR20070106317A/en
Application granted granted Critical
Publication of KR100836621B1 publication Critical patent/KR100836621B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for extending queue capacity and a message processing device capable of extending queue capacity are provided to utilize a number of queues by relating the queue directory of the queue and the logic address information of the message. A method for extending queue capacity includes the steps of: transmitting a received message to a writer; determining if the queue count value coincides with the maximum queue count value after checking the count information of the queue(504); creating a second queue at a memory when the count value of the queue coincides with the maximum queue count value(508); and storing the provided message from a listener to the directory of the second queue(506,510). The first directory of the created second queue should be connected with the last directory of the first queue.

Description

큐 용량 확장 방법 및 큐 용량 확장이 가능한 메시지 처리 장치{Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity}Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity}

도 1은 종래의 메시지 처리 장치의 일례를 도시한 도면.1 is a diagram showing an example of a conventional message processing apparatus.

도 2는 본 발명의 바람직한 일 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치의 구성을 도시한 도면.2 is a diagram illustrating a configuration of a message processing apparatus capable of expanding a queue capacity according to an exemplary embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치의 구성을 도시한 도면.3 is a diagram illustrating a configuration of a message processing apparatus capable of expanding a queue capacity according to another embodiment of the present invention.

도 4는 인스턴트 메시지 또는 메일 메시지와 같은 네트워크를 통해 전송되는 메시지에 처리에 적용되는 본 발명의 일 실시예에 따른 메시지 처리 장치의 구성을 도시한 도면.4 is a diagram illustrating a configuration of a message processing apparatus according to an embodiment of the present invention applied to processing on a message transmitted through a network such as an instant message or a mail message.

도 5는 본 발명의 바람직한 일 실시예에 따른 새로운 큐의 생성 과정을 도시한 순서도.5 is a flowchart illustrating a process of creating a new queue according to an exemplary embodiment of the present invention.

도 6은 본 발명의 바람직한 일 실시예에 따른 복수의 큐가 형성된 상태에서 큐의 메시지가 출력되는 과정에 대한 순서도.6 is a flowchart illustrating a process of outputting a message of a queue in a state where a plurality of queues are formed according to an exemplary embodiment of the present invention.

도 7은 본 발명의 다른 실시예에 따른 새로운 큐의 생성 과정을 도시한 순서 도7 is a flowchart illustrating a process of creating a new queue according to another embodiment of the present invention.

도 8은 본 발명의 다른 실시예에 따른 복수의 큐가 형성된 상태에서 큐의 메시지가 출력되는 과정에 대한 순서도.8 is a flowchart illustrating a process of outputting a message of a queue in a state where a plurality of queues are formed according to another embodiment of the present invention.

본 발명은 큐 용량 확장 방법 및 큐 용량 확장이 가능한 메시지 처리 장치에 관한 것으로서, 더욱 상세하게는 메시지들을 저장하는 큐의 용량을 동적으로 확장할 수 있는 방법 및 장치에 관한 것이다. The present invention relates to a method for expanding a queue capacity and a message processing apparatus capable of expanding a queue capacity, and more particularly, to a method and an apparatus capable of dynamically expanding a capacity of a queue for storing messages.

인스턴트 메시지, 메일 메시지와 같은 다양한 종류의 전자 메시지는 메시지 처리 장치의 큐에 저장되었다가 순차적으로 처리되는 것이 일반적이다. 예를 들어, 메신자 사용자들이 전송하는 인스턴트 메시지는 메시지 처리 장치의 큐에 일시적으로 저장되었다가 큐에 저장된 순서대로 처리된다. Various types of electronic messages, such as instant messages and mail messages, are generally stored in a queue of a message processing device and processed sequentially. For example, instant messages sent by messenger users are temporarily stored in a queue of a message processing device and processed in the order in which they are stored.

도 1은 종래의 메시지 처리 장치의 일례를 도시한 도면이다. 1 is a diagram illustrating an example of a conventional message processing apparatus.

도 1을 참조하면, 종래의 메시지 큐 서버는 리스너(100), 라이터(102), 큐(104), 리더(106), 핸들러(108) 및 라이터(110)를 포함한다. Referring to FIG. 1, a conventional message queue server includes a listener 100, a writer 102, a queue 104, a reader 106, a handler 108, and a writer 110.

메시지는 메시지 처리 장치의 리스너(100)에 의해 수신되며, 라이터(102)는 수신된 메시지를 큐(104)에 저장한다. 리더(106)는 큐에 저장된 메시지를 FIFO 방식으로 읽어와 핸들러(108)에 전달하며, 핸들러(108)는 메시지에 대해 미리 설정된 비즈니스 로직을 수행한다. 비즈니스 로직이 수행되면, 라이터(110)는 메시지 패킷을 네트워크로 출력한다. The message is received by the listener 100 of the message processing apparatus, and the writer 102 stores the received message in the queue 104. The reader 106 reads the queued message in a FIFO manner and delivers it to the handler 108, which executes predetermined business logic on the message. When the business logic is performed, the writer 110 outputs a message packet to the network.

도 1과 같은 메시지 처리 장치에서, 큐의 용량은 제한되어 있으며, 리더(106)에 의해 큐로부터 출력되는 메시지보다 라이터(102)에 의해 큐에 저장되는 메시지의 수가 많을 경우 메시지 오버플로우(overflow) 현상이 발생되는 문제점이 있었다. In the message processing device as shown in FIG. 1, the capacity of the queue is limited, and the message overflow when the number of messages stored in the queue by the writer 102 is larger than the messages output from the queue by the reader 106. There was a problem that the phenomenon occurs.

이러한 메시지 오버플로우 현상은 인해 메시지가 유실되거나 메시지 처리에 오류를 발생시켰다. These message overflows caused messages to be lost or caused errors in message processing.

위와 같은 문제점을 해결하기 위해, 큐 생성 시 큰 용량을 가지는 큐를 생성할 수 밖에 없었으며, 이와 같은 큐는 메시지가 인입되는 정도에 관계 없이 한정된 메모리 공간을 너무 크게 차지하는 문제점이 있었다. In order to solve the above problems, there was no choice but to create a queue having a large capacity when creating a queue, and such a queue occupied a limited amount of limited memory space regardless of the degree of incoming messages.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 메시지가 유입되는 정도에 따라 큐의 용량을 동적으로 확장할 수 있는 큐 용량 확장 방법 및 큐 용량 확장이 가능한 메시지 처리 장치를 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention is to propose a queue capacity expansion method that can dynamically expand the queue capacity in accordance with the degree to which the message flows and a message processing device capable of expanding the queue capacity. .

본 발명의 다른 목적은 새로운 큐를 동적으로 생성하여 큐의 용량을 확장할 수 있는 방법 및 큐 용량 확장이 가능한 메시지 처리 장치를 제안하는 것이다. Another object of the present invention is to propose a method capable of dynamically expanding a queue by dynamically creating a new queue and a message processing apparatus capable of expanding queue capacity.

본 발명의 또 다른 목적은 큐의 큐 디렉토리와 메시지의 논리 주소 정보를 연관시킴으로써 복수의 큐를 사용할 수 있는 큐 용량 확장 방법 및 메시지 처리 장 치를 제안하는 것이다. Another object of the present invention is to propose a queue capacity expansion method and a message processing device that can use a plurality of queues by associating a queue directory of a queue with logical address information of a message.

상기한 바와 같은 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 인입된 메시지를 수용할 수 있는 제1 큐의 여유 공간이 충분한지 여부를 판단하는 단계; 상기 제1 큐의 여유 공간이 충분하지 않을 경우, 새로운 큐인 제2 큐를 생성하는 단계; 상기 생성된 제2 큐에 상기 인입된 메시지를 저장하는 단계를 포함하되, 상기 제1 큐 및 제2 큐는 큐 디렉토리 아이디와 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보를 연관하여 관리하는 큐 용량 확장 방법이 제공된다. In order to achieve the above objects, according to an aspect of the present invention, determining whether there is enough free space in the first queue to accommodate the incoming message; If the free space of the first queue is not sufficient, creating a second queue, which is a new queue; And storing the incoming message in the generated second queue, wherein the first queue and the second queue are associated with a queue directory ID and logical address information of a message corresponding to each queue directory. An extension method is provided.

상기 메시지의 논리 주소 정보는 아이-노드(i-node) 정보 및 FAT(File Allocation Table) 정보를 포함할 수 있다. The logical address information of the message may include i-node information and file allocation table (FAT) information.

상기 제1 큐의 여유 공간이 충분하지 않을 경우, 새로운 큐를 생성할 수 있는 메모리 여유 공간이 충분한지 여부를 판단하는 단계를 더 포함하며, 메모리 여유 공간이 충분할 경우 상기 제2 큐는 메모리에 형성되며, 메모리의 여유 공간이 충분하지 않을 경우 상기 제2 큐는 디스크에 생성된다. If the free space of the first queue is not enough, determining whether there is sufficient memory free space to create a new queue, and if the free memory space is sufficient, the second queue is formed in the memory If the free space of the memory is not enough, the second queue is created on the disk.

또한, 본 발명은 상기 제2 큐가 생성될 경우, 상기 제2 큐의 첫번째 큐 디렉토리가 상기 제1 큐의 마지막 큐 디렉토리와 순차적으로 연결되도록 하는 참조 정보를 제공하는 메타 데이터를 생성하는 단계를 더 포함할 수 있다. In addition, the present invention further comprises the step of generating metadata that provides reference information that, when the second queue is created, causes the first queue directory of the second queue to be sequentially connected with the last queue directory of the first queue. It may include.

상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경되며, 상기 메타 데이터를 참조하여 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 상기 제1 큐의 마지막 큐 디렉토리에 상응하도록 변경된다. When a message stored in the first queue is outputted, logical address information of a message corresponding to each queue directory of the first queue and the second queue is changed, and the first queue directory of the second queue with reference to the metadata. The logical address information of the message corresponding to is changed to correspond to the last queue directory of the first queue.

상기 제1 큐 및 상기 제2 큐의 큐 디렉토리들의 아이디는 정수이며, 상기 제2 큐의 큐 디렉토리들의 아이디는 상기 제1 큐의 큐 디렉토리 아이디와 순차적으로 연결되도록 부여되며, 상기 제1 큐에 저장된 메시지가 출력될 경우, 제1 큐 및 제2 큐의 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 순차적으로 시프팅될 수 있다. IDs of the queue directories of the first queue and the second queue are integers, and IDs of the queue directories of the second queue are assigned to be sequentially connected with the queue directory ID of the first queue, and stored in the first queue. When the message is output, logical address information of the message corresponding to the queue directories of the first queue and the second queue may be sequentially shifted.

상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제2 큐의 큐 카운트 정보를 체크하는 단계를 더 포함하며, 상기 제2 큐의 큐 카운트가 0일 경우 상기 제2 큐를 제거한다. And checking the queue count information of the second queue when the message stored in the first queue is output. If the queue count of the second queue is 0, the second queue is removed.

상기 디스크에 상기 제2 큐가 생성될 경우, 상기 메모리에 저장된 메시지를 상기 디스크로 이동시키는 스왑-아웃(swap-out) 절차가 수행된다. When the second queue is created on the disk, a swap-out procedure for moving a message stored in the memory to the disk is performed.

상기 제2 큐가 디스크에 생성될 경우, 상기 제2 큐의 첫번째 큐 디렉토리가 상기 제1 큐의 마지막 디렉토리와 순차적으로 연결되도록 하는 참조 정보를 제공하는 메타 데이터를 생성하는 단계를 더 포함하고, 상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경되며, 상기 메타 데이터를 참조하여 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 상기 제1 큐의 마지막 큐 디렉토리에 상응하도록 변경하되, 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지에 대해 상기 디스크에서 상기 메모리로 이동시키는 스왑-인(swap-in) 절차가 수행된 다. When the second queue is created on a disk, generating metadata providing reference information for sequentially connecting the first queue directory of the second queue to the last directory of the first queue, When a message stored in a first queue is outputted, logical address information of a message corresponding to each queue directory of the first queue and the second queue is changed, and the first queue directory of the second queue is referred to by referring to the metadata. Swap-in, where the logical address information of the corresponding message is changed to correspond to the last queue directory of the first queue, but moves from the disk to the memory for messages corresponding to the first queue directory of the second queue. in) the procedure is performed.

본 발명의 다른 측면에 따르면, 메시지 전달 여부를 모니터링하고 전달된 메시지를 수신하는 리스너; 상기 리스너로부터 메시지를 기록하는 라이터; 상기 라이터에 의해 기록되는 메시지를 저장하는 제1 큐; 상기 큐에 저장된 메시지를 추출하는 리더를 포함하되, 상기 라이터는 상기 메시지를 상기 제1 큐에 저장하기 전 제1 큐에 상기 메시지를 저장할 수 있는 여유 공간이 충분한지 여부를 판단하며, 여유 공간이 충분하지 않을 경우 새로운 큐인 제2 큐를 생성하며, 상기 제1 큐 및 제2 큐는 큐 디렉토리 아이디와 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보를 연관하여 관리하는 큐 용량 확장이 가능한 메시지 처리 장치가 제공된다. According to another aspect of the present invention, a listener for monitoring message delivery and receiving the message; A writer for recording a message from the listener; A first queue storing a message recorded by the writer; And a reader for extracting a message stored in the queue, wherein the writer determines whether there is enough free space in the first queue to store the message before storing the message in the first queue. If not enough, create a new queue, a second queue, the first queue and the second queue is a queue capacity expandable message processing device for managing the association of the queue directory ID and the logical address information of the message corresponding to each queue directory Is provided.

본 발명의 또 다른 측면에 따르면, 큐 용량 확장을 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 기록매체에 있어서, 인입된 메시지를 수용할 수 있는 제1 큐의 여유 공간이 충분한지 여부를 판단하는 단계; 상기 제1 큐의 여유 공간이 충분하지 않을 경우, 새로운 큐인 제2 큐를 생성하는 단계; 상기 생성된 제2 큐에 상기 인입된 메시지를 저장하는 단계를 수행하되, 상기 제1 큐 및 제2 큐는 큐 디렉토리 아이디와 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보를 연관하여 관리하는 프로그램을 기록한 기록 매체가 제공된다.According to another aspect of the invention, a program of instructions that can be executed by a digital processing device for queuing capacity expansion is tangibly implemented and in a recording medium that can be read by the digital processing device, the incoming message is received. Determining whether there is enough free space in the first queue; If the free space of the first queue is not sufficient, creating a second queue, which is a new queue; And storing the incoming message in the generated second queue, wherein the first queue and the second queue associate a queue directory ID with logical address information of a message corresponding to each queue directory. A recorded recording medium is provided.

이하에서는 첨부된 도면을 참조하여 본 발명에 의한 큐 용량 확장 방법 및 큐 용량 확장이 가능한 메시지 처리 장치의 바람직한 실시예를 상세히 설명한다. Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the queue capacity expansion method and the message processing apparatus capable of queue capacity expansion according to the present invention.

도 2는 본 발명의 바람직한 일 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치의 구성을 도시한 도면이다. 2 is a diagram illustrating a configuration of a message processing apparatus capable of expanding a queue capacity according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치는 리스너(200), 라이터(202), 제1 큐(204), 제2 큐(206) 및 리더(210)를 포함할 수 있다. 2, a message processing apparatus capable of expanding queue capacity according to an embodiment of the present invention includes a listener 200, a writer 202, a first queue 204, a second queue 206, and a reader 210. ) May be included.

종래기술에서 설명한 바와 같이, 메시지 처리 장치는 통상적으로 미리 설정된 용량을 가지는 하나의 큐를 이용하여 메시지를 처리한다. 일단 큐의 용량이 설정되면, 큐의 용량을 확장할 수는 없었으며 따라서 큐의 용량을 초과하여 메시지가 인입될 경우 이를 처리할 수 없는 문제점이 있었다. As described in the prior art, a message processing apparatus typically processes a message using one queue having a preset capacity. Once the capacity of the queue has been set, the capacity of the queue cannot be expanded, and therefore, there is a problem that a message cannot be processed when a message is introduced beyond the capacity of the queue.

본 발명은 이와 같은 종래의 문제점을 해결하기 위해, 메시지가 인입되는 정도에 따라 미리 존재하는 큐 이외의 새로운 큐를 동적으로 생성하여 실질적으로 큐의 용량이 확장 가능한 메시지 처리 장치를 제안한다. In order to solve this problem, the present invention proposes a message processing apparatus capable of dynamically expanding a queue capacity by dynamically generating a new queue other than a pre-existing queue according to the degree of incoming messages.

도 2에서, 제1 큐(204)는 초기에 구비되는 큐이며, 제2 큐(206)는 메시지 처리 장치로 인입되는 메시지의 정도에 따라 동적으로 생성되는 큐이다. 이하에서, 도 2를 참조하여 본 발명의 일 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치의 각 구성 요소의 동작을 설명한다. In FIG. 2, the first queue 204 is an initially provided queue, and the second queue 206 is a queue dynamically generated according to the degree of a message entering the message processing apparatus. Hereinafter, an operation of each component of the message processing apparatus capable of expanding the queue capacity according to an embodiment of the present invention will be described with reference to FIG. 2.

도 2에서, 리스너(200)는 메시지 처리 장치로 인입되는 메시지를 수신하고 라이터(202)에 전달하는 기능을 한다. 여기서 메시지는 다양한 종류의 디지털 데이터를 모두 포함할 수 있다. 예를 들어, 메시지는 메신저 사용자들이 전송하는 인스턴트 메시지일 수 있다. 메시지가 인스턴트 메시지일 경우, 리스너(200)는 메신저 를 사용하는 사용자 클라이언트들과 네트워크를 통해 연결이 설정되어 있으며 사용자 클라이언트들로부터 수신되는 인스턴트 메시지를 수신한다. 인스턴트 메시지는 TCP 또는 UDP와 같은 다양한 프로토콜을 통해 리스너(200)로 전송될 수 있다. In FIG. 2, the listener 200 functions to receive a message coming into the message processing device and deliver it to the writer 202. The message may include all kinds of digital data. For example, the message may be an instant message sent by messenger users. When the message is an instant message, the listener 200 establishes a connection through a network with user clients using a messenger and receives an instant message received from the user clients. The instant message may be sent to the listener 200 via various protocols such as TCP or UDP.

또한, 메시지는 메일 메시지 또는 쪽지 메시지와 같은 비실시간 메시지일 수도 있다. 아울러, 메시지는 인스턴트 메시지 및 메일 메시지와 같이 네트워크를 통해 전송되는 메시지뿐만 아니라 같은 시스템 내부에서 소정의 처리를 위해 전송되는 디지털 파일일 수도 있다. The message may also be a non-real time message, such as a mail message or a message message. In addition, the message may be a digital file transmitted for predetermined processing in the same system as well as a message transmitted through a network such as an instant message and a mail message.

본 발명에서는 편의상 메시지라는 용어를 사용하기로 하며, 여기서 메시지는 큐에 저장될 수 있는 어떠한 형태의 디지털 데이터도 포함할 수 있음을 당업자라면 이해할 수 있을 것이다. In the present invention, the term message is used for convenience, and it will be understood by those skilled in the art that the message may include any form of digital data that may be stored in a queue.

라이터(202)는 리스너(200)가 수신한 메시지를 전달받아 큐에 저장하는 기능을 한다. 종래의 경우, 라이터(202)는 리스너(200)로 수신된 메시지를 큐에 저장시키는 단순한 동작만을 수행하였다. 그러나, 본 발명에 따른 라이터(202)는 메시지를 큐에 저장할 때 큐의 용량을 체크한다. 예를 들어, 큐가 20개의 메시지 파일을 저장할 수 있는 20개의 큐 디렉토리를 가지고 있을 경우, 현재 큐에서 몇 개의 큐 디렉토리가 메시지 파일을 저장하고 있는지에 대한 큐 카운트 정보를 체크한다. The writer 202 receives a message received by the listener 200 and stores it in a queue. In the conventional case, the lighter 202 performed only a simple operation of storing a message received by the listener 200 in a queue. However, the writer 202 according to the present invention checks the queue's capacity when storing messages in the queue. For example, if a queue has 20 queue directories that can store 20 message files, check the queue count information on how many queue directories in the current queue store message files.

도 2에서, 라이터(202)는 리스너(200)로부터 메시지를 전달받을 경우, 제1 큐(204)의 큐 카운트 정보를 체크한다. 제1 큐(204)의 큐 카운트가 제1 큐(204)의 최대 카운트 이하일 경우, 제1 큐(204)에는 메시지가 저장될 공간 여유가 있는 것이므로 라이터(202)는 전달된 메시지를 제1 큐(204)의 특정 디렉토리에 저장한다. In FIG. 2, the writer 202 checks the queue count information of the first queue 204 when receiving a message from the listener 200. If the queue count of the first queue 204 is less than or equal to the maximum count of the first queue 204, the first queue 204 has room for the message to be stored, and thus the writer 202 transmits the delivered message to the first queue. 204 is stored in a specific directory.

제1 큐(204)의 큐 카운트가 제1 큐의 최대 카운트와 같을 경우, 제1 큐(204)에는 메시지가 저장될 공간 여유가 없는 상태이다. 이 경우, 라이터(202)는 새로운 큐인 제2 큐(206)를 생성한다. 제2 큐(206)는 메모리에 생성되는 것이 바람직하다. 여기서 메모리는 램과 같은 휘발성 메모리 및 플래시 메모리와 같은 비휘발성 메모리를 모두 포함할 수 있을 것이다. 큐는 예를 들어 getqueue()와 같은 명령어에 의해 생성될 수 있으며, 생성되는 제2 큐(206)는 제1 큐(204)와 연계하여 동작한다. When the queue count of the first queue 204 is equal to the maximum count of the first queue, the first queue 204 has no space to store a message. In this case, the writer 202 creates a second queue 206 which is a new queue. The second queue 206 is preferably created in memory. The memory may include both volatile memory such as RAM and nonvolatile memory such as flash memory. The queue may be created by an instruction such as, for example, getqueue (), and the generated second queue 206 operates in conjunction with the first queue 204.

제1 큐(204)의 큐 카운트가 제1 큐(204)의 최대 카운트와 같고 제2 큐(206)가 생성된 경우, 라이터(202)는 제2 큐(206)에 전달받은 메시지를 저장한다.If the queue count of the first queue 204 is equal to the maximum count of the first queue 204 and the second queue 206 is created, the writer 202 stores the message delivered to the second queue 206. .

종래의 경우, 메시지에는 별도의 메시지 아이디가 할당되며, 큐의 큐 디렉토리 아이디 및 메시지 아이디가 연관되어 관리된다. 이러한 메시지 아이디는 큐와 메시지 사이에서만 식별되는 아이디로서 새로운 큐가 생성될 경우 새로운 큐는 이러한 메시지를 식별할 수 없으므로 새로운 큐를 생성하고 새로운 큐와 기존의 큐를 연계하여 사용할 수 없는 문제점이 있었다. In the conventional case, a message is assigned a separate message ID, and the queue directory ID and the message ID of the queue are managed in association with each other. This message ID is an ID that is identified only between the queue and the message. When a new queue is created, the new queue cannot identify such a message. Therefore, there is a problem in that a new queue cannot be created and used in conjunction with a new queue.

본 발명에서는 각 메시지를 메시지의 논리 주소 정보를 이용하여 식별하고, 큐 디렉토리 아이디와 메시지 논리 주소 정보를 연관하여 저장함으로써 새로운 큐가 생성되더라도 기존의 큐와 새로운 큐를 연계하여 사용할 수 있도록 한다. In the present invention, each message is identified using the logical address information of the message, and the queue directory ID and the message logical address information are stored in association with each other so that the existing queue and the new queue can be used in association with the new queue.

라이터(202)에 의해 큐에 저장되는 메시지들은 각각 파일의 형태로 저장되며, 각 메시지 파일에는 고유의 논리 주소 정보가 부여된다. 논리 주소 정보는 메시지 처리 장치가 사용하는 운영 체제에 따라 달라질 수 있다. 예를 들어, UNIX 운영 체제가 사용되는 경우 논리 주소 정보는 아이노드(i-node)일 수 있으며, 윈도우 운영 체제가 사용되는 경우 논리 주소 정보는 FAT(File Allocation Table)일 수 있다. The messages stored in the queue by the writer 202 are each stored in the form of a file, and each message file is given unique logical address information. The logical address information may vary depending on the operating system used by the message processing device. For example, when the UNIX operating system is used, the logical address information may be an i-node, and when the Windows operating system is used, the logical address information may be a file allocation table (FAT).

예를 들어, 제1 큐(204)의 첫번째 큐 디렉토리(큐 디렉토리 아이디=1)에 특정 메시지 파일이 저장될 경우, 큐 디렉토리 아이디와 해당 메시지 파일의 논리 주소 정보가 연관하여 관리된다. For example, when a specific message file is stored in the first queue directory (queue directory ID = 1) of the first queue 204, the queue directory ID and logical address information of the corresponding message file are managed in association.

따라서, 본 발명에 의하면, 기존에 존재하는 제1 큐(204)에 저장 공간이 없을 경우, 제2 큐(206)를 동적으로 생성하여 제2 큐(206)에 메시지를 저장함으로써 큐의 용량 한계로 인해 발생하는 문제점을 해결할 수 있다.Therefore, according to the present invention, when there is no storage space in the existing first queue 204, the capacity limit of the queue is generated by dynamically generating the second queue 206 and storing the message in the second queue 206. You can solve the problem caused by.

도 2에는 메모리에 제2 큐(206)만이 추가적으로 생성되는 경우가 도시되어 있으나, 제2 큐의 용량이 차는 경우, 제2 큐와 같은 방식으로 또 다른 큐가 메모리에 동적으로 생성될 수 있다는 점은 당업자에게 있어 자명할 것이다. In FIG. 2, only the second queue 206 is additionally generated in the memory. However, when the capacity of the second queue is different, another queue may be dynamically generated in the memory in the same manner as the second queue. Will be apparent to those skilled in the art.

리더(210)는 제1 큐(204)로부터 메시지를 읽어오는 기능을 한다. 리더(210)는 FIFO(First Input First Output) 방식으로 메시지를 읽어온다. 리더(210)에서 읽어온 메시지는 다양한 방식으로 처리될 수 있다. The reader 210 functions to read a message from the first queue 204. The reader 210 reads a message in a FIFO (First Input First Output) manner. The message read from the reader 210 may be processed in various ways.

예를 들어, 리더(210)에서 읽어온 메시지에 대해 미리 설정된 비즈니스 로직 처리가 필요한 경우, 리더(210)는 읽어온 메시지를 핸들러(미도시)에 제공하여 메시지에 대한 비즈니스 로직이 처리되도록 할 수 있을 것이다. 여기서 비즈니스 로직은 메시지의 필터링 등을 포함할 수 있다. For example, when a predetermined business logic process is required for a message read from the reader 210, the reader 210 may provide a read message to a handler (not shown) so that the business logic for the message may be processed. There will be. In this case, the business logic may include filtering of a message.

또한, 메시지를 특정 서버로 전송할 필요가 있을 경우, 리더(210)에서 읽어온 메시지는 리더와 결합된 라이터(미도시)에 의해 해당 서버로 전송될 수 있을 것 이다. In addition, when a message needs to be transmitted to a specific server, the message read from the reader 210 may be transmitted to the corresponding server by a writer (not shown) coupled with the reader.

도 3은 본 발명의 다른 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치의 구성을 도시한 도면이다. 3 is a diagram illustrating a configuration of a message processing apparatus capable of expanding a queue capacity according to another embodiment of the present invention.

도 3을 참조하면, 본 발명의 다른 실시예에 따른 큐 용량 확장이 가능한 메시지 처리 장치는 리스너(200), 라이터(202), 제1 큐(204), 제2 큐(206), 디스크에 생성되는 제3 큐(208) 및 리더(210)를 포함할 수 있다. Referring to FIG. 3, a message processing apparatus capable of expanding a queue capacity according to another embodiment of the present invention may be created in a listener 200, a writer 202, a first queue 204, a second queue 206, and a disk. The third queue 208 and the reader 210 may be included.

도 2는 기존의 존재하는 제1 큐(204) 이외의 새로운 큐인 제2 큐(206)가 메모리에 생성되는 경우를 도시한 것이다. FIG. 2 illustrates a case where a second queue 206, which is a new queue other than the existing first queue 204, is created in the memory.

램이나 플래시 메모리와 같은 디지털 데이터 처리 장치의 메모리는 제한된 용량을 가지고 있으며, 새로운 큐를 생성할 정도의 메모리 여유 공간이 없을 수 있다. 본 발명의 바람직한 실시예에 따르면, 메모리에 새로운 큐를 생성할 수 있는 여유 공간이 없을 경우, 하드 디스크와 같은 디스크에 큐가 생성되도록 하며, 도 3은 디스크에 새로운 큐가 생성되는 경우를 도시한 것이다. 특히, 도 3은 제1 큐(204) 및 제2 큐(206)가 메모리에 형성된 상태에서 새로운 큐인 제3 큐(208)가 디스크에 형성되는 경우를 도시한 것이다. The memory of digital data processing devices, such as RAM and flash memory, has a limited capacity and may not have enough free memory to create new queues. According to a preferred embodiment of the present invention, when there is no free space for creating a new queue in the memory, the queue is created on a disk such as a hard disk, Figure 3 illustrates a case where a new queue is created on the disk will be. In particular, FIG. 3 illustrates a case where a third queue 208, which is a new queue, is formed on the disk while the first queue 204 and the second queue 206 are formed in the memory.

도 3에서, 리스너(200), 라이터(202) 및 리더(210)의 기능은 도 2와 동일하다. In FIG. 3, the functions of the listener 200, lighter 202 and reader 210 are the same as in FIG. 2.

제1 큐(204) 및 제2 큐(206)가 존재하는 상태에서, 라이터(202)는 메시지 저장 전에 제2 큐(206)의 큐 카운트 정보를 체크한다. 제2 큐(206)의 큐 카운트가 최대 큐 카운트와 같은 경우, 라이터(202)는 메모리의 잔여 공간을 체크한다. 메모리 에 새로운 큐를 생성할 정도의 잔여 공간이 없는 상태일 경우, 라이터(202)는 디스크에 제3 큐(208)를 생성한다. With the first queue 204 and the second queue 206 present, the writer 202 checks the queue count information of the second queue 206 before storing the message. If the queue count of the second queue 206 is equal to the maximum queue count, the writer 202 checks the remaining space of the memory. If there is no remaining space in the memory to create a new queue, the writer 202 creates a third queue 208 on the disk.

제 3큐(208)도, 전술한 제2 큐(206)와 같이, 제2 큐(206) 및 제1 큐(204)와 연계하여 동작한다. 제3 큐(208)가 생성되면, 라이터(202)는 리스너로부터 인입된 메시지를 제3 큐(208)에 저장한다. 제3 큐(208)에 리스너(202)로부터 인입된 메시지를 저장할 경우, 메모리에서 디스크로 메시지를 이동시키는 스왑-아웃(swap-out) 과정이 필요하다. The third queue 208 also operates in conjunction with the second queue 206 and the first queue 204, like the above-described second queue 206. When the third queue 208 is created, the writer 202 stores messages received from the listener in the third queue 208. When storing the message received from the listener 202 in the third queue 208, a swap-out process is required to move the message from memory to disk.

제3 큐(208)에 저장되는 메시지 파일에 대해서도 각 메시지 파일의 논리 주소 정보가 관리된다. 제3 큐(308)의 특정 큐 디렉토리에 메시지 파일이 저장될 경우, 해당 큐 디렉토리 아이디 및 이와 연관된 메시지 파일의 논리 주소 정보가 관리된다. Logical address information of each message file is also managed for the message file stored in the third queue 208. When a message file is stored in a specific queue directory of the third queue 308, the corresponding queue directory ID and logical address information of the associated message file are managed.

도 4는 인스턴트 메시지 또는 메일 메시지와 같은 네트워크를 통해 전송되는 메시지에 처리에 적용되는 본 발명의 일 실시예에 따른 메시지 처리 장치의 구성을 도시한 도면이다. 4 is a diagram illustrating a configuration of a message processing apparatus according to an embodiment of the present invention applied to processing on a message transmitted through a network such as an instant message or a mail message.

도 4에는 하나의 큐(400)만이 도시되어 있으나, 전술한 바와 같이, 본 발명에 의한 메시지 처리 장치의 큐는 인입되는 메시지의 수에 따라 동적으로 생성될 수 있다. Although only one queue 400 is shown in FIG. 4, as described above, the queue of the message processing apparatus according to the present invention may be dynamically generated according to the number of incoming messages.

본 발명에 의한 메시지 처리 장치가 네트워크를 통해 전송되는 메시지의 처리에 이용될 경우, 리더(406)에는 제2 리스너(408)가 결합될 수 있다. 또한 메시지 처리 장치에는 메시지에 대한 비즈니스 로직을 처리하기 위해 리더(410), 핸들 러(412) 및 라이터(414)가 구비되는 비즈니스 로직 처리 장치가 결합될 수 있다. When the message processing apparatus according to the present invention is used for processing a message transmitted through a network, a second listener 408 may be coupled to the reader 406. The message processing device may also be coupled to a business logic processing device having a reader 410, a handler 412, and a writer 414 to process the business logic for the message.

제2 리스너(408)는 리더에서 읽어온 메시지 패킷을 네트워크를 통해 연결되어 있는 비즈니스 로직 처리 장치의 리더(410)에 전송한다. 또한, 제2 리스너(408)는 비즈니스 로직 처리 장치의 리더(410)로부터 메시지 요청 정보가 전송될 경우 이를 리더(410)에 전달한다. The second listener 408 transmits the message packet read from the reader to the reader 410 of the business logic processing device connected through the network. In addition, the second listener 408 transmits the message request information to the reader 410 when the message request information is transmitted from the reader 410 of the business logic processing apparatus.

도 4는 메시지 처리 장치와 비즈니스 로직 처리 장치가 별도로 존재함으로써 효과적인 메시지 비즈니스 로직 처리를 도모하는 경우를 도시한 것이다. 4 illustrates a case where the message processing device and the business logic processing device exist separately, thereby facilitating effective message business logic processing.

비즈니스 로직 처리 장치의 리더(410)는 메시지 처리 장치의 제2 리스너(408)로부터 메시지 패킷을 수신하여 핸들러(412)에 전달하는 기능을 한다. The reader 410 of the business logic processing device functions to receive a message packet from the second listener 408 of the message processing device and deliver it to the handler 412.

핸들러(412)는 리더(410)로부터 메시지를 수신하며, 수신된 메시지에 대해 미리 설정된 비즈니스 로직 프로세스를 수행한다. 예를 들어, 비즈니스 로직은 금지된 메시지에 대한 필터링, 메시지의 우선 순위 설정, 메시지의 종류가 다양할 경우 메시지가 전달될 서버의 결정 등을 포함할 수 있다. 메시지의 종류는 다양할 수 있으며, 각 메시지마다 처리해야 할 로직에 대한 정보는 XML 문서 또는 테이블의 형태로 저장될 수 있고, 핸들러(412)는 메시지의 헤더 정보를 참조하여 메시지의 종류를 판단하고 XML 문서 또는 테이블 등을 참고하여 해당 비즈니스 로직 프로세스를 수행한다. The handler 412 receives a message from the reader 410 and performs a preset business logic process on the received message. For example, the business logic may include filtering for forbidden messages, prioritizing messages, and determining the server to which the message will be delivered if the message types vary. The type of message may vary, and information about logic to be processed for each message may be stored in the form of an XML document or a table, and the handler 412 may determine the type of the message by referring to the header information of the message. Perform business logic process referring to XML document or table.

라이터(414)는 핸들러(412)에 의해 비즈니스 로직이 수행된 메시지를 네트워크로 전달한다. 핸들러(412)에 의해 처리된 각 메시지에는 전달되어야 할 노드의 주소 정보가 포함되어 있으며, 라이터(414)는 해당 주소로 메시지를 전송한다. Writer 414 delivers the message to which the business logic has been performed by handler 412 to the network. Each message processed by the handler 412 includes address information of a node to be delivered, and the writer 414 transmits a message to the corresponding address.

도 5는 본 발명의 바람직한 일 실시예에 따른 새로운 큐의 생성 과정을 도시한 순서도이다. 5 is a flowchart illustrating a process of creating a new queue according to an exemplary embodiment of the present invention.

도 5를 참조하면, 우선 메시지 처리 장치의 리스너는 메시지를 수신하며, 수신된 메시지를 라이터에 전달한다(단계 500). Referring to FIG. 5, a listener of a message processing apparatus first receives a message and delivers the received message to a writer (step 500).

라이터는 메시지를 큐에 저장하기 전에 현재 형성되어 있는 제1 큐의 카운트 정보를 체크한다(단계 502). 큐에는 라이터로부터 제공되는 각각의 메시지를 저장하기 위한 디렉토리가 구비되어 있으며, 몇 개의 디렉토리에 메시지 파일이 저장되어 있는지를 체크하는 것이다. The writer checks the count information of the currently formed first queue before storing the message to the queue (step 502). The queue is provided with a directory for storing each message provided from the writer and checks how many directories the message file is stored in.

라이터는 큐의 카운트 정보를 체크한 후 큐 카운트 값이 최대 큐 카운트 값과 일치하는지 여부를 판단한다(단계 504). 즉, 큐의 모든 디렉토리에 메시지 파일이 저장되어 있는지 여부를 판단하는 것이다. The writer checks the count information of the queue and then determines whether the queue count value matches the maximum queue count value (step 504). That is, it is determined whether the message file is stored in all directories of the queue.

큐의 카운트 값이 최대 큐 카운트 값보다 작을 경우, 아직 큐에 메시지 파일을 저장할 수 있는 디렉토리가 존재하는 것이므로, 미리 형성되어 있는 제1 큐에 메시지 파일을 저장한다(단계 506). 제1 큐에 저장되는 메시지 파일에는 운영 체계에 의해 논리 주소 정보가 부여되며, 저장된 메시지 파일의 논리 주소 정보와 메시지 파일이 저장되는 큐 디렉토리 아이디가 연관하여 관리된다. 예를 들어, 32개의 디렉토리가 큐에 존재하고 메시지 파일이 31번째 큐 디렉토리에 저장되며, 메시지 파일에게 부여된 논리 주소 정보가 02173인 경우 31-02174 정보가 서로 연관하여 관리된다. If the count value of the queue is smaller than the maximum queue count value, the directory for storing the message file still exists in the queue, and thus the message file is stored in the first queue previously formed (step 506). The logical address information is given to the message file stored in the first queue by the operating system, and the logical address information of the stored message file and the queue directory ID in which the message file is stored are managed in association with each other. For example, if 32 directories exist in the queue, the message file is stored in the 31st queue directory, and the logical address information given to the message file is 02173, 31-02174 information is managed in association with each other.

큐의 카운트 값이 최대 큐 카운트 값과 일치할 경우, 제1 큐에 메시지 파일 을 저장할 수 있는 디렉토리가 존재하지 않는 것이므로, 새로운 큐인 제2 큐를 메모리에 생성한다(단계 508). If the count value of the queue matches the maximum queue count value, a directory for storing message files does not exist in the first queue, and thus a new queue, a second queue, is created in the memory (step 508).

새로 생성되는 제2 큐의 첫번째 디렉토리는 기존에 존재하는 제1 큐의 마지막 디렉토리와 연결되어야 한다. 즉, 리더의 출력에 의해, 제1 큐의 마지막 디렉토리에 저장된 메시지 파일이 다른 디렉토리에 저장될 경우, 제2 큐의 첫번째 디렉토리에 저장된 메시지 파일이 제1 큐의 마지막 디렉토리로 이동(메시지 파일의 물리적 이동이 아니라 큐의 각 디렉토리와 연관되는 메시지 파일의 논리 주소 정보가 변경되는 것임) 하여야 한다. 본 발명의 일 실시예에 따르면, 제1 큐에 저장된 데이터들이 이동될 때 제2 큐의 첫번째 디렉토리에 상응하는 데이터가 제1 큐의 마지막 디렉토리에 상응하도록 제1 큐와 제2 큐 사이의 관계를 설정하는 메타 데이터를 생성한다. 본 발명의 다른 실시예에 따르면, 제2 큐의 디렉토리 아이디가 제1 큐의 디렉토리 아이디와 순차적으로 연결되도록 제2 큐의 아이디를 부여할 수도 있을 것이다. 후자의 실시예는 제2 큐의 디렉토리 아이디를 별도로 부여하는 모듈을 필요로 하는 바, 전자의 실시예가 보다 바람직할 것이다. The first directory of the newly created second queue must be connected to the last directory of the existing first queue. That is, when the message file stored in the last directory of the first queue is stored in another directory by the output of the reader, the message file stored in the first directory of the second queue is moved to the last directory of the first queue (the physical of the message file Rather than move, the logical address information of the message file associated with each directory of the queue is changed. According to an embodiment of the present invention, when data stored in the first queue is moved, the relationship between the first queue and the second queue is established such that the data corresponding to the first directory of the second queue corresponds to the last directory of the first queue. Create metadata to set. According to another embodiment of the present invention, the ID of the second queue may be assigned such that the directory ID of the second queue is sequentially connected with the directory ID of the first queue. The latter embodiment requires a module to separately assign a directory ID of the second queue, and the former embodiment will be more preferable.

제2 큐가 생성되면, 라이터는 리스너로부터 제공받은 메시지를 제2 큐의 디렉토리에 저장한다(단계 510). When the second queue is created, the writer stores the message provided from the listener in a directory of the second queue (step 510).

도 6은 본 발명의 바람직한 일 실시예에 따른 복수의 큐가 형성된 상태에서 큐의 메시지가 출력되는 과정에 대한 순서도이다. 도 6은 제1 큐 및 제2 큐 두 개의 큐가 형성되어 있는 상태를 가정한 경우의 순서도이다. 6 is a flowchart illustrating a process of outputting a message of a queue in a state where a plurality of queues are formed according to an exemplary embodiment of the present invention. FIG. 6 is a flowchart illustrating a state in which two queues are formed, a first queue and a second queue.

제1 큐 및 제2 큐가 형성되어 있는 상태에서 제1 큐에 저장되어 있는 메시지 파일이 제2 큐보다 먼저 저장된 메시지 파일이므로 FIFO 원칙에 따라 리더는 제1 큐로부터 메시지 파일을 추출한다(단계 600). Since the message file stored in the first queue is the message file stored before the second queue in the state where the first queue and the second queue are formed, the reader extracts the message file from the first queue according to the FIFO principle (step 600). ).

제1 큐에서 메시지 파일이 추출될 경우, 제1 큐 및 제2 큐의 큐 디렉토리에 상응하는 메시지 파일의 논리 주소 정보가 변경된다(단계 602). 제1 큐의 첫번째 디렉토리에 상응하는 메시지 파일이 추출된 경우, FIFO 원칙에 따라 제1 큐의 두 번째 디레토리에 저장되었던 메시지 파일은 제1 큐의 첫번재 디렉토리에 저장된다(여기서, 메시지 파일의 물리적인 저장 장소가 바뀌는 것은 아니면, 각 디렉토리와 연관되는 메시지 파일의 논리 주소 정보가 변경되는 것임). 따라서, 첫 번재 디렉토리와 연관된 메시지 파일의 논리 주소 정보는 두번째 디렉토리와 연관되었던 메시지 파일의 논리 주소 정보로 변경된다. 특히, 제2 큐의 첫번째 디렉토리에 저장되었던 메시지 파일은 제1 큐의 마지막 디렉토리에 저장되며, 이는 전술한 바와 같이 제1 큐와 제2 큐와의 관계를 설정한 메타 데이터를 참조함으로써 가능하다. When the message file is extracted from the first queue, the logical address information of the message file corresponding to the queue directories of the first queue and the second queue is changed (step 602). When the message file corresponding to the first directory of the first queue is extracted, the message file that was stored in the second directory of the first queue according to FIFO principle is stored in the first directory of the first queue (where the physical of the message file If the storage location is not changed, the logical address information of the message file associated with each directory is changed). Thus, the logical address information of the message file associated with the first directory is changed to the logical address information of the message file associated with the second directory. In particular, the message file that was stored in the first directory of the second queue is stored in the last directory of the first queue, which is possible by referring to metadata that sets the relationship between the first queue and the second queue as described above.

제1 큐에서 메시지 파일이 추출되면, 제2 큐의 큐 카운트 정보를 체크한다(단계 604). 제2 큐의 큐 카운트가 0이 아닐 경우, 제2 큐에는 여전히 데이터가 저장되어 있는 상태인 바, 제2 큐는 유지된다(단계 606). When the message file is extracted from the first queue, the queue count information of the second queue is checked (step 604). If the queue count of the second queue is not zero, the second queue is still stored with data, so the second queue is maintained (step 606).

제2 큐에 큐 카운트가 0인 경우, 제2 큐에는 더 이상 데이터가 저장되어 있지 않은 상태이므로(제2 큐의 큐 디렉토리와 연관된 메시지 파일이 존재하지 않음), 제2 큐는 제거된다(단계 608). 물론 제1 큐가 오버플로우가 될 경우 제2 큐는 다시 생성될 수 있다. If the queue count is zero in the second queue, the second queue is no longer stored in data (there is no message file associated with the queue directory of the second queue), and the second queue is removed (step 608). Of course, when the first queue overflows, the second queue may be created again.

도 7은 본 발명의 다른 실시예에 따른 새로운 큐의 생성 과정을 도시한 순서 도이다. 7 is a flowchart illustrating a process of creating a new queue according to another embodiment of the present invention.

도 5는 메모리에 새로운 큐가 생성되는 경우를 도시한 것이며, 도 7은 메모리에 여유 공간이 없어 디스크에 새로운 큐가 생성되는 과정을 도시한 도면이다. 도 7에서, 메모리에 제1 큐 및 제2 큐가 미리 형성되어 있다는 점이 가정된다. FIG. 5 illustrates a case where a new queue is created in a memory, and FIG. 7 illustrates a process of creating a new queue on a disk because there is no free space in the memory. In FIG. 7, it is assumed that the first queue and the second queue are previously formed in the memory.

도 7를 참조하면, 우선 메시지 처리 장치의 리스너는 메시지를 수신하며, 수신된 메시지를 라이터에 전달한다(단계 700). Referring to FIG. 7, a listener of a message processing apparatus first receives a message and transmits the received message to a writer (step 700).

라이터는 메시지를 큐에 저장하기 전에 현재 형성되어 있는 제2 큐의 카운트 정보를 체크한다(단계 702). 전술한 바와 같이, 큐에는 라이터로부터 제공되는 각각의 메시지를 저장하기 위한 디렉토리가 구비되어 있으며, 몇 개의 디렉토리에 메시지 파일이 저장되어 있는지를 체크하는 것이다. The writer checks the count information of the currently formed second queue before storing the message to the queue (step 702). As described above, the queue is provided with a directory for storing each message provided from the writer and checks how many directories the message file is stored.

라이터는 제2 큐의 카운트 정보를 체크한 후 제2 큐의 큐 카운트 값이 최대 큐 카운트 값과 일치하는지 여부를 판단한다(단계 704). 즉, 큐의 모든 디렉토리에 메시지 파일이 저장되어 있는지 여부를 판단하는 것이다. The writer checks the count information of the second queue and then determines whether the queue count value of the second queue matches the maximum queue count value (step 704). That is, it is determined whether the message file is stored in all directories of the queue.

제2 큐의 카운트 값이 최대 큐 카운트 값보다 작을 경우, 아직 큐에 메시지 파일을 저장할 수 있는 디렉토리가 존재하는 것이므로, 미리 형성되어 있는 제2 큐에 메시지 파일을 저장한다(단계 706). If the count value of the second queue is smaller than the maximum queue count value, the directory for storing the message file still exists in the queue, and thus, the message file is stored in the previously formed second queue (step 706).

큐의 카운트 값이 최대 큐 카운트 값과 일치할 경우, 제2 큐에 메시지 파일을 저장할 수 있는 디렉토리가 존재하지 않는 것이며, 새로운 큐를 생성할 수 있는 여유 공간이 메모리에 존재하는지 여부를 체크한다(단계 708).If the count value of the queue matches the maximum queue count value, there is no directory for storing message files on the second queue, and it is checked whether there is free space in memory for creating a new queue ( Step 708).

새로운 큐를 생성할 수 있는 메모리 여유 공간이 충분한 경우, 라이터는 메 모리에 새로운 큐인 제3 큐를 생성한다(단계 712). 새로 생성되는 제3 큐의 첫번째 디렉토리 역시 기존에 존재하는 제2 큐의 마지막 디렉토리와 연결되어야 한다. 즉, 리더에서의 메시지 출력에 의해 제2 큐의 마지막 디렉토리에 저장된 메시지 파일이 다른 디렉토리로 이동될 경우(메시지 파일의 물리적 이동이 아니라 큐의 각 디렉토리와 연관되는 메시지 파일의 논리 주소 정보가 변경되는 것임), 제3 큐의 첫번째 디렉토리에 저장된 파일이 제2 큐의 마지막 디렉토리에 저장되어야 한다. 라이터는 메모리에 형성된 제3 큐에 메시지를 저장한다(단계 714). If there is enough free memory space to create a new queue, the writer creates a new queue in memory, a third queue (step 712). The first directory of the newly created third queue must also be connected to the last directory of the existing second queue. That is, when a message file stored in the last directory of the second queue is moved to another directory by the message output from the reader (the logical address information of the message file associated with each directory of the queue is changed, not the physical movement of the message file). File stored in the first directory of the third queue should be stored in the last directory of the second queue. The writer stores the message in a third queue formed in memory (step 714).

전술한 바와 같이, 본 발명의 일 실시예에 따르면, 제3 큐에 저장된 메시지 파일이 이동될 때 제3 큐의 첫번째 디렉토리에 상응하는 데이터가 제2 큐의 마지막 디렉토리에 상응하도록 제2 큐와 제3 큐 사이의 관계를 설정하는 메타 데이터를 이용할 수도 있으며, 제2 큐의 디렉토리 아이디 및 제3 큐의 디렉토리 아이디를 순차적으로 부여할 수도 있다. As described above, according to an embodiment of the present invention, when the message file stored in the third queue is moved, the second queue and the first queue correspond to the data corresponding to the first directory of the third queue corresponding to the last directory of the second queue. Meta data for establishing a relationship between the three queues may be used, and the directory ID of the second queue and the directory ID of the third queue may be sequentially assigned.

새로운 큐를 생성하는 메모리 여유 공간이 충분하지 않은 경우, 라이터는 디스크에 새로운 큐인 제3 큐를 생성한다(단계 716). 디스크에 생성되는 제3 큐 역시 메모리에 생성되는 제3 큐와 같이 제3 큐의 첫번재 디렉토리가 제2 큐의 마지막 디렉토리와 연관되어야 한다. If there is not enough free memory space to create a new queue, the writer creates a third queue, a new queue on disk (step 716). The third queue created on disk, like the third queue created in memory, must be associated with the first directory of the third queue with the last directory of the second queue.

디스크에 제3 큐가 형성된 경우, 라이터는 리스너로부터 전달될 메시지를 디스크에 형성된 제3 큐에 저장하며, 이를 위해 메모리에서 디스크로 메시지 파일이 이동하는 스왑-아웃(swap-out) 절차가 수행된다(단계 718). When a third queue is formed on the disk, the writer stores a message to be delivered from the listener in a third queue formed on the disk, and a swap-out procedure is performed in which a message file is moved from memory to disk. (Step 718).

도 8은 본 발명의 다른 실시예에 따른 복수의 큐가 형성된 상태에서 큐의 메 시지가 출력되는 과정에 대한 순서도이다. 도 8은 제1 큐 및 제2 큐가 메모리에 형성되어 있고 제3 큐가 디스크에 형성되어 있는 상태를 가정한 경우의 순서도이다. 8 is a flowchart illustrating a process of outputting a message of a queue in a state where a plurality of queues are formed according to another embodiment of the present invention. FIG. 8 is a flowchart in the case where the first queue and the second queue are formed in the memory and the third queue is formed in the disk.

제1 큐, 제2 큐 및 제3 큐가 형성되어 있는 상태에서 제1 큐에 저장되어 있는 메시지 파일이 제2 큐 및 제3 큐보다 먼저 저장된 메시지 파일이므로 FIFO 원칙에 따라 리더는 제1 큐로부터 메시지 파일을 추출한다(단계 800). In accordance with the FIFO principle, the reader is moved from the first queue because the message file stored in the first queue is the message file stored before the second queue and the third queue while the first queue, the second queue, and the third queue are formed. Extract the message file (step 800).

제1 큐에서 메시지 파일이 추출될 경우, 제1 큐, 제2 큐 및 제3 큐의 큐 디렉토리에 상응하는 메시지 파일의 논리 주소 정보가 변경된다(단계 602). 제1 큐의 첫번째 디렉토리에 상응하는 메시지 파일이 추출된 경우, FIFO 원칙에 따라 제1 큐의 두 번째 디레토리에 저장되었던 메시지 파일은 제1 큐의 첫번재 디렉토리에 저장된다(여기서, 메시지 파일의 물리적인 저장 장소가 바뀌는 것은 아니면, 각 디렉토리와 연관되는 메시지 파일이 변경되는 것이다). 따라서, 첫 번재 디렉토리와 연관된 메시지 파일의 논리 주소 정보는 두번째 디렉토리와 연관되었던 메시지 파일의 논리 주소 정보로 변경된다. 특히, 제2 큐의 첫번째 디렉토리에 저장되었던 메시지 파일은 제1 큐의 마지막 디렉토리에 저장된다. 제1 큐 및 제2 큐는 메모리에 형성된 큐이므로 각 큐 디렉토리에 상응하는 메시지 파일 논리 주소 정보만이 변경될 뿐 메시지 파일의 물리적인 저장 공간이 변경될 필요는 없다. 그러나, 디스크에 형성된 제3 큐에 저장된 메시지 파일은 제 2큐로 이동 시 디스크에서 메모리로 이동하는 것이 바람직하며, 이를 위해 디스크에 저장된 메시지 파일이 메모리로 이동하는 스왑-인(swap-in) 절차가 수행된다(단계 804). When the message file is extracted from the first queue, the logical address information of the message file corresponding to the queue directories of the first queue, the second queue, and the third queue is changed (step 602). When the message file corresponding to the first directory of the first queue is extracted, the message file that was stored in the second directory of the first queue according to FIFO principle is stored in the first directory of the first queue (where the physical of the message file If the storage location is not changed, the message file associated with each directory is changed). Thus, the logical address information of the message file associated with the first directory is changed to the logical address information of the message file associated with the second directory. In particular, message files that were stored in the first directory of the second queue are stored in the last directory of the first queue. Since the first queue and the second queue are queues formed in memory, only the message file logical address information corresponding to each queue directory is changed, and the physical storage space of the message file does not need to be changed. However, the message file stored in the third queue formed on the disk is preferably moved from the disk to the memory when moving to the second queue. For this purpose, a swap-in procedure is performed in which the message file stored on the disk is moved to the memory. Is performed (step 804).

제1 큐에서 메시지 파일이 추출되면, 라이터는 마지막 큐인 제3 큐의 큐 카 운트 정보를 체크한다(단계 806). 제3 큐의 큐 카운트가 0이 아닐 경우, 제3 큐에는 여전히 데이터가 저장되어 있는 상태인 바, 제3 큐는 유지된다(단계 808). When the message file is extracted from the first queue, the writer checks the queue count information of the third queue, which is the last queue (step 806). If the queue count of the third queue is not zero, the third queue is still stored with data, so the third queue is maintained (step 808).

제3 큐의 큐 카운트가 0인 경우, 제3 큐에는 더 이상 데이터가 저장되어 있지 않은 상태이므로(제3 큐의 큐 디렉토리와 연관된 메시지 파일이 존재하지 않음), 제3 큐는 제거된다(단계 810). If the queue count of the third queue is zero, since the data is no longer stored in the third queue (there is no message file associated with the queue directory of the third queue), the third queue is removed (step 810).

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

이상에서 설명한 바와 같이, 본 발명에 의한 큐 용량 확장 방법 및 큐 용량 확장이 가능한 메시지 처리 장치의 바람직한 실시예에 따르면, 메시지가 유입되는 정도에 따라 큐의 용량을 동적으로 확장할 수 있는 장점이 있다.As described above, according to the preferred embodiment of the queue capacity expansion method and the message processing apparatus capable of expanding the queue capacity according to the present invention, there is an advantage that the capacity of the queue can be dynamically expanded according to the degree of the message flow. .

또한, 본 발명에 의하면, 큐의 큐 디렉토리와 메시지의 논리 주소 정보를 연관시킴으로써 새로운 큐를 동적으로 생성하여 큐의 용량을 확장할 수 있으며, 복수의 큐를 사용할 수 있는 장점이 있다. According to the present invention, a new queue can be dynamically created by associating a queue directory of a queue with logical address information of a message, thereby expanding the capacity of the queue, and there is an advantage of using a plurality of queues.

Claims (19)

인입된 메시지를 수용할 수 있는 제1 큐의 여유 공간이 충분한지 여부를 판단하는 단계;Determining whether there is enough free space in the first queue to accommodate the incoming message; 상기 제1 큐의 여유 공간이 충분하지 않을 경우, 새로운 큐인 제2 큐를 생성하는 단계;If the free space of the first queue is not sufficient, creating a second queue, which is a new queue; 상기 생성된 제2 큐에 상기 인입된 메시지를 저장하는 단계를 포함하되,Storing the incoming message in the created second queue, 상기 제1 큐 및 제2 큐는 큐 디렉토리 아이디와 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보를 연관하여 관리하는 것을 특징으로 하는 큐 용량 확장 방법. And the first queue and the second queue associate and manage a queue directory ID and logical address information of a message corresponding to each queue directory. 제1항에 있어서,The method of claim 1, 상기 메시지의 논리 주소 정보는 아이-노드(i-node) 정보 및 FAT(File Allocation Table) 정보를 포함하는 것을 특징으로 하는 큐 용량 확장 방법. The logical address information of the message includes i-node information and file allocation table (FAT) information. 제1항에 있어서,The method of claim 1, 상기 제1 큐의 여유 공간이 충분하지 않을 경우,If there is not enough free space in the first queue, 새로운 큐를 생성할 수 있는 메모리 여유 공간이 충분한지 여부를 판단하는 단계를 더 포함하며, 메모리 여유 공간이 충분할 경우 상기 제2 큐는 메모리에 형성되며, 메모리의 여유 공간이 충분하지 않을 경우 상기 제2 큐는 디스크에 생성되 는 것을 특징으로 하는 큐 용량 확장 방법. And determining whether there is enough memory free space to create a new queue, wherein the second queue is formed in the memory when the free memory space is sufficient, and when the free space of the memory is not sufficient, the second queue is formed. 2 Queue is a queue capacity expansion method characterized in that it is created on the disk. 제1항에 있어서,The method of claim 1, 상기 제2 큐가 생성될 경우, 상기 제2 큐의 첫번째 큐 디렉토리가 상기 제1 큐의 마지막 큐 디렉토리와 순차적으로 연결되도록 하는 참조 정보를 제공하는 메타 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 큐 용량 확장 방법. When the second queue is created, generating metadata providing reference information for sequentially connecting the first queue directory of the second queue to the last queue directory of the first queue. How to increase queue depth. 제4항에 있어서,The method of claim 4, wherein 상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경되며, 상기 메타 데이터를 참조하여 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 상기 제1 큐의 마지막 큐 디렉토리에 상응하도록 변경되는 것을 특징으로 하는 큐 용량 확장 방법. When a message stored in the first queue is outputted, logical address information of a message corresponding to each queue directory of the first queue and the second queue is changed, and the first queue directory of the second queue with reference to the metadata. And the logical address information of the message corresponding to is changed to correspond to the last queue directory of the first queue. 제1항에 있어서,The method of claim 1, 상기 제1 큐 및 상기 제2 큐의 큐 디렉토리들의 아이디는 정수이며, 상기 제2 큐의 큐 디렉토리들의 아이디는 상기 제1 큐의 큐 디렉토리 아이디와 순차적으로 연결되도록 부여되며, 상기 제1 큐에 저장된 메시지가 출력될 경우, 제1 큐 및 제2 큐의 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 순차적으로 시프팅되는 것을 특징으로 하는 큐 용량 확장 방법. IDs of the queue directories of the first queue and the second queue are integers, and IDs of the queue directories of the second queue are assigned to be sequentially connected with the queue directory ID of the first queue, and stored in the first queue. When the message is output, the logical address information of the message corresponding to the queue directory of the first queue and the second queue is sequentially shifted. 제1항에 있어서,The method of claim 1, 상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제2 큐의 큐 카운트 정보를 체크하는 단계를 더 포함하며, 상기 제2 큐의 큐 카운트가 0일 경우 상기 제2 큐를 제거하는 것을 특징으로 하는 큐 용량 확장 방법. And checking the queue count information of the second queue when the message stored in the first queue is output, and removing the second queue when the queue count of the second queue is zero. How to increase queue depth. 제3항에 있어서,The method of claim 3, 상기 디스크에 상기 제2 큐가 생성될 경우, 상기 메모리에 저장된 메시지를 상기 디스크로 이동시키는 스왑-아웃(swap-out) 절차가 수행되는 것을 특징으로 하는 큐 용량 확장 방법. And when the second queue is created on the disk, a swap-out procedure for moving a message stored in the memory to the disk is performed. 제3항에 있어서,The method of claim 3, 상기 제2 큐가 디스크에 생성될 경우, 상기 제2 큐의 첫번째 큐 디렉토리가 상기 제1 큐의 마지막 디렉토리와 순차적으로 연결되도록 하는 참조 정보를 제공하는 메타 데이터를 생성하는 단계를 더 포함하고,When the second queue is created on disk, generating metadata providing reference information for sequentially connecting the first queue directory of the second queue to the last directory of the first queue, 상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경되며, 상기 메타 데이터를 참조하여 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 상기 제1 큐의 마지막 큐 디렉토리에 상응하도록 변경하되,When a message stored in the first queue is outputted, logical address information of a message corresponding to each queue directory of the first queue and the second queue is changed, and the first queue directory of the second queue with reference to the metadata. Change the logical address information of the message corresponding to the corresponding to the last queue directory of the first queue, 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지에 대해 상기 디스크에 서 상기 메모리로 이동시키는 스왑-인(swap-in) 절차가 수행되는 것을 특징으로 하는 큐 용량 확장 방법. And a swap-in procedure for moving a message from the disk to the memory for a message corresponding to the first queue directory of the second queue. 메시지 전달 여부를 모니터링하고 전달된 메시지를 수신하는 리스너;A listener for monitoring message delivery and receiving the message; 상기 리스너로부터 메시지를 기록하는 라이터;A writer for recording a message from the listener; 상기 라이터에 의해 기록되는 메시지를 저장하는 제1 큐;A first queue storing a message recorded by the writer; 상기 큐에 저장된 메시지를 추출하는 리더를 포함하되,A reader for extracting the message stored in the queue, 상기 라이터는 상기 메시지를 상기 제1 큐에 저장하기 전 제1 큐에 상기 메시지를 저장할 수 있는 여유 공간이 충분한지 여부를 판단하며, 여유 공간이 충분하지 않을 경우 새로운 큐인 제2 큐를 생성하며, 상기 제1 큐 및 제2 큐는 큐 디렉토리 아이디와 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보를 연관하여 관리하는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. The writer determines whether there is enough free space in the first queue to store the message before storing the message in the first queue, and if there is not enough free space, creates a new queue, a second queue. And the first queue and the second queue associate and manage a queue directory ID and logical address information of a message corresponding to each queue directory. 제10항에 있어서, The method of claim 10, 상기 메시지의 논리 주소 정보는 아이-노드(i-node) 정보 및 FAT(File Allocation Table) 정보를 포함하는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. And the logical address information of the message includes i-node information and file allocation table (FAT) information. 제10항에 있어서,The method of claim 10, 상기 제2 큐가 생성될 경우, 상기 제2 큐의 첫번째 큐 디렉토리가 상기 제1 큐의 마지막 큐 디렉토리와 순차적으로 연결되도록 하는 참조 정보를 제공하는 메타 데이터가 생성되는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. When the second queue is created, meta data providing reference information for sequentially connecting the first queue directory of the second queue to the last queue directory of the first queue is generated. Possible message processing unit. 제12항에 있어서,The method of claim 12, 상기 제1 큐에 저장된 메시지가 상기 리더에 의해 출력될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경되며, 상기 메타 데이터를 참조하여 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 상기 제1 큐의 마지막 큐 디렉토리에 상응하도록 변경되는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. When a message stored in the first queue is output by the reader, logical address information of a message corresponding to each queue directory of the first queue and the second queue is changed, and the second queue is referred to by referring to the metadata. And the logical address information of the message corresponding to the first queue directory of the first queue directory is changed to correspond to the last queue directory of the first queue. 제10항에 있어서,The method of claim 10, 상기 제1 큐 및 상기 제2 큐의 큐 디렉토리들의 아이디를 정수로 부여하되, 상기 제2 큐의 큐 디렉토리들의 아이디는 상기 제1 큐의 큐 디렉토리 아이디와 순차적으로 연결되도록 부여하는 아이디 할당 모듈을 더 포함하되, An ID assignment module is provided to assign IDs of the queue directories of the first queue and the second queue to integers, and the IDs of the queue directories of the second queue are sequentially connected to the queue directory IDs of the first queue. Including, 상기 제1 큐에 저장된 메시지가 출력될 경우, 제1 큐 및 제2 큐의 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 순차적으로 시프팅되는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. And when the messages stored in the first queue are output, logical address information of the messages corresponding to the queue directories of the first queue and the second queue are sequentially shifted. 제10항에 있어서,The method of claim 10, 상기 라이터는 상기 제1 큐에 저장된 메시지가 출력될 경우, 상기 제2 큐의 큐 카운트 정보를 체크하며, 상기 제2 큐의 큐 카운트가 0일 경우 상기 제2 큐를 제거하는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치 .The writer checks the queue count information of the second queue when a message stored in the first queue is output, and removes the second queue when the queue count of the second queue is 0. Expandable message processing unit. 제10항에 있어서,The method of claim 10, 상기 라이터는 상기 제2 큐 생성 시 새로운 큐를 생성할 수 있는 메모리 여유 공간이 충분한지 여부를 판단하며, 메모리 여유 공간이 충분할 경우 상기 제2 큐를 메모리에 형성되며, 메모리의 여유 공간이 충분하지 않을 경우 상기 제2 큐를 디스크에 생성하는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. The writer determines whether there is sufficient memory free space to create a new queue when the second queue is created, and if the free memory space is sufficient, the second queue is formed in the memory, and the free space of the memory is insufficient. Otherwise, the second queue is created on a disk. 제16항에 있어서,The method of claim 16, 상기 디스크에 상기 제2 큐가 생성될 경우, 상기 라이터는 상기 메모리에 저장된 메시지를 상기 디스크로 이동시키는 스왑-아웃(swap-out)을 수행하는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. And when the second queue is created on the disk, the writer performs a swap-out for moving a message stored in the memory to the disk. 제13항에 있어서,The method of claim 13, 상기 라이터는 상기 제2 큐 생성 시 새로운 큐를 생성할 수 있는 메모리 여유 공간이 충분한지 여부를 판단하며, 메모리 여유 공간이 충분할 경우 상기 제2 큐를 메모리에 형성하고, 메모리의 여유 공간이 충분하지 않을 경우 상기 제2 큐를 디스크에 생성하며,The writer determines whether there is sufficient memory free space to create a new queue when the second queue is created. If the free memory space is sufficient, the writer forms the second queue in the memory, and the free space of the memory is insufficient. Otherwise create the second queue on disk, 상기 디스크에 상기 제2 큐가 생성될 경우, 상기 제1 큐 및 제2 큐의 각 큐 디렉토리에 상응하는 메시지의 논리 주소 정보가 변경될 때, 상기 제2 큐의 첫번째 큐 디렉토리에 상응하는 메시지는 상기 디스크에서 상기 메모리로 스왑-인(swap-in)되는 것을 특징으로 하는 큐 용량 확장이 가능한 메시지 처리 장치. When the second queue is created on the disk, when the logical address information of the message corresponding to each queue directory of the first queue and the second queue is changed, the message corresponding to the first queue directory of the second queue is changed. And a swap capacity in the disk from the disk to the memory. 제1항 내지 제9항 중 어느 한 항의 방법이 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체. A recording medium on which a program of instructions capable of executing the method of any one of claims 1 to 9 is tangibly embodied and which records a program which can be read by a digital processing apparatus.
KR1020060039034A 2006-04-28 2006-04-28 Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity KR100836621B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060039034A KR100836621B1 (en) 2006-04-28 2006-04-28 Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060039034A KR100836621B1 (en) 2006-04-28 2006-04-28 Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity

Publications (2)

Publication Number Publication Date
KR20070106317A true KR20070106317A (en) 2007-11-01
KR100836621B1 KR100836621B1 (en) 2008-06-10

Family

ID=39062324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060039034A KR100836621B1 (en) 2006-04-28 2006-04-28 Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity

Country Status (1)

Country Link
KR (1) KR100836621B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138868A (en) * 2021-04-28 2021-07-20 北京沃东天骏信息技术有限公司 Message processing method and device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100248083B1 (en) * 1997-10-15 2000-03-15 서정욱 Method for managing variable-length messages in circular queue
JP3288312B2 (en) 1998-10-02 2002-06-04 エヌイーシーアクセステクニカ株式会社 LAN connection device with buffer capacity control function
KR20020055115A (en) * 2000-12-28 2002-07-08 엘지전자 주식회사 Method for management sequential index by using virtual queue in memory of limited queue structure
KR100448071B1 (en) * 2002-03-14 2004-09-10 한국과학기술원 Apparatus for controlling buffer memory in computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138868A (en) * 2021-04-28 2021-07-20 北京沃东天骏信息技术有限公司 Message processing method and device
CN113138868B (en) * 2021-04-28 2024-04-05 北京沃东天骏信息技术有限公司 Message processing method and device

Also Published As

Publication number Publication date
KR100836621B1 (en) 2008-06-10

Similar Documents

Publication Publication Date Title
CN111555963B (en) Message pushing method and device, electronic equipment and storage medium
KR101745456B1 (en) Ecu for transmitting large data in hil test environment, system including the same and method thereof
CN107911249B (en) Method, device and equipment for sending command line of network equipment
EP2306322A1 (en) Method for processing data packets in flow-aware network nodes
JP2003229907A (en) Method and apparatus to reassemble data blocks within network processor
CN111177017B (en) Memory allocation method and device
CN106951183A (en) A kind of web camera date storage method of high efficient and reliable
CN116340055A (en) Data recovery method and system for solid state disk
CN107181773A (en) Data storage and data managing method, the equipment of distributed memory system
CN106453663B (en) Improved storage expansion method and device based on cloud service
KR100836621B1 (en) Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity
CN114124844A (en) Data processing method and system
CN111367916B (en) Data storage method and device
CN103092768A (en) Method and device of data processing in application system
CN111414339A (en) File processing method, system, device, equipment and medium
CN112269763A (en) File aggregation method and related device
CN110196786B (en) Method and equipment for controlling memory in database rollback synchronization
JP6378044B2 (en) Data processing apparatus, data processing method and program
CN106293996A (en) Method of data synchronization, main equipment, alternate device and system
CN108090087B (en) File processing method and device
CN112395296B (en) Big data archiving method, device, equipment and storage medium
CN113032414B (en) Data management method, device, system, computing equipment and storage medium
CN111061719B (en) Data collection method, device, equipment and storage medium
CN114089912A (en) Data processing method and device based on message middleware and storage medium
CN114138371A (en) Configuration dynamic loading method and device, computer equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110414

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 12