JP2018507496A - 高同時実行性データの記憶方法および装置 - Google Patents

高同時実行性データの記憶方法および装置 Download PDF

Info

Publication number
JP2018507496A
JP2018507496A JP2017554633A JP2017554633A JP2018507496A JP 2018507496 A JP2018507496 A JP 2018507496A JP 2017554633 A JP2017554633 A JP 2017554633A JP 2017554633 A JP2017554633 A JP 2017554633A JP 2018507496 A JP2018507496 A JP 2018507496A
Authority
JP
Japan
Prior art keywords
data
high concurrency
concurrency data
queue
local
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.)
Granted
Application number
JP2017554633A
Other languages
English (en)
Other versions
JP6464284B2 (ja
Inventor
ジャン ラン
ジャン ラン
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Publication of JP2018507496A publication Critical patent/JP2018507496A/ja
Application granted granted Critical
Publication of JP6464284B2 publication Critical patent/JP6464284B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、高同時実行性データの記憶方法および装置に係る。前記方法は、複数のクライアントから送信されてきた高同時実行性データを受信するステップと、前記高同時実行性データをメインデータキューにプッシュするとともに、相応のクライアントに応答するステップと、マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費するステップと、ローカルキューの数に基づいて前記高同時実行性データを断片化するステップと、断片化された後の高同時実行性データをローカルキューにプッシュするステップと、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するステップとを含む。メインデータキューおよびローカルキューによって高同時実行性データを一時記憶し、非同期記憶方式によりデータを記憶することによってデータベースへの圧力を緩和し、高同時実行的記憶を行う場合にデータベースがクラッシュしやすいという問題を避け、高同時実行性データの記憶効率を高めた。

Description

本発明の実施例はデータ処理技術に係り、とりわけ高同時実行性データ(high- concurrency data)の記憶方法および装置に係る。
インターネット情報の爆発的な増加により、夥しい量の高同時実行性データを扱う環境に出会うインターネットサーバがますます多くなっている。このような環境では、高同時実行性データの記憶の問題が発生する。かかる問題を解決するために、Hadoop, MongoDB, HbaseなどのNoSql(Not Only SQL,非関係型データベース)言語が広汎に使用されるようになった。
しかし、一部の古いビジネスシステムにおいては、新しい記憶方法に変更するために、高いコストをかけなければならず、そのため、依然としてMySqlやOracleなど従来の関係型データベースを用いてデータを記憶している。システムが高同時実行性データを記憶する場合に、データベースへのリンクが多発し、大量のソースがリンクに占用されるため、記憶効率が下がり、サーバがクラッシュするなどの問題が発生してしまう。
前記した問題点に鑑み、本発明の実施例は高同時実行性データの記憶方法および装置を提供することにより高同時実行性データの記憶効率を高める。
第1の態様において、本発明の実施例は高同時実行性データの記憶方法を提供する。前記方法は、複数のクライアントから送信されてきた高同時実行性データを受信するステップと、前記高同時実行性データをメインデータキューにプッシュするとともに、相応のクライアントに応答するステップと、マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費するステップと、ローカルキューの数に基づいて前記高同時実行性データを断片化するステップと、断片化された後の高同時実行性データをローカルキューにプッシュするステップと、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するステップと、を含む。
第2の態様において、本発明の実施例はさらに高同時実行性データの記憶装置を提供する。前記装置は、複数のクライアントから送信されてきた高同時実行性データを受信する受信モジュールと、前記高同時実行性データをメインデータキューにプッシュするとともに、相応のクライアントに応答する第1のプッシュモジュールと、マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費する消費モジュールと、ローカルキューの数に基づいて前記高同時実行性データを断片化する断片化モジュールと、断片化された後の高同時実行性データをローカルキューにプッシュする第2のプッシュモジュールと、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶する記憶モジュールと、を備えている。
本発明の実施例では、前記高同時実行性データをメインデータキューにプッシュし、前記メインデータキューにおける高同時実行性データをマルチスレッドによって消費し、ローカルキューの数に基づいて前記高同時実行性データを断片化し、断片化された後の高同時実行性データをローカルキューにプッシュし、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶し、メインデータキューおよびローカルキューによって高同時実行性データを一時記憶し、非同期記憶方式によりデータを記憶することによって高同時実行性データを直接データベースに記憶する際にデータベースに与える圧力を緩和し、高同時実行的記憶を行う場合にデータベースがクラッシュしやすいという問題を避け、高同時実行性データの記憶効率を高めた。
本発明の第1の実施例によって提供された高同時実行性データの記憶方法のフローチャートである。 本発明の第2の実施例によって提供された高同時実行性データの記憶方法の構造設計図である。 本発明の第2の実施例によって提供された高同時実行性データの記憶方法のフローチャートである。 本発明の第3の実施例によって提供された高同時実行性データの記憶装置の概略図である。
以下において、図面および実施例を参照しながら本発明をより詳しく説明する。なお、この明細書に記載された具体的な実施例は本発明を説明するためのものであり、本発明を限定するためのものではない。また、説明しやすいように、図面には全ての内容を記載せず、本発明と関連のある部分のみを記載した。
(第1の実施例)
図1は本発明の第1の実施例によって提供された高同時実行性データの記憶方法のフローチャートである。本実施例は高同時実行性データに対する記憶に適用することができる。当該方法はサーバによって実行することができ、具体的には下記のステップを含む。
複数のクライアントから送信されてきた高同時実行性データを受信するステップ110。
ここで、高同時実行性とはある時刻に大量のアクセスが同時に実行されることをいう。サーバが複数のクライアントからの要求を受信し、多数のクライアントが同時にアクセスを要求することにより高同時実行性データが形成される。
前記高同時実行性データをメインデータキューにプッシュするとともに相応のクライアントに応答するステップ120。
ここで、データキューは分布式MQ(Message Queue,メッセージキュー)を採用し、分布式拡張を支持することができるとともに、フレームに高可用性を持たせることにより、ビッグデータを処理するときも比較的客観的な性能を確保することができる。ここで、ActiveMQはApacheによって開発された最も流行し、かつ最も強力なオープンソースメッセージバスである。
サーバは高同時実行性データを受信すると、前記高同時実行性データをメインデータキューにプッシュするとともに、該高同時実行性データを送信したクライアントに応答する。ここで、メインデータキューは全てのデータのメインエントランスキューであり、データが当該キューにプッシュされた後、直ちに結果を返信することで応答速度を高めることができる。
マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費するステップ130。
ここで、マルチスレッドはスレッドプールによって配分される。スレッドプールはマルチスレッド処理データを提供するとともに、データを断片化して対応するローカルキューにプッシュし、メッセージの消費速度を高めた。それと同時に、MQの特性を利用してデータの持続化を図りデータのロスを防ぐことができる。サーバはスレッドプールによって配分されたマルチスレッドにより前記メインデータキューにおける高同時実行性データを速やかに消費する。ここで、前記メインデータキューにおける高同時実行性データを消費するとは、前記メインデータキューにおける高同時実行性データを当該メインデータキューから移し出すことをいう。
ローカルキューの数に基づいて前記高同時実行性データを断片化するステップ140。
ここで、ローカルキューは断片化された後の高同時実行性データを記憶し、断片化された後のデータのロスを防ぐ。ローカルキューは前記高同時実行性データのデータサイズに基づいて横方向に拡張することができる。また、データサイズが大きい場合にはローカルキューの数を拡張することができる。サーバはローカルキューの数に基づいてメインデータキューから移し出された高同時実行性データをローカルキューと同じ数の断片に断片化し、断片化された後の高同時実行性データをローカルキューに記憶する。高同時実行性データに対して断片化処理を行うことによりデータに対する繰り返し処理を避けるとともに処理速度を高めることができる。当業者にとって明らかなように、高同時実行性データに対する断片化はさまざまなストラテジーを採用することができる。例えば、データのメインキーの特徴に基づいて断片化し、ローカルキューに対する高同時実行性データのメインキーの数についてモジュロ演算を行い、得られた結果に対応する番号のローカルキューに当該データを配分することができる。また、時間の範囲に基づいて断片化することもできる。例えば、先頭の100万個のデータを第1のローカルキューに配分し、その次の100万個のデータを第2のローカルキューに配分する。言うまでもなく、その他の断片化ストラテジーを用いることもできる。
断片化された後の高同時実行性データをローカルキューにプッシュするステップ150。
サーバは、高同時実行性データを断片化するための断片化ストラテジーに基づいて断片化された後の高同時実行性データを相応のローカルキューにプッシュし、ローカルキューによって高同時実行性データを一時記憶する。
ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するステップ160。
サーバによってローカルキューにおける高同時実行性データを消費する。即ち、ローカルキューにおける高同時実行性データをローカルキューから移し出した後に、ローカルキューから移し出された高同時実行性データをデータベースに記憶する。
本実施例における高同時実行性データは転送過程、例えば高同時実行性データをメインデータキューにプッシュしたりデータを消費したりする過程において、データのシリアル化およびデシリアル化をしやすくために、高性能のJSONフォーマットで転送することができる。これによりデータの転送速度をさらに高めることができる。ここで、JSON(JavaScript Object Notation)は軽量型のデータ交換形式であり、JavaScriptシンタックスに基づくサブセットであり、即ちアレイおよびオブジェクトの表記である。シリアル化はオブジェクトストリームを処理するためのメカニズムであり、オブジェクトストリームはオブジェクトの内容をストリーム化させるものであり、ストリーム化された後のオブジェクトに対して読み書き操作を行うことができる。シリアル化は、オブジェクトストリームに対して読み書き操作を行うときに発生する問題を解決するためのものである。
本実施例では、前記高同時実行性データをメインデータキューにプッシュし、前記メインデータキューにおける高同時実行性データをマルチスレッドによって消費し、ローカルキューの数に基づいて前記高同時実行性データを断片化し、断片化された後の高同時実行性データをローカルキューにプッシュし、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶し、メインデータキューおよびローカルキューによって高同時実行性データを一時記憶し、非同期記憶方式によりデータを記憶することによって高同時実行性データを直接データベースに記憶する際にデータベースに与える圧力を緩和し、高同時実行的記憶を行う場合にデータベースがクラッシュしやすいという問題を避けるとともに、高同時実行性データの記憶効率を高めた。
前記技術的解決手段をベースに、ローカルキューの数に基づいて前記高同時実行性データを断片化する。好ましくは、前記ローカルキューに対する前記高同時実行性データのメインキーの数についてモジュロを求めるステップと、同じモジュロ演算の結果に基づいて対応する高同時実行性データを1つの断片に分割するステップとを含む。
まず、高同時実行性データで生成されたメインキーの前記ローカルキューに対する数についてモジュロ演算を行い、同じモジュロ演算結果が得られた高同時実行性データを1つの断片に分割する。
前記技術的解決手段をベースに、断片化された後の高同時実行性データをローカルキューにプッシュする。具体的には、モジュロ演算の結果に基づいて断片化された後の高同時実行性データを相応の番号を有するローカルキューにプッシュするステップを含む。
ここで、各ローカルキューはそれぞれ固有の番号を有する。断片化された後の高同時実行性データをモジュロ演算結果と同じ番号を有するローカルキューにプッシュする。
前記技術的解決手段のうちのいずれか1つの技術的解決手段をベースに、ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶する。好ましくは、スケジュール運転によってローカルキューにおける高同時実行性データを消費するステップと、消費された高同時実行性データをデータベースに記憶するステップと、を含む。
サーバは、スケジュール運転によってローカルキューにおける高同時実行性データを定刻/即時にローカルキューから移し出す。ユーザは必要に応じてキャッチする(ローカルキューから移し出す)データの量およびデータキャッチの時間間隔を制御し、定刻/即時にローカルキューから移し出した高同時実行性データをデータベースに記憶することができる。スケジュール運転によって定刻/即時にデータを処理する機能を配置し、データベースへの記憶圧力を緩和することができる。好ましくは、前記スケジュール運転はQuartzによって実現される。ここで、Quartz は完全にJavaを用いて作成されたオープンソースジョブスケジューリングフレームワークである。
(第2の実施例)
図2は本発明の第2の実施例によって提供された高同時実行性データの記憶方法の構造設計図である。図2に示すように、メインデータキューは全てのデータのメインエントランスキューであり、データが当該キューにプッシュされた後に、直ちに結果を返信することで応答速度を高めることができる。スレッドプール(Thread Pool)はマルチスレッド処理データを提供するとともに、データを断片化して対応するローカルキューにプッシュし、メッセージの消費速度を高めることができる。また、MQの特性を利用してデータの持続化を図りデータのロスを防ぐことができる。ローカルキューはデータ断片化後のデータを記憶することによって断片化された後のデータのロスを防ぐ。ワーク(Work)1、ワーク2、ワーク3は定刻/即時にデータを消費し、データを処理するとともにデータベースに記憶することによってキャッチするデータの量およびデータキャッチの時間間隔を自主的に制御することができる。
図3は本発明の第2の実施例によって提供された高同時実行性データの記憶方法のフローチャートである。図3に示すように、本実施例によって提供された高同時実行性データの記憶方法は具体的に以下のステップを含む。
記憶されるべき高同時実行性データをメインデータキューにプッシュするステップ310。
まず、記憶されるべき高同時実行性データをメインデータキューにプッシュし、高同時実行性データをメインデータキューにプッシュした後に、結果を返信してクライアントに応答する。
マルチスレッドによってメインデータキューにおける高同時実行性データを消費するステップ320。
スレッドプールによって提供されたマルチスレッドによってメインデータキューにおける高同時実行性データを速やかに消費する。
高同時実行性データを断片化するとともに対応するローカルキューにプッシュするステップ330。
ローカルキューの数に基づき、ローカルキューに対する高同時実行性データのメインキーの数についてモジュロ演算を行い、モジュロ演算の結果に基づいて断片化された後の高同時実行性データをモジュロ演算の結果と同じ番号のローカルキューにプッシュする。
所定の時刻にローカルキューにおける高同時実行性データを消費するステップ340。
Quartzによってローカルキューにおける高同時実行性データを定刻/即時に消費することを実現する。
データをデータベースに記憶するステップ350。
本実施例では、従来の関係型データベースに対し、メインデータキューによって高同時実行性データを一時記憶するとともに、ローカルキューによって高同時実行性データを再度一時記憶することによってデータのロスを防止することができる。また、メインデータキューの消費速度を高めるとともに、高同時実行性データの記憶効率を高めることができる。さらに、データを定刻/即時に処理する機能を配置することができるため、データベースへの圧力を緩和して高同時実行的記憶を行う場合にデータベースがクラッシュしやすいという問題を避けた。
(第3の実施例)
図4は本発明の第3の実施例によって提供された高同時実行性データの記憶装置の概略図である。本実施例によって提供された高同時実行性データの記憶装置は第1の実施例によって提供された高同時実行性データの記憶方法を実現するための装置である。図4に示すように、本実施例によって提供された高同時実行性データの記憶装置は、受信モジュール410、第1のプッシュモジュール420、消費モジュール430、断片化モジュール440、第2のプッシュモジュール450および記憶モジュール460を備えている。
受信モジュール410は複数のクライアントから送信されてきた高同時実行性データを受信し、第1のプッシュモジュール420は前記高同時実行性データをメインデータキューにプッシュするとともに相応のクライアントに応答し、消費モジュール430はマルチスレッドによって前記メインデータキューにおける高同時実行性データを消費し、断片化モジュール440はローカルキューの数に基づいて前記高同時実行性データを断片化し、第2のプッシュモジュール450は断片化された後の高同時実行性データをローカルキューにプッシュし、記憶モジュール460はローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶する。
好ましくは、前記断片化モジュールは、前記ローカルキューに対する前記高同時実行性データのメインキーの数についてモジュロを求めるモジュロ取得サブモジュールと、同じモジュロ演算の結果に基づいて対応する高同時実行性データを1つの断片に分割する断片化サブモジュールとを含む。好ましくは、前記第2のプッシュモジュールは具体的にモジュロ演算の結果に基づいて断片化された後の高同時実行性データを相応の番号を有するローカルキューにプッシュする。
好ましくは、前記記憶モジュールは、スケジュール運転によってローカルキューにおける高同時実行性データを消費する消費サブモジュールと、消費された高同時実行性データをデータベースに記憶する記憶サブモジュールとを備える。好ましくは、前記スケジュール運転はQuartzによって実現される。
本実施例では、受信モジュールによって複数のクライアントから送信されてきた高同時実行性データを受信し、第1のプッシュモジュールは前記高同時実行性データをメインデータキューにプッシュするとともに相応のクライアントに応答し、消費モジュールはマルチスレッドによって前記メインデータキューにおける高同時実行性データを消費し、断片化モジュールはローカルキューの数に基づいて前記高同時実行性データを断片化し、第2のプッシュモジュールは断片化された後の高同時実行性データをローカルキューにプッシュし、記憶モジュールはローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶する。メインデータキューおよびローカルキューによって高同時実行性データを一時記憶し、非同期記憶方式によりデータを記憶することによって高同時実行性データを直接データベースに記憶する際にデータベースに与える圧力を緩和し、高同時実行的記憶を行う場合にデータベースがクラッシュしやすいという問題を避け、高同時実行性データの記憶効率を高めた。
なお、前記実施例は、本発明の好ましい実施例および用いられる技術の原理に関する説明にすぎない。本発明は前記特定の実施例に限定されない。当業者は、本発明の保護範囲を離脱せずにさまざまな方法で本発明に対する変更、再調整、代替を行うことができる。したがって、以上において前記実施例を参照しながら本発明を詳しく説明したが、本発明は前記実施例に限定されない。本発明の主旨を離脱せずにその他のさまざまな等価的な実施例を行うことができる。本発明の範囲はその特許請求の範囲によって決定されるものとする。

Claims (10)

  1. 高同時実行性データの記憶方法であって、
    複数のクライアントから送信されてきた高同時実行性データを受信するステップと、
    前記高同時実行性データをメインデータキューにプッシュするとともに相応のクライアントに応答するステップと、
    マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費するステップと、
    ローカルキューの数に基づいて前記高同時実行性データを断片化するステップと、
    断片化された後の高同時実行性データをローカルキューにプッシュするステップと、
    ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するステップと、を含むことを特徴とする、
    高同時実行性データの記憶方法。
  2. 請求項1に記載の方法であって、
    ローカルキューの数に基づいて前記高同時実行性データを断片化するステップは、
    前記ローカルキューに対する前記高同時実行性データのメインキーの数についてモジュロを求めるステップと、
    同じモジュロ演算の結果に基づいて対応する高同時実行性データを1つの断片に分割するステップと、を含むことを特徴とする、
    方法。
  3. 請求項2に記載の方法であって、
    断片化された後の高同時実行性データをローカルキューにプッシュするステップは、具体的に、
    モジュロ演算の結果に基づいて断片化された後の高同時実行性データを相応の番号を有するローカルキューにプッシュするステップを含むことを特徴とする、
    方法。
  4. 請求項1から3のいずれか1項に記載の方法であって、
    ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するステップは、
    スケジュール運転によってローカルキューにおける高同時実行性データを消費するステップと、
    消費された高同時実行性データをデータベースに記憶するステップと、を含むことを特徴とする、
    方法。
  5. 請求項4に記載の方法であって、
    前記スケジュール運転はQuartzによって実現されることを特徴とする、
    方法。
  6. 高同時実行性データの記憶装置であって、
    複数のクライアントから送信されてきた高同時実行性データを受信するための受信モジュールと、
    前記高同時実行性データをメインデータキューにプッシュするとともに相応のクライアントに応答するための第1のプッシュモジュールと、
    マルチスレッドによって前記メインデータキューにおける高同時実行性データを消費するための消費モジュールと、
    ローカルキューの数に基づいて前記高同時実行性データを断片化するための断片化モジュールと、
    断片化された後の高同時実行性データをローカルキューにプッシュするための第2のプッシュモジュールと、
    ローカルキューにおける高同時実行性データを消費するとともにデータベースに記憶するための記憶モジュールと、を備えたことを特徴とする、
    高同時実行性データの記憶装置。
  7. 請求項6に記載の装置であって、
    前記断片化モジュールは、
    前記ローカルキューに対する前記高同時実行性データのメインキーの数についてモジュロを求めるためのモジュロ取得サブモジュールと、
    同じモジュロ演算の結果に基づいて対応する高同時実行性データを1つの断片に分割するための断片化サブモジュールと、を含むことを特徴とする、
    装置。
  8. 請求項7に記載の装置であって、
    前記第2のプッシュモジュールは、具体的にモジュロ演算の結果に基づいて断片化された後の高同時実行性データを相応の番号を有するローカルキューにプッシュするために用いられることを特徴とする、
    装置。
  9. 請求項6から8のいずれか1項に記載の装置であって、
    前記記憶モジュールは、
    スケジュール運転によってローカルキューにおける高同時実行性データを消費する消費サブモジュールと、
    消費された高同時実行性データをデータベースに記憶する記憶サブモジュールと、を含むことを特徴とする、
    装置。
  10. 請求項9に記載の装置であって、
    前記スケジュール運転はQuartzによって実現されることを特徴とする、
    装置。
JP2017554633A 2015-01-08 2016-01-07 高同時実行性データの記憶方法および装置 Active JP6464284B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510009667.2A CN104598563B (zh) 2015-01-08 2015-01-08 高并发数据存储方法及装置
CN201510009667.2 2015-01-08
PCT/CN2016/070397 WO2016110263A1 (zh) 2015-01-08 2016-01-07 高并发数据存储方法及装置

Publications (2)

Publication Number Publication Date
JP2018507496A true JP2018507496A (ja) 2018-03-15
JP6464284B2 JP6464284B2 (ja) 2019-02-06

Family

ID=53124348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017554633A Active JP6464284B2 (ja) 2015-01-08 2016-01-07 高同時実行性データの記憶方法および装置

Country Status (5)

Country Link
US (1) US11327945B2 (ja)
JP (1) JP6464284B2 (ja)
CN (1) CN104598563B (ja)
RU (1) RU2666245C1 (ja)
WO (1) WO2016110263A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598563B (zh) 2015-01-08 2018-09-04 北京京东尚科信息技术有限公司 高并发数据存储方法及装置
CN105468710A (zh) * 2015-11-19 2016-04-06 中国建设银行股份有限公司 应用于高并发场景的图片处理方法及系统
CN105786629A (zh) * 2016-02-02 2016-07-20 四川长虹电器股份有限公司 基于消息队列的数据处理方法
CN105760452B (zh) * 2016-02-04 2020-03-10 深圳市嘉力达实业有限公司 一种高并发海量数据的采集、处理和存储的方法及系统
CN108073444A (zh) * 2016-11-18 2018-05-25 北京京东尚科信息技术有限公司 向客户端推送用户数据的方法及系统
CN108664315A (zh) * 2017-03-30 2018-10-16 北京京东尚科信息技术有限公司 多线程动态处理业务的方法、电子设备和可读存储介质
CN109150929B (zh) * 2017-06-15 2021-11-12 北京京东尚科信息技术有限公司 高并发场景下的数据请求处理方法和装置
CN107241279A (zh) * 2017-06-22 2017-10-10 北京天德科技有限公司 一种基于多级缓冲队列的区块链交易限流方法
CN110019008A (zh) * 2017-11-03 2019-07-16 北京金山安全软件有限公司 一种数据存储方法及装置
CN107957903B (zh) * 2017-11-13 2020-11-10 中国平安财产保险股份有限公司 异步任务调度方法、服务器及存储介质
CN108595121B (zh) * 2018-04-17 2021-03-02 湖北文理学院 数据存储方法和装置
CN110515741A (zh) * 2018-05-21 2019-11-29 北京京东尚科信息技术有限公司 一种基于本地任务队列的降级处理方法和装置
CN109284335A (zh) * 2018-09-10 2019-01-29 郑州云海信息技术有限公司 一种跨数据库批量传导数据的方法与装置
CN109379605B (zh) * 2018-09-29 2020-10-16 武汉斗鱼网络科技有限公司 基于弹幕顺序的弹幕分发方法、装置、设备和存储介质
US10972342B2 (en) * 2018-12-17 2021-04-06 Juniper Networks, Inc. Network device configuration using a message bus
CN109874027A (zh) * 2019-03-11 2019-06-11 宸瑞普惠(广州)科技有限公司 一种低延时手术示教直播方法及其系统
CN110162401A (zh) * 2019-05-24 2019-08-23 广州中望龙腾软件股份有限公司 Dwg文件并行读取方法、电子设备和存储介质
CN112019689A (zh) * 2019-05-29 2020-12-01 北京奇虎科技有限公司 来电秀业务处理系统及方法
CN111629019B (zh) * 2019-08-13 2022-11-18 广州凡科互联网科技股份有限公司 一种异步处理大数据和高并发的方法
CN110704110B (zh) * 2019-09-30 2021-09-14 浪潮软件股份有限公司 一种提高系统高并发情况下的响应速度的方法和装置
CN112749174B (zh) * 2019-10-30 2024-05-10 中国移动通信集团安徽有限公司 高并发处理方法、装置、处理设备及计算机存储介质
CN111831458B (zh) * 2020-06-11 2024-04-26 武汉烽火技术服务有限公司 一种高并发高解耦数据处理方法及数据中台系统
CN112131286B (zh) * 2020-11-26 2021-03-02 畅捷通信息技术股份有限公司 一种基于时间序列的数据处理方法、装置及存储介质
CN113312386B (zh) * 2021-05-10 2022-06-24 四川新网银行股份有限公司 一种基于分布式消息的批量入库方法
CN115510020A (zh) * 2021-06-23 2022-12-23 比亚迪股份有限公司 一种数据归档方法、电子设备及可读存储介质
CN114238037B (zh) * 2022-02-28 2022-04-29 北京金堤科技有限公司 高并发服务请求结果存储方法和装置、以及电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012153376A1 (ja) * 2011-05-06 2012-11-15 株式会社日立製作所 計算機システム、及び、情報処理方法
CN104102693A (zh) * 2014-06-19 2014-10-15 广州华多网络科技有限公司 对象处理方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205122B1 (en) * 1998-07-21 2001-03-20 Mercury Interactive Corporation Automatic network topology analysis
US6321265B1 (en) * 1999-11-02 2001-11-20 Altavista Company System and method for enforcing politeness while scheduling downloads in a web crawler
US6922724B1 (en) * 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US7171613B1 (en) * 2000-10-30 2007-01-30 International Business Machines Corporation Web-based application for inbound message synchronization
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
US6892199B2 (en) * 2001-06-29 2005-05-10 Trendium, Inc. Saving burst data by using semi-merge sorting module
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
CN100407203C (zh) * 2005-12-30 2008-07-30 华为技术有限公司 一种海量数据的处理方法
US20070192431A1 (en) * 2006-02-10 2007-08-16 Sun Microsystems, Inc. Method and apparatus for service oriented architecture infrastructure switch
US7764678B2 (en) * 2006-10-10 2010-07-27 Oracle America, Inc. Routing based on dynamic classification rules
US7895463B2 (en) * 2007-08-28 2011-02-22 Cisco Technology, Inc. Redundant application network appliances using a low latency lossless interconnect link
WO2011002818A1 (en) * 2009-06-29 2011-01-06 Cyberdefender Corporation Systems and methods for operating an anti-malware network on a cloud computing platform
US8880524B2 (en) * 2009-07-17 2014-11-04 Apple Inc. Scalable real time event stream processing
CN101739296B (zh) * 2009-12-28 2013-10-02 广州菲音信息科技有限公司 数据处理系统和方法
US9495427B2 (en) * 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
US9436532B1 (en) * 2011-12-20 2016-09-06 Emc Corporation Method and system for implementing independent message queues by specific applications
CN102622426A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 数据库写入系统及方法
CN103024014B (zh) * 2012-12-03 2015-08-19 北京京东世纪贸易有限公司 通过消息队列的海量数据分发处理的方法和系统
CN103699660B (zh) * 2013-12-26 2016-10-12 清华大学 一种大规模网络流式数据缓存写入的方法
CN104598563B (zh) 2015-01-08 2018-09-04 北京京东尚科信息技术有限公司 高并发数据存储方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012153376A1 (ja) * 2011-05-06 2012-11-15 株式会社日立製作所 計算機システム、及び、情報処理方法
CN104102693A (zh) * 2014-06-19 2014-10-15 广州华多网络科技有限公司 对象处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"ジョブスケジューラQuartzをためす", WEB+DB PRESS, vol. 26, JPN6018026131, 25 May 2005 (2005-05-25), JP, pages 182 - 186, ISSN: 0003833746 *

Also Published As

Publication number Publication date
JP6464284B2 (ja) 2019-02-06
CN104598563A (zh) 2015-05-06
US11327945B2 (en) 2022-05-10
US20180276265A1 (en) 2018-09-27
WO2016110263A1 (zh) 2016-07-14
CN104598563B (zh) 2018-09-04
RU2666245C1 (ru) 2018-09-06

Similar Documents

Publication Publication Date Title
JP6464284B2 (ja) 高同時実行性データの記憶方法および装置
US11809321B2 (en) Memory management in a multiple processor system
US10482392B2 (en) Robust large-scale machine learning in the cloud
US20130318119A1 (en) Processing structured and unstructured data using offload processors
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US20210294746A1 (en) Memory module system with global shared context
WO2017092384A1 (zh) 一种集群数据库分布式存储的方法和装置
Kim et al. SHARP: A short-word hierarchical accelerator for robust and practical fully homomorphic encryption
WO2016202153A1 (zh) 一种gpu资源的分配方法及系统
US10776012B2 (en) Lock-free datapath design for efficient parallel processing storage array implementation
CN113190528B (zh) 一种并行分布式大数据架构构建方法及系统
US9501485B2 (en) Methods for facilitating batch analytics on archived data and devices thereof
US11392388B2 (en) System and method for dynamic determination of a number of parallel threads for a request
US11301255B2 (en) Method, apparatus, device, and storage medium for performing processing task
Zhang et al. A distributed in-memory key-value store system on heterogeneous CPU–GPU cluster
Kim et al. Large scale image processing in real-time environments with Kafka
US10268727B2 (en) Batching tuples
US20170161114A1 (en) Method and apparatus for time-based scheduling of tasks
TW202139019A (zh) 用於封包處理的方法及系統、以及非暫時性電腦可讀媒體
RU2679546C2 (ru) Устройство и способ прогона множества потоков
Shah et al. Enabling qos support for multi-core message broker in publish/subscribe system
US20170337084A1 (en) Compute unit including thread dispatcher and event register and method of operating same to enable communication
TWI382348B (zh) 多核心系統及其排程方法
US10728331B2 (en) Techniques for dynamic cache use by an input/output device
US20240201990A1 (en) Fused Data Generation and Associated Communication

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190107

R150 Certificate of patent or registration of utility model

Ref document number: 6464284

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250