JP2008009797A - Uninterruptible memory replication method - Google Patents

Uninterruptible memory replication method Download PDF

Info

Publication number
JP2008009797A
JP2008009797A JP2006180657A JP2006180657A JP2008009797A JP 2008009797 A JP2008009797 A JP 2008009797A JP 2006180657 A JP2006180657 A JP 2006180657A JP 2006180657 A JP2006180657 A JP 2006180657A JP 2008009797 A JP2008009797 A JP 2008009797A
Authority
JP
Japan
Prior art keywords
call processing
memory
thread
data
hot standby
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2006180657A
Other languages
Japanese (ja)
Inventor
Ryotaro Matsushita
亮太郎 松下
Takashi Sawada
孝 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006180657A priority Critical patent/JP2008009797A/en
Publication of JP2008009797A publication Critical patent/JP2008009797A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method not to interrupt a call processing service even during data transfer processing about an uninterruptible memory replication method. <P>SOLUTION: In a server for performing a call processing service of an active/hot standby configuration, an active system for memory replication divides a call processing process into a thread for call processing service and a thread for memory transfer, respectively allocates the threads to different CPUs, and transfers copy data of a memory asynchronously with committing memory contents of the call processing service to a hot standby system without interrupting all call processing services including a call for committing the memory contents and performing memory transfer, and the hot standby system starts a data reception thread started from a call processing process in a standby state so as to rearrange the copy data of the memory transferred form the active system in an actual data area. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は無中断レプリケーション方法に関する。ここで、レプリケーションとはデータの複製を得ることをいう。   The present invention relates to an uninterrupted replication method. Here, replication refers to obtaining a copy of data.

サーバベースの呼処理サーバでは、セッション(呼)情報をメモリ上のデータとして保持しており、Active/Hot−Stanby(アクティブ/ホットスタンバイ)系サーバ間で、系切り替え(スイッチオーバ)した際に呼を救済するためにはアクティブ/ホットスタンバイサーバ間のデータ転送が必要であった。この転送処理は、転送量が膨大なため、呼処理性能を阻害する要因になっていた。   A server-based call processing server stores session (call) information as data on a memory, and is called when a system is switched (switched over) between Active / Hot-Standby (active / hot standby) servers. In order to remedy this, data transfer between the active / hot standby servers is necessary. This transfer processing has been a factor that hinders call processing performance due to the huge amount of transfer.

近年、サーバのマルチCPU化や、CPUのマルチコア化が進み、1サーバ内で複数のCPUコアが利用できるようになり、そのCPUの使い方で、これまで課題となっていた性能阻害の問題を解決する手段がとれるようになってきている。   In recent years, with the progress of multi-CPU servers and multi-core CPUs, it has become possible to use multiple CPU cores within a single server. It is becoming possible to take measures.

図10は本発明の対象となるシステム構成例示す図である。図において、10は呼処理サーバであり、アクティブ系とホットスタンバイ系に分かれている。#1がアクティブ系、#2がホットスタンバイ系であるものとする。呼処理サーバ10において、1は論理メモリ空間、2は呼処理プロセスである。3は呼処理プロセス2内に設けられたスレッド(処理単位)である。ホットスタンバイ系サーバ10において、4はCPUであり呼処理プロセス2内のスレッド3と接続されている。   FIG. 10 is a diagram showing a system configuration example that is an object of the present invention. In the figure, reference numeral 10 denotes a call processing server, which is divided into an active system and a hot standby system. Assume that # 1 is an active system and # 2 is a hot standby system. In the call processing server 10, 1 is a logical memory space, and 2 is a call processing process. Reference numeral 3 denotes a thread (processing unit) provided in the call processing process 2. In the hot standby server 10, 4 is a CPU and is connected to the thread 3 in the call processing process 2.

6はアクティブ系の呼処理サーバ10内に設けられた複数のCPUである。ここでは、CPU4としてCPU1〜CPU4まで設けられた場合を示す。各CPU6は呼処理プロセス2内のスレッド3と接続されており、それぞれのCPUに対して複数のスレッドの組が設けられている。5は呼処理サーバ10と外部を接続するためのNIC(Network Interface Card)であり、それぞれLAN(Local Area Network)15と接続されている。そして、呼処理サーバ#1と呼処理サーバ#2とはLAN20を介してデータ通信を行なっている。   Reference numeral 6 denotes a plurality of CPUs provided in the active call processing server 10. Here, the case where CPU1 to CPU4 are provided as CPU4 is shown. Each CPU 6 is connected to a thread 3 in the call processing process 2, and a set of a plurality of threads is provided for each CPU. Reference numeral 5 denotes a NIC (Network Interface Card) for connecting the call processing server 10 to the outside, and is connected to a LAN (Local Area Network) 15. The call processing server # 1 and the call processing server # 2 perform data communication via the LAN 20.

呼処理サーバ10は、VoIP(音声処理)やTV(テレビ)電話の分野で使用されるSIP(Session Initiation Protocol:IP電話等で用いる通信制御プロトコル)等のセッション(呼)を確立することで、End−to−Endの間でのリアルタイム通信を成立させるためのサーバである。   The call processing server 10 establishes a session (call) such as SIP (Session Initiation Protocol) used in the field of VoIP (voice processing) and TV (television) telephone, etc. This is a server for establishing real-time communication between End-to-End.

呼処理サーバ10では、呼を管理する呼処理プロセスが動作しており、呼処理プロセスはOS(オペレーティングシステム)等のスレッドスケジューラにより複数のCPUのどれかに割り付けられる複数のスレッドから構成されるマルチスレッド構成のプロセスである。同一プロセス上のスレッドからは、同一の論理メモリ空間が参照できる。   In the call processing server 10, a call processing process for managing calls is operating, and the call processing process is a multi-thread configured by a plurality of threads allocated to any one of a plurality of CPUs by a thread scheduler such as an OS (operating system). It is a thread configuration process. The same logical memory space can be referenced from threads on the same process.

呼処理サーバ10は、アクティブ系とホットスタンバイ系の二重化構成をしており、サーバのNICを経由してLAN15で接続されている。ホットスタンバイ側では、同一ハードウェア構成で同じ呼処理プロセスが動作して、スイッチオーバを契機にすぐに呼処理を動作させることが可能である。呼処理プロセスから参照できる論理メモリ空間1はアクティブ系とサイズ・構成が共通である。   The call processing server 10 has a dual configuration of an active system and a hot standby system, and is connected by a LAN 15 via a server NIC. On the hot standby side, the same call processing process operates with the same hardware configuration, and the call processing can be started immediately upon a switchover. The logical memory space 1 that can be referenced from the call processing process has the same size and configuration as the active system.

図11はサーバ上に分散するメモリエリアの説明図である。呼はいくつかの機能、例えば排他制御、呼制御、プロトコル制御、サービスシナリオから構成されている。そして、その機能オブジェクト毎に、呼に関連付けられた呼関連データというデータエリアを持っている。データエリアは、図11に示すように各機能毎に局在化した構成をしている方法と、呼単位に連続したエリアを捕捉する方法もある。図において、プログラムエリアはプログラムが動作するための領域であり、呼関連データエリアは、排他制御の呼関連データエリア、呼制御の呼関連データエリア、サービスシナリオの呼関連データエリア、プロトコル制御の呼関連データエリアに分かれている。即ち、各機能の呼関連データは、機能毎に局在化している。図の17はインスタンスが使用する呼関連データを示す。   FIG. 11 is an explanatory diagram of memory areas distributed on the server. A call is composed of several functions such as exclusive control, call control, protocol control, and service scenario. Each functional object has a data area called call-related data associated with a call. As shown in FIG. 11, there are a method in which the data area is localized for each function as shown in FIG. In the figure, a program area is an area for a program to operate, and a call related data area is an exclusive control call related data area, a call control call related data area, a service scenario call related data area, and a protocol controlled call. Divided into related data areas. That is, call-related data for each function is localized for each function. 17 of the figure shows call related data used by the instance.

図12は呼処理サーバのブートフローを示す図である。先ず、アクティブ系サーバの動作について説明する。先ず、サーバ電源を投入すると(S1)、OSを起動する(S2)。次に、クラスタミドルを起動する(S3)。ここで、クラスタミドルとは系を切り替え制御するためのミドルウェアである。ミドルウェアとは、OSとアプリケーションとを橋渡しするものである。   FIG. 12 is a diagram showing a boot flow of the call processing server. First, the operation of the active server will be described. First, when the server power is turned on (S1), the OS is started (S2). Next, the cluster middle is activated (S3). Here, the cluster middle is middleware for switching and controlling the system. Middleware is a bridge between an OS and an application.

この後、系決定する(S4)。ここでは、アクティブ系に決定される。次に、アプリケーションを起動し(S5)、呼処理サービスを開始する(S6)。ここで、サービス開始時に周辺機器に新アクティブ系活性化の通知(アドレステーブルの書き換え等の依頼)を行なう。その後、リンク確立待ちとなる(S7)。   Thereafter, the system is determined (S4). Here, the active system is determined. Next, the application is activated (S5), and a call processing service is started (S6). Here, at the start of the service, the peripheral device is notified of activation of the new active system (request for rewriting of the address table). Thereafter, the link establishment is waited (S7).

次に、ホットスタンバイ系サーバの動作について説明する。先ずサーバ電源が投入される(S8)。次に、OSが起動される(S9)。次に、クラスタミドルが起動される(S10)。その後に系が決定される(S11)。ここでは、ホットスタンバイ系となる。次に、アプリケーションが起動され(S12)、リンク確立待ちとなる(S13)。   Next, the operation of the hot standby server will be described. First, the server power is turned on (S8). Next, the OS is activated (S9). Next, the cluster middle is activated (S10). Thereafter, the system is determined (S11). Here, it becomes a hot standby system. Next, the application is activated (S12) and waits for link establishment (S13).

以上の動作の後、アクティブ系サーバとホットスタンバイサーバとの間にリンクが確立する(S14)。リンクが確立したら、アクティブ系からホットスタンバイ系メモリに全面コピー処理がなされる(S15)。以上のシーケンスで系の切り替え動作は終了する。次に、アクティブ系からホットスタンバイ系へ呼毎のメモリコピーが行われる(S16)。   After the above operation, a link is established between the active server and the hot standby server (S14). When the link is established, full copy processing is performed from the active system to the hot standby system memory (S15). The system switching operation ends with the above sequence. Next, a memory copy is performed for each call from the active system to the hot standby system (S16).

図13は呼処理サーバのスイッチオーバフローを示す図である。アクティブ系サーバとホットスタンバイ系サーバの動作を示している。先ず、アクティブ系からホットスタンバイ系へ呼毎メモリコピー中である(S1)。ここで、アクティブ系で異常を検出する(S2)。異常検出後の動作(すぐにサーバ切り替えを行なうか、自系で一度呼救済再開を行なうか、受付中のイベントは処理するか、廃棄するか等)は実装依存である。   FIG. 13 is a diagram showing switch overflow of the call processing server. The operations of the active server and the hot standby server are shown. First, the memory for each call is being copied from the active system to the hot standby system (S1). Here, an abnormality is detected in the active system (S2). The operation after detecting an abnormality (whether the server is switched immediately, the call rescue is restarted once in the own system, the accepted event is processed, or discarded) is implementation-dependent.

異常を検出すると、アクティブ系サーバはホットスタンバイ系サーバに対して切り替え開始通知を出す(S3)。ホットスタンバイ系(新アクティブ系サーバ)は、ホットスタンバイからアクティブ系へ状態を変更する(S4)。そして、アプリケーションを起動し(S5)、リンク確立待ちとなる(S6)。異常を検出したアクティブ系(新ホットスタンバイ系)では、OSを再起動する(S7)。以下、リンク確立待ちまでは図12に示したホットスタンバイ系ブート処理フローと同じである。新ホットスタンバイ系では、リンク確立待ちとなる(S8)。   When an abnormality is detected, the active server issues a switch start notification to the hot standby server (S3). The hot standby system (new active server) changes the state from the hot standby to the active system (S4). Then, the application is activated (S5) and waits for link establishment (S6). In the active system (new hot standby system) in which the abnormality is detected, the OS is restarted (S7). Hereinafter, the process until the link establishment wait is the same as the hot standby system boot process flow shown in FIG. The new hot standby system waits for link establishment (S8).

この状態でリンクが確立すると(S9)、アクティブ系からホットスタンバイ系へのメモリ全面コピー動作が行われる(S10)。以上でスイッチオーバフロー処理が完了する。次に、アクティブ系からホットスタンバイ系への呼毎メモリコピー動作が開始される(S11)。   When a link is established in this state (S9), a full memory copy operation from the active system to the hot standby system is performed (S10). This completes the switch overflow process. Next, a memory copy operation for each call from the active system to the hot standby system is started (S11).

従来のこの種装置としては、呼制御系装置と、被制御系装置間の信号送受信状態を管理し、ヘルスチェック信号若しくは呼処理信号の送受信が行えなくなった場合に、障害箇所が呼制御装置側にあるのか、被制御系装置側にあるのかの障害箇所の特定を行ない、同一呼制御系装置が複数の被制御系装置を制御している場合に、他の被制御系装置との信号送受信状態を確認することで、切り分けを行なうようにした技術が知られている(例えば特許文献1参照)。
特開2003−78567号公報(段落0012〜0018、図1〜図3)
This type of conventional device manages the signal transmission / reception status between the call control system device and the controlled system device, and when the health check signal or call processing signal cannot be transmitted / received, the failure point is on the call control device side. If the same call control system device controls multiple controlled system devices, the signal transmission / reception with other controlled system devices is performed. A technique is known in which the state is checked to perform the separation (see, for example, Patent Document 1).
JP 2003-78567 A (paragraphs 0012 to 0018, FIGS. 1 to 3)

従来の局用交換機では、アクティブ/ホットスタンバイ構成のハードウェア二重化方式を採用し、アクティブ/ホットスタンバイ間の二重化方式として、ハードウェアによるDMA転送方式で実現している。これにより、アクティブ/ホットスタンバイ系切り替えが発生しても、メモリの両系で常に同じ内容が維持され、途中まで進んでいた呼を救済し、処理を継続することができる。   The conventional office switch employs a hardware duplication system having an active / hot standby configuration, and is realized by a hardware DMA transfer system as a duplication system between active / hot standby. As a result, even if active / hot standby system switching occurs, the same contents are always maintained in both memory systems, and calls that have progressed halfway can be relieved and processing can be continued.

しかしながら、汎用サーバを用いたSIPサーバ等の呼処理サーバでアクティブ系/ホットスタンバイ系のスイッチオーバ時に呼救済を実現するためには、クラスタシステムのアクティブ/ホットスタンバイサーバ間でNICを介したデータ転送によるメモリ二重化の実現が必要である。   However, in order to realize call relief at the time of an active / hot standby switchover in a call processing server such as a SIP server using a general-purpose server, data transfer via an NIC between active / hot standby servers in a cluster system It is necessary to realize memory duplication by.

NICを介して全ての生成・変更・削除されたデータをホットスタンバイ系に転送する機能を呼処理を行なうスレッドと同一スレッド上で行なうと、マルチスレッド・マルチCPU上での処理でも呼処理に利用するCPUの一つを占有してしまうため、呼処理サービスを中断し、阻害することになる。   If the function to transfer all generated / changed / deleted data via the NIC to the hot standby system is performed on the same thread as the thread that performs the call processing, the processing on the multi-thread / multi-CPU is also used for the call processing. Since this occupies one of the CPUs, the call processing service is interrupted and hindered.

図14は従来の問題点の説明図である。呼処理スレッド1があるものとして、同一スレッド上でホットスタンバイ系サーバへ転送処理を行なうと、この間は呼処理スレッド1が転送処理のために食われてしまい、他の待ちキューに入った呼処理スレッドも動作できないという問題がある。   FIG. 14 is an explanatory diagram of conventional problems. If there is a call processing thread 1 and transfer processing is performed to the hot standby server on the same thread, the call processing thread 1 is eaten up for transfer processing during this time, and call processing that has entered another waiting queue There is a problem that threads cannot work.

本発明はこのような課題に鑑みてなされたものであって、データ転送処理中も呼処理サービスを中断する必要がない無中断メモリレプリケーション方法を提供することを目的としている。   The present invention has been made in view of such problems, and an object of the present invention is to provide an uninterrupted memory replication method that does not require interruption of a call processing service even during data transfer processing.

(1)請求項1記載の発明は、アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、メモリレプリケーションのためにアクティブ系では呼処理プロセスを、呼処理サービスを行なうスレッドとメモリの転送を行なうスレッドに分け、それぞれを別のCPUに割り付け、メモリ内容のコミットを行ないメモリ転送を行なう呼を含めた全ての呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機とは非同期にメモリのコピーデータを転送し、またホットスタンバイ系では、ホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系サーバから転送されたメモリのコピーデータを実際のデータエリアに再配置する、ようにしたことを特徴とする。   (1) According to the first aspect of the present invention, in a server that performs a call processing service in an active / hot standby configuration, a call processing process is performed in an active system for memory replication, and a thread that performs the call processing service and a memory are transferred. Trigger the memory contents of the call processing service to the hot standby system without interrupting all the call processing services including calls that are divided into threads, assigned to different CPUs, commit the memory contents, and perform memory transfers In the hot standby system, the data reception thread started from the call processing process in the hot standby state is activated to actually copy the memory copy data transferred from the active server. Relocation to the data area of And wherein the door.

(2)請求項2記載の発明は、アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、メモリレプリケーションのためにアクティブ系では呼処理プロセスを呼処理サービスを行なうスレッドと、メモリのコピーを行なうスレッドと、メモリの転送を行なうスレッドに分け、それぞれを別のCPUに割り付けることで、メモリ内容のコミットを行ない、メモリ転送を行なう呼を除いた呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機と同期してメモリのコピーを転送し、また、ホットスタンバイ系ではホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系から転送されたメモリのコピーデータを実際のデータエリアに再配置する、ようにしたことを特徴とする。   (2) According to the second aspect of the present invention, in the server that performs the call processing service in the active / hot standby configuration, in the active system, for the memory replication, the call processing process is performed in the active system, and the memory is copied. It is divided into a thread and a thread that performs memory transfer, and each is assigned to a different CPU, so that the memory contents are committed, and the call processing service except for calls that perform memory transfer is not interrupted. The memory copy is transferred in synchronization with the commit timing of the memory contents of the call processing service. In the hot standby system, the data reception thread started from the call processing process in the hot standby state is started and transferred from the active system. Copied data in the actual data area Rearranging, as is characterized in that the.

(3)請求項3記載の発明は、アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、アクティブ系サーバからのデータを受信したホットスタンバイ系サーバにて、ホットスタンバイ状態の呼処理プロセスからデータ受信スレッドとコピーデータ再配置スレッドを起動し、少なくともデータ受信スレッドを再配置スレッドとは別のCPUに割り付けることで、アクティブ系から転送されたメモリのコピーデータを一旦バッファにコピーし、キューイングした後で実際のデータエリアに再配置する、ようにしたことを特徴とする。   (3) The invention according to claim 3 is the server that performs the call processing service in the active / hot standby configuration, and the hot standby server that has received the data from the active server receives the data from the call processing process in the hot standby state. The reception thread and the copy data relocation thread are activated, and at least the data reception thread is assigned to a CPU different from the relocation thread, so that the copy data of the memory transferred from the active system is temporarily copied to the buffer and queued. It is characterized in that it is rearranged in the actual data area later.

(4)請求項4記載の発明は、前記メモリのコピーを行なうスレッドを起動する際に、固定のCPUに割り付けるのではなく、データ転送スレッドに割り付けたCPUを除くいずれかのCPUの内、基もCPU使用率の低いCPUを検索し、そのCPUへ割り付けることを特徴とする。   (4) According to the invention of claim 4, when starting a thread that performs copying of the memory, it is not assigned to a fixed CPU, but is based on any of the CPUs other than the CPU assigned to the data transfer thread. Also, a CPU having a low CPU usage rate is searched and assigned to the CPU.

(1)請求項1記載の発明によれば、呼処理とデータ転送の2つのスレッドに分けることで、ネットワークをまたいだサーバ間の転送遅延に影響なく、呼処理が続けられるようになる。   (1) According to the first aspect of the present invention, the call processing can be continued without affecting the transfer delay between servers across the network by dividing the call processing and data transfer into two threads.

(2)請求項2記載の発明によれば、呼処理とデータコピーとデータ転送という3つのスレッドに分け、データコピー中は呼処理を停止することになるが、更に遅延が大きいサーバ間転送には影響を受けず、呼処理が続けられるようになる。この発明によれば、継続する呼処理の中でメモリの内容が書き換わっても、既にコピーが別のバッファに取り込まれているので、影響を受けることがない。   (2) According to the invention described in claim 2, the call processing, data copy, and data transfer are divided into three threads, and the call processing is stopped during the data copy. Will be unaffected and call processing will continue. According to the present invention, even if the contents of the memory are rewritten during the continuous call processing, the copy is already taken into another buffer, so that it is not affected.

(3)請求項3記載の発明によれば、ホットスタンバイ側にて受信データの不完全性を排除することが可能となる。
(4)請求項4記載の発明によれば、請求項2のデータコピー処理の割り付けCPUを固定としないで空きCPUに割り付け、データ転送に比較して処理時間が短いコピー処理に1CPUを占有させずに呼処理の空き時間を利用させることでCPUを有効活用し、呼処理性能を向上させることができる。
(3) According to the invention described in claim 3, it is possible to eliminate incompleteness of received data on the hot standby side.
(4) According to the invention described in claim 4, the CPU for allocating data copy processing according to claim 2 is allocated to an empty CPU without being fixed, and one CPU is occupied for copy processing with a processing time shorter than that for data transfer. Without using the call processing idle time, the CPU can be used effectively and the call processing performance can be improved.

以下、図面を参照して本発明の実施の形態例を詳細に説明する。以下に示す本発明は、図10に示したシステム構成で動作するものである。
図1は第1の発明の構成例を示す図である。図10と同一のものは、同一の符号を付して示す。図において、10はサーバであり、#1がアクティブ系の呼処理サーバであるアクティブ系サーバ、#2がホットスタンバイ系の呼処理サーバであるホットスタンバイ系サーバである。6はアクティブ系サーバ10内に設けられたCPUである。ここでは、CPU1とCPU2が設けられている場合を示す。4はホットスタンバイ系サーバ10内に設けられたCPUである。図では、1個しか示していないが、必要に応じて複数のCPU4を設けることができる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The present invention described below operates with the system configuration shown in FIG.
FIG. 1 is a diagram showing a configuration example of the first invention. The same components as those in FIG. 10 are denoted by the same reference numerals. In the figure, 10 is a server, # 1 is an active server that is an active call processing server, and # 2 is a hot standby server that is a hot standby call processing server. Reference numeral 6 denotes a CPU provided in the active server 10. Here, the case where CPU1 and CPU2 are provided is shown. Reference numeral 4 denotes a CPU provided in the hot standby server 10. Although only one is shown in the figure, a plurality of CPUs 4 can be provided as necessary.

アクティブ系サーバ10側において、スレッドは呼処理を行なうスレッド(スレッド1,スレッド2)と、データ転送を行なうスレッドに分かれている。呼処理スレッド1と2はCPU2が担当し、データ転送スレッドはCPU1が担当する。ホットスタンバイ系サーバ10側では、データ受信スレッドがデータ受信処理用として動作し、具体的にはCPU4が担当する。アクティブ系サーバ10においてデータ転送スレッドは、NIC5とLAN15を介してホットスタンバイ系サーバ10と接続される(図10参照)。このように構成されたシステムの動作を説明すれば、以下の通りである。   On the active server 10 side, the threads are divided into threads that perform call processing (thread 1 and thread 2) and threads that perform data transfer. The CPU 2 is in charge of the call processing threads 1 and 2, and the CPU 1 is in charge of the data transfer thread. On the hot standby server 10 side, the data reception thread operates for data reception processing, and specifically, the CPU 4 is in charge. In the active server 10, the data transfer thread is connected to the hot standby server 10 via the NIC 5 and the LAN 15 (see FIG. 10). The operation of the system configured as described above will be described as follows.

アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバ10において、メモリレプリケーションのためにアクティブ系では呼処理プロセスを、呼処理サービスを行なうスレッド(呼処理スレッド)とメモリの転送を行なうスレッド(データ転送スレッド)に分ける。そして、それぞれを別のCPUに割り付ける。ここで、OSやミドルウェアの機能として、1プロセス内の任意のスレッドを固定のCPUに割り付けることが可能であることが前提である。   In the server 10 that performs the call processing service in the active / hot standby configuration, for memory replication, the call processing process in the active system is divided into a thread that performs the call processing service (call processing thread) and a thread that transfers the memory (data transfer thread). ). Each is assigned to another CPU. Here, it is assumed that an arbitrary thread in one process can be allocated to a fixed CPU as a function of the OS or middleware.

図1を見ると明らかなように、データ転送スレッドはCPU1に割り当てられ、呼処理スレッドはCPU2に割り当てられている。呼処理スレッドとデータ転送スレッドに分け、それぞれを別のCPUに割り付けることで、メモリ内容のコミット(確定)を行ない、メモリ転送を行なう呼を含めた全ての呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機とは非同期にメモリのコピーデータを転送し、またホットスタンバイ系ではホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系から転送されたメモリのコピーデータを実際のデータエリアに再配置するようにしている。ここで、図に示すように、呼処理スレッド1がデータ転送を行なっている区間(ΔT)でメモリが書き換わる可能性がないことが前提となる。なぜなら、この期間Δで転送処理中にデータが書き換わってはアクティブ系とホットスタンバイ系のデータの同一性が損なわれてしまうからである。   As is apparent from FIG. 1, the data transfer thread is assigned to CPU 1 and the call processing thread is assigned to CPU 2. By dividing each call processing thread and data transfer thread into different CPUs, the memory contents are committed (confirmed), and all call processing services including calls that perform memory transfer are performed without interruption. The copy data of the memory is transferred to the standby system asynchronously with the commit timing of the memory contents of the call processing service. On the hot standby system, the data reception thread started from the call processing process in the hot standby state is started to activate the active system. The copy data of the memory transferred from is transferred to the actual data area. Here, as shown in the figure, it is assumed that there is no possibility that the memory is rewritten in the section (ΔT) in which the call processing thread 1 performs data transfer. This is because if the data is rewritten during the transfer process during this period Δ, the identity of the active system and the hot standby system is lost.

このように、この実施の形態例によれば、呼処理スレッドを呼処理とデータ転送の2つのスレッドに分けることで、ネットワークをまたいだサーバ間の転送遅延に影響なく、呼処理が続けられるようになる。   As described above, according to this embodiment, by dividing the call processing thread into two threads of call processing and data transfer, call processing can be continued without affecting the transfer delay between servers across the network. become.

図2は第2の発明の構成例を示す図である。図10と同一のものは、同一の符号を付して示す。図において、10はアクティブ系サーバであり、CPU6はCPU1〜CPU3までの3個設けた場合を示している。呼処理スレッド1と呼処理スレッド2はCPU3に割り当てられ、転送データコピースレッドはCPU2に割り当てられ、データ転送スレッドはCPU1に割り当てられている。このように構成されたシステムの動作を説明すれば、以下の通りである。   FIG. 2 is a diagram showing a configuration example of the second invention. The same components as those in FIG. 10 are denoted by the same reference numerals. In the figure, reference numeral 10 denotes an active server, and the CPU 6 shows a case where three CPUs 1 to 3 are provided. The call processing thread 1 and the call processing thread 2 are assigned to the CPU 3, the transfer data copy thread is assigned to the CPU 2, and the data transfer thread is assigned to the CPU 1. The operation of the system configured as described above will be described as follows.

アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバ10において、メモリレプリケーションのためにアクティブ系では、呼処理プロセスを呼処理サービスを行なうスレッド(呼処理スレッド)と、メモリのコピーを行なうスレッド(転送データコピースレッド)と、メモリの転送を行なうスレッド(データ転送スレッド)に分け、それぞれを別のCPUに割り付けている。   In the server 10 that performs a call processing service in an active / hot standby configuration, in an active system for memory replication, a thread that performs a call processing service for a call processing process (call processing thread) and a thread that performs a memory copy (transfer data) A copy thread) and a memory transfer thread (data transfer thread), which are allocated to different CPUs.

このようにすることで、メモリ内容のコミットを行ない、メモリ転送を行なう呼を除いた呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機と同期してメモリのコピーを転送し、またホットスタンバイ系では、ホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系から転送されたメモリのコピーデータを実際のデータエリアに再配置するようになっている。   In this way, the memory contents are committed in synchronization with the commit timing of the memory contents of the call processing service in the hot standby system without interrupting the call processing service except for the call for performing the memory transfer. The copy is transferred, and in the hot standby system, the data reception thread activated from the call processing process in the hot standby state is activated, and the memory copy data transferred from the active system is relocated to the actual data area. It has become.

このように、この実施の形態例によれば、呼処理とデータコピーとデータ転送という3つのスレッドに分け、データコピー中は呼処理を停止することになるが、更に遅延が大きいサーバ間転送には影響を受けず、呼処理が続けられるようになる。この実施の形態例によれば、継続する呼処理の中でメモリの内容が書き換わっても、既に転送データコピースレッドによりコピーが別のバッファに取り込まれているので、影響を受けることはない。   As described above, according to this embodiment, the call processing, data copying, and data transfer are divided into three threads, and the call processing is stopped during the data copying. Will be unaffected and call processing will continue. According to this embodiment, even if the contents of the memory are rewritten during the continuous call processing, the copy is already taken into another buffer by the transfer data copy thread, so that it is not affected.

図3は第3の発明の構成例を示す図で、ホットスタンバイ側の構成を示している。図10と同一のものは、同一の符号を付して示す。図において、10はホットスタンバイ側のサーバであり、中にCPU4が含まれている。このCPU4としては、CPU1とCPU2が設けられている。データ受信スレッドはCPU1に割り当てられ、コピーデータ再配置スレッドはCPU2に割り当てられている。このように構成されたシステムの動作を説明すれば、以下の通りである。   FIG. 3 is a diagram showing a configuration example of the third aspect of the invention, and shows a configuration on the hot standby side. The same components as those in FIG. 10 are denoted by the same reference numerals. In the figure, reference numeral 10 denotes a server on the hot standby side, which includes a CPU 4. As this CPU 4, CPU1 and CPU2 are provided. The data reception thread is assigned to CPU 1 and the copy data rearrangement thread is assigned to CPU 2. The operation of the system configured as described above will be described as follows.

アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、先の第1の発明、第2の発明のアクティブ系からのデータを受信したホットスタンバイ系にて、ホットスタンバイ状態の呼処理プロセスからデータ受信スレッドとコピーデータ再配置スレッドを起動して、少なくともデータ受信スレッドを再配置スレッドとは別のCPUに割り付ける。   In the server that performs the call processing service in the active / hot standby configuration, the data is received from the call processing process in the hot standby state in the hot standby system that has received the data from the active system of the first invention and the second invention. The thread and the copy data rearrangement thread are activated, and at least the data reception thread is allocated to a CPU different from the rearrangement thread.

このようにすることで、アクティブ系から転送されたメモリのコピーデータを一旦バッファにコピーし、キューイングした後で実際のデータエリアに再配置するものである。もし、受信中のデータが本来のデータ長受信できなかった場合には、受信中のデータを破棄することで、異常・不十分なデータを再配置することを防止するものである。   By doing this, the copy data of the memory transferred from the active system is temporarily copied to the buffer, and after queuing, it is rearranged in the actual data area. If the data being received cannot receive the original data length, the data being received is discarded to prevent rearrangement of abnormal / insufficient data.

この実施の形態例によれば、ホットスタンバイ側にて受信データの不完全性を排除することが可能となる。
図4は第4の発明の構成例を示す図で、アクティブ系サーバの動作を示している。図10と同一のものは、同一の符号を付して示す。図において、10はアクティブ系サーバ、6は該アクティブ系サーバ10内に設けられたCPUである。図では、CPUが3個設けられた例を示している。ここで、CPU1はデータ転送スレッド、CPU2は呼処理スレッドである。CPUiは使用率の低いCPUである。このように構成されたシステムの動作を説明すれば、以下の通りである。
According to this embodiment, incompleteness of received data can be eliminated on the hot standby side.
FIG. 4 is a diagram showing a configuration example of the fourth invention, showing the operation of the active server. The same components as those in FIG. 10 are denoted by the same reference numerals. In the figure, 10 is an active server, and 6 is a CPU provided in the active server 10. In the figure, an example in which three CPUs are provided is shown. Here, CPU1 is a data transfer thread, and CPU2 is a call processing thread. CPUi is a CPU with a low usage rate. The operation of the system configured as described above will be described as follows.

前述した第2の発明において、転送データをコピーする転送データコピースレッドを割り当てるCPUを、固定のCPUに割り付けるのではなく、データ転送スレッドに割り付けられたCPUを除く何れかのCPUの内、最もCPU使用率の低いCPUを呼処理スレッドが検索し、そのCPU(ここではCPUi)へ割り付ける。このようにすれば、コピー処理に専有化させずにCPUリソースを有効に活用することができる。   In the second invention described above, the CPU to which a transfer data copy thread for copying transfer data is assigned is not assigned to a fixed CPU, but the CPU that is the most CPU of any one except for the CPU assigned to the data transfer thread. The call processing thread searches for a CPU with a low usage rate and assigns it to that CPU (here, CPUi). In this way, CPU resources can be effectively used without being exclusively used for copy processing.

この実施の形態例によれば、請求項2のデータコピー処理の割り付けCPUを固定しないで、空きCPUに割り付け、データ転送に比較して処理時間が短いコピー処理1CPUを専有させずに呼処理の空き時間を利用させることでCPUを有効活用し、呼処理性能を向上させることができる。   According to this embodiment, the allocation CPU of the data copy process according to claim 2 is not fixed, but is allocated to an empty CPU, and the copy process 1 CPU whose processing time is shorter than that of data transfer is not occupied. By utilizing the idle time, the CPU can be used effectively and the call processing performance can be improved.

図5は第1の発明の動作フローを示す図である。図10と同一のものは、同一の符号を付して示す。先ずアクティブ系サーバ10における呼処理スレッド側動作について説明する。スレッドがCPUに割り当てられた状態で、呼に関するデータを書き換えて、メモリをホットスタンバイ系に転送する契機に達した場合(S1)、転送するデータのアドレスリストを作成する(S2)。ここで、アドレスリストとは、機能部IDとアドレスとデータ長(レングス)のセットが複数組み合わされたリストのことである。次に、データ転送スレッドのキュー(転送キュー)20に転送を指示する(S3)。その後、呼処理を継続する動作となる(S4)。   FIG. 5 is a diagram showing an operation flow of the first invention. The same components as those in FIG. 10 are denoted by the same reference numerals. First, the call processing thread side operation in the active server 10 will be described. When the thread is assigned to the CPU and the call-related data is rewritten and the memory is transferred to the hot standby system (S1), an address list of the data to be transferred is created (S2). Here, the address list is a list in which a plurality of sets of functional unit IDs, addresses, and data lengths (lengths) are combined. Next, the data transfer thread queue (transfer queue) 20 is instructed to transfer (S3). Thereafter, the call processing is continued (S4).

次に、データ転送スレッド側の動作について説明する。データ転送側スレッドは、周期的に転送キュー20からアドレスリストを取り出す(S5)。そして、取り出したアドレスリストの先頭に転送先のサーバ名とファイルの版数をつけてホットスタンバイ系に送付する(S6)。次に、アドレスリストの先頭から、指定されたアドレスからデータ長分をホットスタンバイ系に送付する(S7)。ここで、データを転送する場合にメモリからデータを読み出して転送する。次に、所定の個数分回ったかどうかチェックする(S8)。ここで、個数分回ったとは転送キュー20に順番待ちされているアドレスリストの個数である。回った場合には、ステップS5に戻ってキューからのアドレスリスト取り出し動作を行なう。回っていない場合には、ステップS7に戻り、データの送付を行なう。   Next, the operation on the data transfer thread side will be described. The data transfer side thread periodically takes out the address list from the transfer queue 20 (S5). Then, the server name of the transfer destination and the file version number are added to the head of the extracted address list and sent to the hot standby system (S6). Next, the data length from the designated address is sent to the hot standby system from the top of the address list (S7). Here, when data is transferred, the data is read from the memory and transferred. Next, it is checked whether or not the predetermined number of turns has been made (S8). Here, “turned by the number” means the number of address lists waiting in turn in the transfer queue 20. If it has been rotated, the process returns to step S5 to perform an address list extraction operation from the queue. If not, the process returns to step S7 to send data.

次にホットスタンバイ系サーバの動作について説明する。前述の転送先サーバ名とファイルの版数及びデータは、LAN15(図10参照)経由でホットスタンバイ系に送信され、受信キュー21にてキューイングされる。データ受信スレッドは、周期的にキューからデータを取り出し(S9)、リストの先頭が見つかったかどうかチェックする(S10)。見つからない場合には、ステップS9に戻る。見つかった場合には、転送先サーバ名とファイルバージョンが合っているかどうかチェックする(S11)。合っていない場合には、ステップS9に戻り、キューからのデータ取り出し動作を行なう。   Next, the operation of the hot standby server will be described. The transfer destination server name, the file version number, and the data are transmitted to the hot standby system via the LAN 15 (see FIG. 10) and are queued in the reception queue 21. The data receiving thread periodically retrieves data from the queue (S9) and checks whether the head of the list is found (S10). If not found, the process returns to step S9. If found, it is checked whether the transfer destination server name matches the file version (S11). If they do not match, the process returns to step S9, and the data is extracted from the queue.

合っていた場合には、アドレスリストのデータ長分を再配置アドレスにコピーし(S12)、個数分アドレスリストを取り出す(S13)。次に、所定の個数分回ったかどういかチェックし(S14)、回っていない場合にはステップS12に戻りアドレスリストを取り出し、回っている場合には、ステップS9に戻る。   If they match, the data length of the address list is copied to the relocation address (S12), and the address list for the number is taken out (S13). Next, it is checked whether or not the predetermined number has been rotated (S14). If not, the process returns to step S12 to take out the address list, and if it has been rotated, the process returns to step S9.

図7は第2の発明のアクティブ系サーバ側の動作フローを示す図である。図10と同一のものは、同一の符号を付して示す。先ず、呼処理スレッド側の動作について説明する。スレッドがCPUに割り当てられた状態で、呼に関するデータを書き換えて、メモリをホットスタンバイ系に転送する契機に達した場合(S1)、転送するデータのアドレスリストを作成する(S2)。ここで、アドレスリストは、機能部IDとアドレスとデータ長のセットが複数組み合わされたリストである。次に、転送データコピースレッドにコピーを指示する(S3)。その後、呼処理中断してスリープする(S4)。   FIG. 7 is a diagram showing an operation flow on the active server side of the second invention. The same components as those in FIG. 10 are denoted by the same reference numerals. First, the operation on the call processing thread side will be described. When the thread is assigned to the CPU and the call-related data is rewritten and the memory is transferred to the hot standby system (S1), an address list of the data to be transferred is created (S2). Here, the address list is a list in which a plurality of sets of functional unit IDs, addresses, and data lengths are combined. Next, the transfer data copy thread is instructed to copy (S3). Thereafter, the call processing is interrupted and sleeps (S4).

次に、転送データコピースレッド側動作について説明する。呼処理スレッド側からコピー指示を受けたら、指示を契機にアドレスリストを取り出す(S5)。次に、アドレスリストの先頭から、指定されたアドレスからデータ長分をメモリ転送用バッファにコピーする(S6)。次に、個数分回ったかどうかチェックする(S7)。回っていない場合にはステップS6に戻りコピー動作を行なう。   Next, the operation on the transfer data copy thread side will be described. When a copy instruction is received from the call processing thread side, an address list is taken out in response to the instruction (S5). Next, the data length from the designated address is copied to the memory transfer buffer from the top of the address list (S6). Next, it is checked whether or not the number has been turned (S7). If not, the process returns to step S6 to perform the copy operation.

個数分回った場合には、メモリ転送用バッファを転送キュー20にキューイングする(S8)。そして、コピー処理の終了を呼処理スレッド側に通知する(S9)。呼処理スレッドは、この通知を受けると、呼処理を継続する(S10)。   If the number of rotations has been reached, the memory transfer buffer is queued in the transfer queue 20 (S8). Then, the end of the copy process is notified to the call processing thread side (S9). Upon receiving this notification, the call processing thread continues the call processing (S10).

次に、データ転送スレッド側動作について説明する。データ転送スレッドでは、周期的に転送キュー20からメモリ転送用バッファを取り出し(S11)、取り出したメモリ転送用バッファの先頭に転送先のサーバ名とファイルの版数を付けてホットスタンバイ系に送付する(S12)。ホットスタンバイ系側の動作は、図5の第1の発明の場合と同じである。   Next, the data transfer thread side operation will be described. The data transfer thread periodically fetches the memory transfer buffer from the transfer queue 20 (S11), adds the server name of the transfer destination and the file version number to the head of the fetched memory transfer buffer, and sends them to the hot standby system. (S12). The operation on the hot standby system side is the same as that of the first invention of FIG.

図8は第3の発明のホットスタンバイ系サーバ側の動作フローを示す図である。図5、図10と同一のものは同一の符号を付して示す。先ず、データ受信スレッド側の動作について説明する。LAN15経由でアクティブ系サーバからデータが送られてくると、受信キュー21にデータが溜まる。データ受信スレッドは、周期的に受信キュー21からデータを取り出す(S1)。   FIG. 8 is a diagram showing an operation flow on the hot standby server side according to the third aspect of the invention. 5 and 10 are denoted by the same reference numerals. First, the operation on the data reception thread side will be described. When data is sent from the active server via the LAN 15, the data is accumulated in the reception queue 21. The data reception thread periodically retrieves data from the reception queue 21 (S1).

次に、リストの先頭を見つけたかどうかチェックする(S2)。リストの先頭を見つけられない場合にはステップS1に戻り、キューからのデータ取り出しを行なう。リストの先頭を見つけた場合には、ファイルバージョンが合っているかどうかチェックする(S3)。合っていない場合には、ステップS1に戻る。ファイルバージョンが合っている場合は、受信キュー21に待っている個数分アドレスリストを取り出す(S4)。そして、アドレスリストのデータ長分を再配置バッファにキューイングする(S6)。この結果、再配置キュー22にアドレスリストのデータ長がキューイングされる。データ受信スレッド側では、はじめに戻る(S7)。   Next, it is checked whether the head of the list has been found (S2). If the head of the list cannot be found, the process returns to step S1 to retrieve data from the queue. When the head of the list is found, it is checked whether the file version is correct (S3). If not, the process returns to step S1. If the file versions are correct, the address list corresponding to the number waiting in the reception queue 21 is taken out (S4). Then, the data length of the address list is queued in the rearrangement buffer (S6). As a result, the data length of the address list is queued in the relocation queue 22. The data reception thread side returns to the beginning (S7).

次に、データ再配置スレッド側の動作について説明する。周期的に再配置キュー22からデータを取り出し(S9)、アドレスリストのデータ長分を再配置アドレスにコピーする(S9)。そして、再配置キュー22に待っている個数分回ったかどうかチェックする(S10)。回っていない場合には、ステップS9に戻りコピー動作を行なう。回っている場合には、ステップS8に戻り、再配置キュー22からのデータ取り出しを行なう。   Next, the operation on the data rearrangement thread side will be described. Periodically, data is taken out from the relocation queue 22 (S9), and the data length of the address list is copied to the relocation address (S9). Then, it is checked whether or not the number of waiting in the rearrangement queue 22 has been reached (S10). If not, the process returns to step S9 to perform the copy operation. If it is rotating, the process returns to step S8, and data is extracted from the rearrangement queue 22.

図9は第4の発明のアクティブ系サーバ側の動作フローを示す図である。図5、図10と同一のものは、同一の符号を付して示す。先ず、呼処理スレッド側動作について説明する。スレッドがCPUに割り当てられた状態で、呼に関するデータを書き換えて、メモリをホットスタンバイ系に転送する契機に達したものとする(S1)。この時、転送するデータのアドレスリストを作成する。ここで、アドレスリストは、機能部IDと、アドレスと、データ長のセットが組み合わされたリストである。   FIG. 9 is a diagram showing an operation flow on the active server side of the fourth invention. The same components as those in FIGS. 5 and 10 are denoted by the same reference numerals. First, the call processing thread side operation will be described. It is assumed that when the thread is assigned to the CPU, the call-related data is rewritten and the opportunity to transfer the memory to the hot standby system is reached (S1). At this time, an address list of data to be transferred is created. Here, the address list is a list in which a function unit ID, an address, and a set of data length are combined.

次に、CPU使用率の低いCPUを検索し、そのCPUに転送データコピースレッドを割り付ける(S3)。次に、転送データコピースレッドにコピーを指示する(S4)。その後、呼処理を中断してスリープ状態に入る(S5)。   Next, a CPU having a low CPU usage rate is searched, and a transfer data copy thread is assigned to the CPU (S3). Next, the transfer data copy thread is instructed to copy (S4). Thereafter, the call processing is interrupted and a sleep state is entered (S5).

次に、転送データコピースレッド側動作について説明する。呼処理スレッド側からのコピー指示を受けると、この指示を契機にアドレスリストを取り出し(S6)、アドレスリストの先頭から、指定されたアドレスからデータ長分をメモリ転送用バッファにコピーする(S7)。そして、アドレスリストの個数が所定数だけ回ったかどうかチェックする(S8)。   Next, the operation on the transfer data copy thread side will be described. Upon receiving a copy instruction from the call processing thread, the address list is taken out in response to this instruction (S6), and the data length from the designated address is copied to the memory transfer buffer from the head of the address list (S7). . Then, it is checked whether or not the number of address lists has been rotated by a predetermined number (S8).

所定数だけ回っていない場合には、ステップS7に戻りコピー動作を行なう。所定数だけ回っている場合には、メモリ転送用バッファを転送キュー20にキューイングする(S9)。そして、コピー処理の終了を呼処理スレッド側に通知する(S10)。呼処理スレッド側では、呼処理を継続する(S11)。   If the predetermined number of times has not been turned, the process returns to step S7 to perform a copy operation. If the predetermined number of turns, the memory transfer buffer is queued in the transfer queue 20 (S9). Then, the end of the copy process is notified to the call processing thread side (S10). On the call processing thread side, call processing is continued (S11).

次に、データ転送スレッド側の動作について説明する。周期的に転送キュー20からメモリ転送用バッファを取り出し(S12)、取り出したメモリ転送用バッファの先頭に転送先のサーバ名とファイルの版数を付けてホットスタンバイ系に送付する(S13)。データはLAN15経由でホットスタンバイ系サーバの受信キューに送信される。   Next, the operation on the data transfer thread side will be described. The memory transfer buffer is periodically taken out from the transfer queue 20 (S12), the transfer destination server name and the file version number are added to the head of the taken out memory transfer buffer and sent to the hot standby system (S13). The data is transmitted to the reception queue of the hot standby server via the LAN 15.

従来の技術では、CPU毎に担当する機能が割り当てられておらず、転送処理は呼処理の中に埋め込まれていたため、転送タイミング毎に呼処理スレッドの動作が阻害される原因となっていた。本発明では、
サーバ間のデータ転送時間>>メモリのコピー処理時間>スレッドの切り替え時間
の関係にあることに着目し、この転送速度やコピー処理時間による影響を呼処理スレッドと切り離すこと、及びI/O中の呼処理スレッドをスリープさせ、他の呼処理スレッドにCPUを利用させることで、CPUのI/Oによる占有時間を減らして有効活用することかできる。
In the conventional technique, the function in charge for each CPU is not assigned, and the transfer process is embedded in the call process. This causes the operation of the call processing thread to be inhibited at each transfer timing. In the present invention,
Paying attention to the relationship between data transfer time between servers >> memory copy processing time> thread switching time, the effect of this transfer speed and copy processing time is separated from the call processing thread, and during I / O By making the call processing thread sleep and causing the other call processing threads to use the CPU, it is possible to reduce the occupied time by the I / O of the CPU and effectively use it.

以上のように、本発明ではCPUの使用効率を上げることで、ハードウェアあたりの呼処理性能を向上させ、コストダウンにつなげることができる。本発明は、既存の1CPUで構成されていた交換機のような専用ハードウェア上のソフトウェアをサーバにポーティング(なるべく手を加えないで交換機を汎用サーバに載せ換えること)する際に非常に有効な手法である。   As described above, according to the present invention, it is possible to improve the call processing performance per hardware and reduce the cost by increasing the use efficiency of the CPU. The present invention is a very effective method for porting software on dedicated hardware such as an exchange configured with one existing CPU to a server (changing the exchange to a general-purpose server without changing as much as possible). It is.

以上、詳細に説明したように、本発明によれば、データ転送処理中も呼処理サービスを中断する必要がない無中断メモリレプリケーション方法を提供することができる。   As described above in detail, according to the present invention, it is possible to provide an uninterrupted memory replication method that does not require interruption of a call processing service even during data transfer processing.

第1の発明の構成例を示す図である。It is a figure which shows the structural example of 1st invention. 第2の発明の構成例を示す図である。It is a figure which shows the structural example of 2nd invention. 第3の発明の構成例を示す図である。It is a figure which shows the structural example of 3rd invention. 第4の発明の構成例を示す図である。It is a figure which shows the structural example of 4th invention. 第1の発明の動作フローを示す図である。It is a figure which shows the operation | movement flow of 1st invention. 転送先アドレスリストを示す図である。It is a figure which shows a transfer destination address list. 第2の発明のアクティブ系サーバ側の動作フローを示す図である。It is a figure which shows the operation | movement flow by the side of the active system server of 2nd invention. 第3の発明のホットスタンバイ系サーバ側の動作フローを示す図である。It is a figure which shows the operation | movement flow by the side of the hot standby type | system | group server of 3rd invention. 第4の発明のアクティブ系サーバ側の動作フローを示す図である。It is a figure which shows the operation | movement flow by the side of the active system server of 4th invention. 本発明の対象となるシステム構成を示す図である。It is a figure which shows the system configuration | structure used as the object of this invention. サーバ上に分散するメモリエリアの説明図である。It is explanatory drawing of the memory area distributed on a server. 呼処理サーバのブートフローを示す図である。It is a figure which shows the boot flow of a call processing server. 呼処理サーバのスイッチオーバフローを示す図である。It is a figure which shows switch overflow of a call processing server. 従来の問題点の説明図である。It is explanatory drawing of the conventional problem.

符号の説明Explanation of symbols

4 CPU
6 CPU
10 サーバ
4 CPU
6 CPU
10 servers

Claims (4)

アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、メモリレプリケーションのためにアクティブ系では呼処理プロセスを、呼処理サービスを行なうスレッドとメモリの転送を行なうスレッドに分け、
それぞれを別のCPUに割り付け、
メモリ内容のコミットを行ないメモリ転送を行なう呼を含めた全ての呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機とは非同期にメモリのコピーデータを転送し、
またホットスタンバイ系では、ホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系サーバから転送されたメモリのコピーデータを実際のデータエリアに再配置する、
ようにしたことを特徴とする無中断メモリレプリケーション方法。
In a server that performs a call processing service in an active / hot standby configuration, in the active system for memory replication, a call processing process is divided into a thread that performs a call processing service and a thread that performs memory transfer.
Assign each one to a different CPU,
Transfer memory copy data asynchronously with the commit timing of the memory contents of the call processing service to the hot standby system without interrupting all call processing services including calls that perform memory transfer and perform memory transfer.
In the hot standby system, the data reception thread started from the call processing process in the hot standby state is started, and the memory copy data transferred from the active server is relocated to the actual data area.
An uninterrupted memory replication method characterized by the above.
アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、メモリレプリケーションのためにアクティブ系では呼処理プロセスを呼処理サービスを行なうスレッドと、メモリのコピーを行なうスレッドと、メモリの転送を行なうスレッドに分け、
それぞれを別のCPUに割り付けることで、メモリ内容のコミットを行ない、メモリ転送を行なう呼を除いた呼処理サービスを中断することなく、ホットスタンバイ系に呼処理サービスのメモリ内容のコミット契機と同期してメモリのコピーを転送し、
また、ホットスタンバイ系ではホットスタンバイ状態の呼処理プロセスから起動されたデータ受信スレッドを起動して、アクティブ系から転送されたメモリのコピーデータを実際のデータエリアに再配置する、
ようにしたことを特徴とする無中断メモリレプリケーション方法。
In a server that performs a call processing service in an active / hot standby configuration, for the purpose of memory replication, in an active system, a call processing process is divided into a thread that performs a call processing service, a thread that performs memory copying, and a thread that performs memory transfer. ,
By assigning each to a different CPU, the memory contents are committed, and the call processing services except for calls that perform memory transfer are not interrupted, and the hot standby system is synchronized with the memory processing commit timing of the call processing services. Transfer a copy of the memory
In the hot standby system, the data reception thread activated from the call processing process in the hot standby state is activated, and the copy data of the memory transferred from the active system is relocated to the actual data area.
An uninterrupted memory replication method characterized by the above.
アクティブ/ホットスタンバイ構成の呼処理サービスを行なうサーバにおいて、アクティブ系サーバからのデータを受信したホットスタンバイ系サーバにて、ホットスタンバイ状態の呼処理プロセスからデータ受信スレッドとコピーデータ再配置スレッドを起動し、
少なくともデータ受信スレッドを再配置スレッドとは別のCPUに割り付けることで、アクティブ系から転送されたメモリのコピーデータを一旦バッファにコピーし、キューイングした後で実際のデータエリアに再配置する、
ようにしたことを特徴とする請求項1又は2記載の無中断メモリレプリケーション方法。
In the server that performs the call processing service in the active / hot standby configuration, the data reception thread and the copy data relocation thread are activated from the call processing process in the hot standby state on the hot standby server that has received the data from the active server. ,
By allocating at least the data reception thread to a CPU different from the rearrangement thread, the memory copy data transferred from the active system is temporarily copied to the buffer, queued, and then rearranged in the actual data area.
The non-disruptive memory replication method according to claim 1 or 2, characterized in that it is configured as described above.
前記メモリのコピーを行なうスレッドを起動する際に、固定のCPUに割り付けるのではなく、データ転送スレッドに割り付けたCPUを除くいずれかのCPUの内、最もCPU使用率の低いCPUを検索し、そのCPUへ割り付けることを特徴とする請求項2記載の無中断メモリレプリケーション方法。   When starting a thread for copying the memory, instead of allocating to a fixed CPU, a CPU with the lowest CPU usage rate is searched for from any one of the CPUs other than the CPU allocated to the data transfer thread. 3. The non-disruptive memory replication method according to claim 2, wherein the allocation is made to a CPU.
JP2006180657A 2006-06-30 2006-06-30 Uninterruptible memory replication method Pending JP2008009797A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006180657A JP2008009797A (en) 2006-06-30 2006-06-30 Uninterruptible memory replication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006180657A JP2008009797A (en) 2006-06-30 2006-06-30 Uninterruptible memory replication method

Publications (1)

Publication Number Publication Date
JP2008009797A true JP2008009797A (en) 2008-01-17

Family

ID=39067933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006180657A Pending JP2008009797A (en) 2006-06-30 2006-06-30 Uninterruptible memory replication method

Country Status (1)

Country Link
JP (1) JP2008009797A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160537A (en) * 2009-01-06 2010-07-22 Hitachi Ltd Communication equipment and system switching method
JP2012256240A (en) * 2011-06-09 2012-12-27 Nippon Telegr & Teleph Corp <Ntt> Duplex system and memory synchronization method
JP2013110668A (en) * 2011-11-24 2013-06-06 Nippon Telegr & Teleph Corp <Ntt> Method of making information for use in call control redundant and call control system
JP2014041550A (en) * 2012-08-23 2014-03-06 Nippon Telegr & Teleph Corp <Ntt> Data migration processing system and data migration processing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272636A (en) * 1995-04-03 1996-10-18 Fuji Electric Co Ltd Transfer method for equalization data on duplex controller
JP2000112911A (en) * 1998-09-30 2000-04-21 Ncr Internatl Inc System and method for automatically redistributing task in data base managing system for computer network
JP2001166955A (en) * 1999-12-10 2001-06-22 Fujitsu Ltd Multi-processor system and function succession controlling method
JP2002149212A (en) * 2000-11-13 2002-05-24 Fuji Electric Co Ltd Redundant programmable controller for equalizing control data and equalization method
JP2004171234A (en) * 2002-11-19 2004-06-17 Toshiba Corp Task allocation method in multiprocessor system, task allocation program and multiprocessor system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272636A (en) * 1995-04-03 1996-10-18 Fuji Electric Co Ltd Transfer method for equalization data on duplex controller
JP2000112911A (en) * 1998-09-30 2000-04-21 Ncr Internatl Inc System and method for automatically redistributing task in data base managing system for computer network
JP2001166955A (en) * 1999-12-10 2001-06-22 Fujitsu Ltd Multi-processor system and function succession controlling method
JP2002149212A (en) * 2000-11-13 2002-05-24 Fuji Electric Co Ltd Redundant programmable controller for equalizing control data and equalization method
JP2004171234A (en) * 2002-11-19 2004-06-17 Toshiba Corp Task allocation method in multiprocessor system, task allocation program and multiprocessor system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160537A (en) * 2009-01-06 2010-07-22 Hitachi Ltd Communication equipment and system switching method
JP2012256240A (en) * 2011-06-09 2012-12-27 Nippon Telegr & Teleph Corp <Ntt> Duplex system and memory synchronization method
JP2013110668A (en) * 2011-11-24 2013-06-06 Nippon Telegr & Teleph Corp <Ntt> Method of making information for use in call control redundant and call control system
JP2014041550A (en) * 2012-08-23 2014-03-06 Nippon Telegr & Teleph Corp <Ntt> Data migration processing system and data migration processing method

Similar Documents

Publication Publication Date Title
FI101432B (en) Fault-tolerant computer system
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
JP3557947B2 (en) Method and apparatus for simultaneously starting thread execution by a plurality of processors and computer-readable recording medium
US7493436B2 (en) Interrupt handling using simultaneous multi-threading
TWI537828B (en) Method, computer system and computer program for virtual machine management
CN101115054B (en) For the buffer of the memory mapped of network interface controller
CN104102548B (en) task resource scheduling processing method and system
US9535864B2 (en) Computer system and control method thereof
US8032786B2 (en) Information-processing equipment and system therefor with switching control for switchover operation
WO2008062647A1 (en) Multiprocessor system, system configuration method in multiprocessor system, and program thereof
WO2018157836A1 (en) Resource management method for programmable hardware, programmable hardware device, and storage medium
JP2007079789A (en) Computer system and event processing method
JPH09259098A (en) Decentralized memory type multiprocessor system and fault recovery method
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US8381210B2 (en) Method and computer for synchronous scheduling of multiple virtual CPUs
JPWO2009150815A1 (en) Multiprocessor system
JP2009118063A (en) Redundant system, method, program and server
JP2008009797A (en) Uninterruptible memory replication method
JP5994601B2 (en) Parallel computer, parallel computer control program, and parallel computer control method
WO2011116672A1 (en) Method and apparatus for patching shared code segment
JP2001282558A (en) Multi-operating computer system
JP2000222376A (en) Computer system and method for operating the same
EP2615548A1 (en) Computing device
JP2003345638A (en) Method for controlling storage controller, the storage controller, and program
JP2016206865A (en) Device for making storage areas of multiplexed computer match

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110531