RU2666245C1 - Способ и устройство для сохранения данных с высокой степенью многопоточности - Google Patents

Способ и устройство для сохранения данных с высокой степенью многопоточности Download PDF

Info

Publication number
RU2666245C1
RU2666245C1 RU2017128080A RU2017128080A RU2666245C1 RU 2666245 C1 RU2666245 C1 RU 2666245C1 RU 2017128080 A RU2017128080 A RU 2017128080A RU 2017128080 A RU2017128080 A RU 2017128080A RU 2666245 C1 RU2666245 C1 RU 2666245C1
Authority
RU
Russia
Prior art keywords
data
multithreading
high degree
local queues
queue
Prior art date
Application number
RU2017128080A
Other languages
English (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 Бэйцзин Цзиндун Шанкэ Информейшн Текнолоджи Ко., Лтд.
Application granted granted Critical
Publication of RU2666245C1 publication Critical patent/RU2666245C1/ru

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/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/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/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)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относится к области обработки данных. Технический результат изобретения заключается в повышении эффективности хранения данных с высокой степенью многопоточности за счет уменьшения нагрузки на базу данных и увеличения скорости обработки данных. Способ содержит этапы: принимают данные с высокой степенью многопоточности, отправленные множеством клиентов; добавляют данные с высокой степенью многопоточности в первичную очередь данных и отвечают соответствующему клиенту; потребляют данные с высокой степенью многопоточности в первичной очереди данных путем использования многопотокового режима; фрагментируют данные с высокой степенью многопоточности в соответствии с количеством локальных очередей; добавляют фрагментированные данные с высокой степенью многопоточности в локальные очереди; и потребляют данные с высокой степенью многопоточности в локальных очередях и сохраняют данные с высокой степенью многопоточности в базе данных. 2 н. и 8 з.п. ф-лы, 4 ил.

Description

Область техники, к которой относится изобретение
Варианты выполнения изобретения относятся к технологиям обработки данных, в частности к способу и устройству для сохранения данных с высокой степенью многопоточности.
Уровень техники
По мере взрывного роста объема информации в сети Интернет все большее число серверов сети Интернет находится в среде данных с высокой степенью многопоточности и с массивными объемами, в которой возникает проблема хранения данных с высокой степенью многопоточности. Для решения данной проблемы широко используются некоторые языки программирования типа NoSql («не только SQL», нереляционная база данных), такие как Hadoop, MongoDB и Hbase.
Однако для некоторых старых бизнес-систем расходы на замену способов хранения на новые будут относительно высокими, поэтому для хранения данных по-прежнему используются традиционные реляционные базы данных, такие как MySql, Oracle и тому подобные. Когда система сталкивается с хранением данных с высокой степенью многопоточности, это приводит к слишком большому количеству ссылок в базе данных, что требует слишком большого объема ресурсов, снижает эффективность хранения и, кроме того, приводит к таким проблемам, как остановка сервера.
Раскрытие изобретения
Ввиду вышеуказанного варианты выполнения настоящего изобретения предусматривают способ и устройство для хранения данных с высокой степенью многопоточности для повышения эффективности хранения данных с высокой степенью многопоточности.
В первом аспекте варианты выполнения настоящего изобретения обеспечивают способ хранения данных с высокой степенью многопоточности, характеризуемый тем, что он содержит этапы, на которых:
принимают данные с высокой степенью многопоточности, отправленные множеством клиентов;
добавляют данные с высокой степенью многопоточности в первичную очередь данных, и отвечают соответствующему клиенту;
потребляют данные с высокой степенью многопоточности в первичной очереди данных с использованием с использованием многопотокового режима;
фрагментируют данные с высокой степенью многопоточности в соответствии с количеством локальных очередей;
добавляют фрагментированные данные с высокой степенью многопоточности в локальные очереди; и
потребляют данные с высокой степенью многопоточности в локальных очередях и сохраняют данные с высокой степенью многопоточности в базе данных.
Во втором аспекте варианты выполнения варианты выполнения настоящего изобретения обеспечивают устройство для сохранения данных с высокой степенью многопоточности, причем устройство содержит:
приемный модуль для приема данных с высокой степенью многопоточности, отправляемых множеством клиентов;
первый модуль добавления для добавления данных с высокой степенью многопоточности в первичную очередь данных и для ответа соответствующему клиенту;
модуль потребления для потребления данных с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима;
модуль фрагментации для фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей;
второй модуль добавления для добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди; и
модуль сохранения для потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базе данных.
В вариантах выполнения изобретения путем добавления данных с высокой степенью многопоточности в первичную очередь данных, потребления данных с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима, фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей, добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди, и потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базе данных, данные с высокой степенью многопоточности буферизуются посредством первичной очереди данных и локальных очередей, и данные сохраняются посредством асинхронного сохранения, таким образом снижая нагрузку на базу данных путем сохранения данных с высокой степенью многопоточности непосредственно в базе данных, избегая проблему остановки базы данных в случае сохранения с высокой степенью многопоточности, и повышая эффективность сохранения данных с высокой степенью многопоточности.
Краткое описание чертежей
Фиг. 1 - блок-схема способа сохранения данных с высокой степенью многопоточности в соответствии с вариантом выполнения 1 настоящего изобретения.
Фиг. 2 - архитектурная схема способа сохранения данных с высокой степенью многопоточности в соответствии с вариантом выполнения 2 настоящего изобретения.
Фиг. 3 - блок-схема способа сохранения данных с высокой степенью многопоточности в соответствии с вариантом выполнения 2 настоящего изобретения.
Фиг. 4 - принципиальная схема устройства для сохранения данных с высокой степенью многопоточности в соответствии с вариантом выполнения 3 настоящего изобретения.
Подробное описание изобретения
Теперь изобретение будет описано в дополнительных подробностях с обращением к сопровождающим чертежам и вариантам выполнения. Следует понимать, что конкретные варианты выполнения, описанные в настоящем документе, предназначены только для пояснения изобретения и не предназначены для ограничения изобретения. Следует отметить, что только части, относящиеся к настоящему изобретению, а не все содержимое, показаны на чертежах для удобства описания.
Вариант выполнения 1
Фиг. 1 - блок-схема способа сохранения данных с высокой степенью многопоточности в соответствии с вариантом выполнения 1 настоящего изобретения. Вариант выполнения подходит для сохранения данных с высокой степенью многопоточности. Способ может выполняться сервером и, в частности, содержит следующие этапы:
Этап 110, на котором принимают данные с высокой степенью многопоточности, отправленные множеством клиентов.
Высокая степень многопоточности означает относительно большой объем трафика за определенное время. Сервер принимает запросы от множества клиентов, и одновременные запросы от множества клиентов создают данные с высокой степенью многопоточности.
Этап 120, на котором добавляют данные с высокой степенью многопоточности в первичную очередь данных и отвечают соответствующему клиенту.
Для очередей данных принята распределенная MQ (очередь сообщений), которая может поддерживать распределенные расширения и наделять инфраструктуру высокой доступностью, и при этом сохранять относительно объективные рабочие характеристики при обработке больших объемов данных. Среди них ActiveMQ является наиболее популярной и мощной средой передачи сообщений с открытым исходным кодом, выпускаемой компанией Apache.
После приема данных с высокой степенью многопоточности сервер добавляет данные с высокой степенью многопоточности в первичную очередь данных и отвечает клиенту, отправляющему данные с высокой степенью многопоточности. Первичная очередь данных является первичной очередью данных для всех данных, и когда данные добавляются в очередь, результат возвращается немедленно, повышая скорость реакции.
Этап 130, на котором потребляют данные с высокой степенью многопоточности в первичной очереди данных путем использования многопотокового режима.
Многопотоковый режим назначается пулом потоков. Пул потоков обеспечивает данные обработки многопотокового режима, а также фрагментирует данные и добавляет их в соответствующую локальную очередь, повышая скорость потребления сообщения и, в то же время, обеспечивая устойчивость данных путем использования характеристик MQ для предотвращения потери данных. Сервер быстро потребляет данные с высокой степенью многопоточности в первичной очереди данных посредством многопотокового режима, назначаемого пулом потоков. Потребление данных с высокой степенью многопоточности в первичной очереди данных означает удаление данных с высокой степенью многопоточности из первичной очереди данных.
Этап 140, на котором фрагментируют данные с высокой степенью многопоточности в соответствии с количеством локальных очередей.
Локальные очереди используются для хранения фрагментированных данных с высокой степенью многопоточности и предотвращения потери фрагментированных данных. Локальные очереди могут быть расширены в горизонтальном направлении в соответствии с объемом данных с высокой степенью многопоточности, и количество локальных очередей может быть увеличено в случае большого объема данных. Сервер фрагментирует данные с высокой степенью многопоточности, удаляемые из первичной очереди данных, на фрагменты в количестве, равном количеству локальных очередей, в соответствии с количеством локальных очередей для сохранения фрагментированных данных с высокой степенью многопоточности в локальные очереди данных. Данные с высокой степенью многопоточности подвергаются обработке фрагментацией, обеспечивая отсутствие повторения обработки данных и повышая скорость обработки. Специалистам в данной области техники будет понятно, что существует множество стратегий фрагментации данных с высокой степенью многопоточности: возможна фрагментация данных в соответствии с их первичным ключевым признаком, путем выполнения операции по модулю на первичном ключе данных с высокой степенью многопоточности по отношению к количеству локальных очередей, и назначения данных в локальную очередь, имеющую тот же порядковый номер, что и полученный результат; при необходимости возможна фрагментация данных в соответствии с временным интервалом, например назначение первого миллиона единиц данных в первую локальную очередь, и назначение второго миллиона единиц данных во вторую локальную очередь; конечно, существуют и другие стратегии фрагментации.
Этап 150, на котором добавляют фрагментированные данные с высокой степенью многопоточности в локальные очереди.
Сервер добавляет фрагментированные данные с высокой степенью многопоточности в соответствующую локальную очередь в соответствии со стратегией фрагментации данных с высокой степенью многопоточности, и данные с высокой степенью многопоточности буферизуются в локальной очереди.
Этап 160, на котором потребляют данные с высокой степенью многопоточности в локальных очередях и сохраняют данные с высокой степенью многопоточности в базе данных.
Сервер потребляет данные с высокой степенью многопоточности в локальной очереди, т.е. удаляет данные с высокой степенью многопоточности из локальных очередей, и затем сохраняет данные с высокой степенью многопоточности из локальных очередей в базе данных.
В процессе переноса данных с высокой степенью многопоточности (например, добавления данных с высокой степенью многопоточности в первичную очередь данных, потребления данных и т.п.) в данном варианте выполнения при переносе может использоваться формат JSON с высокими рабочими характеристиками, чтобы способствовать сериализации и десериализации данных, ускоряя перенос данных. Будучи легким форматом обмена данных, JSON (JavaScript Object Notation) является основанным на синтаксисе поднабором JavaScript, т.е. содержит массивы и объекты. Сериализация является механизмом, используемым для обработки потока объектов, который реализует потоковую передачу содержимого объекта, и передаваемый потоком объект может подвергаться операциям считывания и записи. Сериализация направлена на решение проблемы, возникающей при операциях считывания и записи потока объектов.
В данном варианте выполнения путем добавления данных с высокой степенью многопоточности в первичную очередь данных, потребления данных с высокой степенью многопоточности в первичной очереди данных путем использования многопотокового режима, фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей, добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди и потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базе данных, данные с высокой степенью многопоточности буферизуются первичной очередью данных и локальными очередями, и данные сохраняются посредством асинхронного сохранения, таким образом уменьшая нагрузку на базу данных путем сохранения данных с высокой степенью многопоточности непосредственно в базе данных, исключая проблему остановки базы данных в случае сохранения данных с высокой степенью многопоточности, и повышая эффективность сохранения данных с высокой степенью многопоточности.
На основе вышеупомянутого технического решения фрагментация данных с высокой степенью многопоточности в соответствии с количеством локальных очередей предпочтительно содержит этапы, на которых:
выполняют операцию нахождения остатка от деления (modulo) в отношении первичного ключа данных с высокой степенью многопоточности на количество локальных очередей; и
фрагментируют соответствующие данные с высокой степенью многопоточности в соответствии с одинаковыми результатами операции нахождения остатка от деления в один фрагмент.
Сначала выполняется операция нахождения остатка от деления для первичного ключа, сгенерированного в данных с высокой степенью многопоточности, на количество локальных очередей, и соответствующие данные с высокой степенью многопоточности с одинаковыми результатами операции нахождения остатка от деления фрагментируются в один фрагмент.
На основе вышеупомянутого технического решения добавление фрагментированных данных с высокой степенью многопоточности в локальные очереди конкретно содержит этапы, на которых:
добавляют фрагментированные данные с высокой степенью многопоточности в локальные очереди, имеющие соответствующие порядковые номера, в соответствии с результатами операции нахождения остатка от деления,
причем каждая локальная очередь имеет свой порядковый номер. Фрагментированные данные с высокой степенью многопоточности добавляются в локальную очередь, имеющую тот же порядковый номер, который получен в результате операции нахождения остатка от деления.
На основе любого из вышеприведенных технических решений потребление данных с высокой степенью многопоточности в локальных очередях и сохранение данных с высокой степенью многопоточности в базе данных предпочтительно содержит этапы, на которых:
потребляют данные с высокой степенью многопоточности в локальных очередях с использованием планирования по времени; и
сохраняют потребляемые данные с высокой степенью многопоточности в базе данных.
Сервер удаляет данные с высокой степенью многопоточности из локальных очередей регулируемым по времени/моментальным способом с использованием планирования по времени. Пользователь может управлять объемом и интервалом времени извлечения данных (их удаления из локальных очередей) и сохранять данные с высокой степенью многопоточности, удаляемые из локальных очередей, в базе данных регулируемым по времени/моментальным способом. Функция обработки данных регулируемым по времени/моментальным способом может быть сконфигурирована с использованием планирования по времени для снижения нагрузки на базу данных при сохранении. Предпочтительно планирование по времени реализуется посредством инструмента Quartz, причем Quartz представляет собой фреймворк для планирования заданий с открытым исходным кодом, полностью написанный на Java.
Вариант выполнения 2
Фиг. 2 - архитектурная схема способа сохранения данных с высокой степенью многопоточности, предусмотренного в варианте выполнения 2 настоящего изобретения. Как показано на Фиг. 2, первичная очередь является первичной очередью для всех данных. Когда данные добавляются в очередь, результат возвращается немедленно, повышая скорость ответа. Пул потоков обеспечивает обработку данных с использованием многопотокового режима, а также фрагментирует данные и добавляет их в соответствующие локальные очереди, повышая скорость потребления сообщения и при этом обеспечивая устойчивость данных путем использования характеристик MQ для предотвращения потери данных. Локальные очереди используются для сортировки фрагментированных данных для исключения потери фрагментированных данных; процесс 1, процесс 2, процесс 3 могут управлять объемом и интервалом времени извлечения данных независимо друг от друга путем потребления данных регулируемым по времени/моментальным способом, их обработки и их сохранения в базе данных.
Фиг. 3 - блок-схема способа сохранения данных с высокой степенью многопоточности, предусмотренного в варианте выполнения 2 настоящего изобретения. Как показано на Фиг. 3, способ сохранения данных с высокой степенью многопоточности, предусмотренный в данном варианте выполнения, конкретно содержит следующие этапы:
Этап 310, на котором добавляют данные с высокой степенью многопоточности в первичную очередь данных.
Данные с высокой степенью многопоточности, подлежащие сохранению, добавляются сначала в первичную очередь данных, и результат для ответа клиенту возвращается после того, как данные с высокой степенью многопоточности добавляются в первичную очередь данных.
Этап 320, на котором потребляют данные с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима.
Данные с высокой степенью многопоточности в первичной очереди данных потребляются с использованием многопотокового режима, обеспечиваемого пулом потоков.
Этап 330, на котором фрагментируют данные с высокой степенью многопоточности и добавляют их в соответствующие локальные очереди.
Операция нахождения остатка от деления в отношении первичного ключа данных с высокой степенью многопоточности на количество локальных очередей выполняется в соответствии с количеством локальных очередей, и фрагментированные данные с высокой степенью многопоточности добавляются в локальную очередь, имеющую тот же порядковый номер, что и результат операции нахождения остатка от деления, на основе результата операции нахождения остатка от деления.
Этап 340, на котором потребляют данные с высокой степенью многопоточности в локальных очередях в соответствии с регулированием по времени.
Данные с высокой степенью многопоточности в локальных очередях потребляются регулируемым по времени/моментальным способом с использованием Quartz.
Этап 350, на котором сохраняют данные в базе данных.
В данном варианте выполнения в обычной реляционной базе данных данные с высокой степенью многопоточности буферизуются первичной очередью данных и подвергаются второй буферизации данных посредством локальных очередей, при этом может быть предотвращена потеря данных, повышена скорость потребления данных первичной очереди данных и может быть повышена эффективность сохранения данных с высокой степенью многопоточности. Может быть предусмотрена функция обработки данных регулируемым по времени/моментальным способом, которая снижает нагрузку на базу данных и исключает проблему остановки в случае сохранения данных с высокой степенью многопоточности.
Вариант выполнения 3
Фиг. 4 - это принципиальная схема устройства для сохранения данных с высокой степенью многопоточности, предусмотренного в варианте выполнения 3 настоящего изобретения. Устройство для сохранения данных с высокой степенью многопоточности, предусмотренное в данном варианте выполнения, предназначено для осуществления способа сохранения данных с высокой степенью многопоточности, предусмотренного в варианте выполнения 1. Как показано на Фиг. 4, устройство для сохранения данных с высокой степенью многопоточности, предусмотренное в данном варианте выполнения, содержит приемный модуль 410, первый модуль 420 добавления, модуль 430 потребления, модуль 440 фрагментации, второй модуль 450 добавления и модуль 460 сохранения.
Приемный модуль 410 используется для приема данных с высокой степенью многопоточности, отправляемых множеством клиентов; первый модуль 420 добавления используется для добавления данных с высокой степенью многопоточности в первичную очередь данных и ответа соответствующему клиенту; модуль 430 потребления используется для потребления данных с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима; модуль 440 фрагментации используется для фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей; второй модуль 450 добавления используется для добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди; и модуль 460 сохранения используется для потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базе данных.
Модуль фрагментации предпочтительно содержит подмодуль операции нахождения остатка от деления для выполнения операции нахождения остатка от деления для первичного ключа данных с высокой степенью многопоточности на количество локальных очередей, и подмодуль фрагментации для фрагментации соответствующих данных с высокой степенью многопоточности в соответствии с одинаковыми результатами операции нахождения остатка от деления в один фрагмент. Предпочтительно. второй модуль добавления предназначен конкретно для добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди, имеющие соответствующие порядковые номера, в соответствии с результатами операции нахождения остатка от деления.
Предпочтительно, модуль сохранения содержит подмодуль потребления для потребления данных с высокой степенью многопоточности в локальных очередях с использованием планирования по времени и подмодуль сохранения для сохранения потребляемых данных с высокой степенью многопоточности в базе данных. Предпочтительно, планирование по времени реализуется посредством Quartz.
Данный вариант выполнения осуществляется путем приема данных с высокой степенью многопоточности, отправленных множеством клиентов, посредством приемного модуля, добавления данных с высокой степенью многопоточности в первичную очередь данных и ответа соответствующему клиенту посредством первого модуля добавления, потребления данных с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима посредством модуля потребления, фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей посредством модуля фрагментации; добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди посредством второго модуля добавления и потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базе данных посредством модуля сохранения. Данные с высокой степенью многопоточности буферизуются первичной очередью данных и локальными очередями, и данные сохраняются посредством асинхронного сохранения, таким образом снижая нагрузку на базу данных путем сохранения данных с высокой степенью многопоточности непосредственно в базе данных, избегая проблему остановки базы данных в случае сохранения данных с высокой степенью многопоточности, и повышая эффективность сохранения данных с высокой степенью многопоточности.
Следует отметить, что выше приведены лишь предпочтительные варианты выполнения настоящего изобретения и используемые технические принципы. Специалистам в данной области техники будет понятно, что настоящее изобретение не ограничено конкретными вариантами выполнения, описанными в настоящем документе, и специалистами в данной области техники будут выполнены различные очевидные изменения, модификации и замены, не выходящие за пределы объема охраны изобретения. Таким образом, при том, что настоящее изобретение было подробно описано посредством вышеприведенных вариантов выполнения, настоящее изобретение не ограничено вышеприведенными вариантами выполнения, но может включать в себя большее число других эквивалентных вариантов выполнения, не выходящих за пределы изобретательского замысла. Объем настоящего изобретения определяется объемом приложенной формулы изобретения.

Claims (30)

1. Способ сохранения данных с высокой степенью многопоточности, отличающийся тем, что содержит этапы, на которых:
принимают данные с высокой степенью многопоточности, отправленные множеством клиентов;
помещают данные с высокой степенью многопоточности в первичную очередь данных и отвечают соответствующему клиенту;
потребляют данные с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима;
фрагментируют данные с высокой степенью многопоточности в соответствии с количеством локальных очередей;
помещают данные с высокой степенью многопоточности в локальные очереди и
потребляют данные с высокой степенью многопоточности в локальных очередях и сохраняют данные с высокой степенью многопоточности в базу данных.
2. Способ по п. 1, отличающийся тем, что фрагментация данных с высокой степенью многопоточности в соответствии с количеством локальных очередей содержит этапы, на которых:
выполняют операцию нахождения остатка от деления в отношении первичного ключа данных с высокой степенью многопоточности на количество локальных очередей и
фрагментируют соответствующие данные с высокой степенью многопоточности в один фрагмент на основе одинаковых результатов операции нахождения остатка от деления.
3. Способ по п. 2, отличающийся тем, что помещение фрагментированных данных с высокой степенью многопоточности в локальные очереди конкретно содержит этап, на котором помещают фрагментированные данные с высокой степенью многопоточности в локальные очереди, имеющие соответствующие порядковые номера, на основе результатов операции нахождения остатка от деления.
4. Способ по любому из пп. 1-3, отличающийся тем, что потребление данных с высокой степенью многопоточности в локальных очередях и сохранение данных с высокой степенью многопоточности в базу данных содержит этапы, на которых:
потребляют данные с высокой степенью многопоточности в локальных очередях с использованием планирования по времени;
сохраняют потребляемые данные с высокой степенью многопоточности в базе данных.
5. Способ по п. 4, отличающийся тем, что планирование по времени реализуется посредством Quartz.
6. Устройство для сохранения данных с высокой степенью многопоточности, отличающееся тем, что содержит:
приемный модуль для приема данных с высокой степенью многопоточности, отправляемых множеством клиентов;
первый модуль добавления для помещения данных с высокой степенью многопоточности в первичную очередь данных и для ответа соответствующему клиенту;
модуль потребления для потребления данных с высокой степенью многопоточности в первичной очереди данных с использованием многопотокового режима;
модуль фрагментации для фрагментации данных с высокой степенью многопоточности в соответствии с количеством локальных очередей;
второй модуль добавления для помещения фрагментированных данных с высокой степенью многопоточности в локальные очереди и
модуль сохранения для потребления данных с высокой степенью многопоточности в локальных очередях и сохранения данных с высокой степенью многопоточности в базу данных.
7. Устройство по п. 6, отличающееся тем, что модуль фрагментации содержит:
подмодуль операции нахождения остатка от деления для выполнения операции нахождения остатка от деления в отношении первичного ключа данных с высокой степенью многопоточности на количество локальных очередей и
подмодуль фрагментации для фрагментации соответствующих данных с высокой степенью многопоточности в один фрагмент на основе одинаковых результатов операции нахождения остатка от деления.
8. Устройство по п. 7, отличающееся тем, что второй модуль добавления предназначен конкретно для добавления фрагментированных данных с высокой степенью многопоточности в локальные очереди, имеющие соответствующие порядковые номера, на основе результата операции нахождения остатка от деления.
9. Устройство по любому из пп. 6-8, отличающееся тем, что модуль сохранения содержит:
подмодуль потребления для потребления данных с высокой степенью многопоточности в локальных очередях с использованием планирования по времени и
подмодуль сохранения для сохранения потребляемых данных с высокой степенью многопоточности в базе данных.
10. Устройство по п. 9, отличающееся тем, что планирование по времени реализуется посредством Quartz.
RU2017128080A 2015-01-08 2016-01-07 Способ и устройство для сохранения данных с высокой степенью многопоточности RU2666245C1 (ru)

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 (1)

Publication Number Publication Date
RU2666245C1 true RU2666245C1 (ru) 2018-09-06

Family

ID=53124348

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017128080A RU2666245C1 (ru) 2015-01-08 2016-01-07 Способ и устройство для сохранения данных с высокой степенью многопоточности

Country Status (5)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2286595C2 (ru) * 2000-11-24 2006-10-27 Катарон Продакшнз, Инк. Реализация компьютерной многозадачности через виртуальную организацию поточной обработки
CN101739296A (zh) * 2009-12-28 2010-06-16 广州菲音信息科技有限公司 数据处理系统和方法
US20110302583A1 (en) * 2010-06-04 2011-12-08 Yale University Systems and methods for processing data
CN103024014A (zh) * 2012-12-03 2013-04-03 北京京东世纪贸易有限公司 通过消息队列的海量数据分发处理的方法和系统
CN104102693A (zh) * 2014-06-19 2014-10-15 广州华多网络科技有限公司 对象处理方法和装置

Family Cites Families (18)

* 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
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
US8621573B2 (en) * 2007-08-28 2013-12-31 Cisco Technology, Inc. Highly scalable application network appliances with virtualized services
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
JP5688452B2 (ja) 2011-05-06 2015-03-25 株式会社日立製作所 計算機システム、及び、情報処理方法
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 杭州闪亮科技有限公司 数据库写入系统及方法
CN103699660B (zh) * 2013-12-26 2016-10-12 清华大学 一种大规模网络流式数据缓存写入的方法
CN104598563B (zh) * 2015-01-08 2018-09-04 北京京东尚科信息技术有限公司 高并发数据存储方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2286595C2 (ru) * 2000-11-24 2006-10-27 Катарон Продакшнз, Инк. Реализация компьютерной многозадачности через виртуальную организацию поточной обработки
CN101739296A (zh) * 2009-12-28 2010-06-16 广州菲音信息科技有限公司 数据处理系统和方法
US20110302583A1 (en) * 2010-06-04 2011-12-08 Yale University Systems and methods for processing data
CN103024014A (zh) * 2012-12-03 2013-04-03 北京京东世纪贸易有限公司 通过消息队列的海量数据分发处理的方法和系统
CN104102693A (zh) * 2014-06-19 2014-10-15 广州华多网络科技有限公司 对象处理方法和装置

Also Published As

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

Similar Documents

Publication Publication Date Title
RU2666245C1 (ru) Способ и устройство для сохранения данных с высокой степенью многопоточности
US11550618B2 (en) Transaction commit operations with thread decoupling
US9917913B2 (en) Large message support for a publish-subscribe messaging system
US20180365254A1 (en) Method and apparatus for processing information flow data
US8776064B2 (en) Methods and systems for batch processing in an on-demand service environment
CN107273542B (zh) 高并发数据同步方法及系统
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
CN103646073A (zh) 一种基于HBase表的条件查询优化方法
WO2018018611A1 (zh) 一种任务处理方法以及网卡
US9378234B2 (en) Management of updates in a database system
CN104683472A (zh) 一种支持大数据量的数据传输方法
CN105786629A (zh) 基于消息队列的数据处理方法
CN110673959A (zh) 用于处理任务的系统、方法和装置
US10776012B2 (en) Lock-free datapath design for efficient parallel processing storage array implementation
CN107391730B (zh) 一种sql语句处理方法及装置
US10831561B2 (en) Method for changing allocation of data using synchronization token
CN112817930A (zh) 一种数据迁移的方法和装置
CN104317906A (zh) Gps监控车台上报数据大规模入库的处理方法
CN111158934B (zh) 基于缓冲队列接收数据实现不同级别延迟拼接方法和装置
Lou et al. Research on data query optimization based on SparkSQL and MongoDB
CN108228644A (zh) 用于报表导出的方法及装置
Lakshmi Data analysis on big data: Improving the map and shuffle phases in Hadoop Map Reduce
JP7508725B2 (ja) 分散データソースに存在するデータストリームの連続処理のためのコンピュータによる処理方法
CN113238843B (zh) 一种任务执行方法、装置、设备及存储介质
Gupta et al. Web-scale entity annotation using MapReduce