RU2666245C1 - Способ и устройство для сохранения данных с высокой степенью многопоточности - Google Patents
Способ и устройство для сохранения данных с высокой степенью многопоточности Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 239000012634 fragment Substances 0.000 claims abstract description 13
- 238000013467 fragmentation Methods 0.000 claims description 18
- 238000006062 fragmentation reaction Methods 0.000 claims description 18
- 239000010453 quartz Substances 0.000 claims description 6
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000013075 data extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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.
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)
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)
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)
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 | 北京京东尚科信息技术有限公司 | 高并发数据存储方法及装置 |
-
2015
- 2015-01-08 CN CN201510009667.2A patent/CN104598563B/zh active Active
-
2016
- 2016-01-07 US US15/542,088 patent/US11327945B2/en active Active
- 2016-01-07 JP JP2017554633A patent/JP6464284B2/ja active Active
- 2016-01-07 RU RU2017128080A patent/RU2666245C1/ru active
- 2016-01-07 WO PCT/CN2016/070397 patent/WO2016110263A1/zh active Application Filing
Patent Citations (5)
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 |