EA005646B1 - База данных с высокоскоростным не параллельным управлением - Google Patents
База данных с высокоскоростным не параллельным управлением Download PDFInfo
- Publication number
- EA005646B1 EA005646B1 EA200400618A EA200400618A EA005646B1 EA 005646 B1 EA005646 B1 EA 005646B1 EA 200400618 A EA200400618 A EA 200400618A EA 200400618 A EA200400618 A EA 200400618A EA 005646 B1 EA005646 B1 EA 005646B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- search
- database
- pointer
- network
- data
- Prior art date
Links
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/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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
- G06F16/2315—Optimistic 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/2365—Ensuring data consistency and integrity
-
- 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
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/964—Database arrangement
- Y10S707/966—Distributed
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Selective Calling Equipment (AREA)
- Small-Scale Networks (AREA)
Abstract
Изобретение относится к способу и системе для высокоскоростного поиска по базе данных с параллельным обновлением без использования блокировок базы данных или средств управления доступом для больших систем баз данных. Система 100 состоит из множества процессоров (102-1, ..., 102-р), подсоединенных к шине, множества кэшей (103-1, ..., 103-р) вторичной памяти, памяти (то есть ОЗУ) (104), постоянного запоминающего устройства (ПЗУ) (106), запоминающего устройства (108), устройства (110) отображения (жидкокристаллического монитора), устройства (112) ввода данных, сетевых интерфейсов (114-1, ..., 114-О), которые могут передавать/принимать электрические сигналы, представляющие различную информацию, глобальной сети (124) связи, локальной сети (122) связи, множества механизмов клиентского протокола сетевых компьютеров (120-1, ..., 120-N) и множества серверов (140-1, ..., 140-S) оперативной обработки транзакций (OLTP) для получения графика обновления в базы данных (142-1, ..., 142-S).
Description
Данная непредварительная заявка испрашивает приоритет предварительной патентной заявки США № 60/330,842 от 1 ноября 2001 года, и предварительной патентной заявки США № 60/365,169 от 19 марта 2002 года, полностью включенных в настоящее описание посредством ссылки.
Область техники
Настоящее изобретение относится к вычислительным системам, более конкретно, к способу и системе для обеспечения высокоскоростного поиска в базе данных с параллельным обновлением, без использования блокировок базы данных или средств управления доступом, для больших систем баз данных. Предшествующий уровень техники
В условиях стремительного роста сети Интернет, разрешение (в службе разрешения имен - процесс определения адреса) при масштабировании службы имен доменов (ΌΝ8) для корневых серверов и общих серверов домена верхнего уровня (дТЬО) при приемлемых ценах становится все в большей степени проблематичным. Корневой сервер (то есть, а.гоо1-5сгусг.пс1) поддерживает и распределяет файл корневой зоны пространства имен Интернета для 12 вторичных корневых серверов, географически распределенных по всему миру (то есть Ь.гоо1-5сгусг.пс1. с.гоо1-§егуег.пе1 и т.д.), в то же время соответствующие сервера ^ТЬИ (то есть а.дИб-кегуега.пе!, Ь.д11б-8егуег8.пе1, и т.д.) распределены аналогичным образом и поддерживают домены верхнего уровня (т.е. *.сот, *.ие1, *.огд и т.д.). Постоянно увеличивающийся объем данных, связанный с неослабевающим увеличением интенсивности запросов, вынуждает полностью переосмыслить инфраструктуру аппаратных средств и программного обеспечения, необходимых для корневой и дТЬП службы ΌΝ8 в течение следующих нескольких лет. Стандартная инсталляция для одиночного сервера стандартных программных средств связывания Ьшб уже не достаточна для потребностей корневого сервера и скоро не будет удовлетворять потребностям дТЬП. В результате слияния коммутируемой телефонной сети общего пользования (Ρ8ΊΝ) и Интернета, появились возможности для универсального, высокоэффективного механизма поиска, обеспечивающего возможности, обычно соответствующие Пунктам Управления Службами (8СР) в сети сигнализации 887 телефонной сети Ρ8ΊΝ, который предлагает новые, усовершенствованные службы, охватывающие Ρ8ΊΝ и Интернет, включая службы Усовершенствованной Интеллектуальной Сети связи (ΑΙΝ), передачи голоса по ΙΡ-протоколу (УО1Р) и геолокации и т.д.
Краткое описание чертежей
Фиг. 1 - структурная схема системы, согласно варианту осуществления настоящего изобретения.
Фиг. 2 - подробная структурная схема, иллюстрирующая структуру данных сообщения, согласно варианту осуществления настоящего изобретения.
Фиг. 3 - подробная структурная схема, иллюстрирующая архитектуру структуры данных времени ожидания сообщения, согласно варианту осуществления настоящего изобретения.
Фиг. 4 - подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения.
Фиг. 5 - подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения.
Фиг. 6 - подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения.
Фиг. 7 - подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения.
Фиг. 8 - подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения.
Фиг. 9 - блок-схема верхнего уровня, поясняющая способ поиска и параллельного обновления базы данных без использования блокировок базы данных или средств управления доступом, согласно варианту осуществления настоящего изобретения.
Подробное описание
Варианты осуществления настоящего изобретения обеспечивают способ и систему для высокоскоростного поиска по базе данных с параллельным обновлением, без использования блокировок базы данных или средств управления доступом, для больших систем баз данных. В частности, через сеть связи может быть получено несколько запросов на поиск, может быть осуществлен поиск по базе данных, и через сеть связи может быть передано несколько ответов по поиску. В то время, как осуществляется поиск по базе данных, новая информация, полученная через сеть связи, может быть включена в базу данных посредством создания нового элемента, основанного на новой информации, и, без блокировки базы данных, записи в базу данных указателя на новый элемент с использованием одной непрерывной операции.
На фиг. 1 показана структурная схема, иллюстрирующая систему, согласно варианту осуществления настоящего изобретения. В общем, система 100 может содержать большую резидентную базу данных, получать через сеть запросы на поиск и обеспечивать ответы по поиску. Например, система 100 может представлять собой симметричный многопроцессорный (8ΜΡ) компьютер, например, такой как ΙΒΜ Κ8/6000®Μ80 или 880, производимый корпорацией ΙΒΜ, (Агтопк, Нью-Йорк), 8ип
-1005646
Еп1егрп8е™10000, производимый 8ии Мкгокуйетк (8аи!а С1ага, Калифорния) и т.д. Система 100 может также представлять собой многопроцессорный персональный компьютер, например, такой как СотрадРгоЕ11ап1™МЬ530 (имеющий два процессора 1и1е1 Реийит® III 866 ΜΗζ), производимый компанией НеМей-Раскагб (Ра1о Л11о, Калифорния). Система 100 может также содержать многопроцессорную операционную систему, например, такую как ΙΒΜ ΑΙΧ® 4, 8ии 8о1ап5™ 8 Орегайид Еиуйоитеи!, Реб На! ыыих® 6.2, и т.д. Система 100 может получать через сеть 124 связи периодические обновления, которые могут параллельно включаться в базу данных. Варианты осуществления настоящего изобретения могут достигать очень высокой производительности обновления и поиска по базе данных посредством включения каждого обновления в базу данных без использования блокировок базы данных или средств управления доступом.
В варианте осуществления система 100 может содержать по меньшей мере один процессор 102-1, подсоединенный к шине 101. Процессор 102-1 может содержать внутренний кэш (например, кэш Ь1, не изображен). Между процессором 102-1 и шиной 101 может быть резидентно размещен кэш 103-1 вторичной памяти (например, кэш Ь2, кэши Ь2/Ь3 и т.д.). В предпочтительном варианте осуществления система 100 может содержать множество процессоров 102-1 ... 102-Р, подсоединенных к шине 101. Между множеством процессоров 102-1 ... 102-Р и шиной 101 (например, архитектура сквозного просмотра) также может быть резидентно размещено множество кэшей 103-1 ... 103-Р вторичной памяти, или, в виде другого варианта, к шине 101 может быть подсоединен, по меньшей мере, один кэш 103-1 вторичной памяти (например, архитектура с предысторией). Система 100 может содержать память 104, например, такую как оперативное запоминающее устройство (ОЗУ), и т.д., подсоединенную к шине 101 для хранения информации и команд, которые должны выполняться множеством процессоров 102-1 ... 102-Р.
Память 104 может хранить большую базу данных, например, для преобразования имен доменов Интернет в Интернет-адреса для преобразования имен или номеров телефонов в сетевые адреса, для обеспечения и обновления данных профиля абонента, для обеспечения и обновления данных присутствия пользователя, и т.д. Преимущественно, размер базы данных и количество преобразований в секунду могут быть очень большими. Например, память 104 может содержать по меньшей мере 64ΟΒ ОЗУ, и может иметь базу данных имен доменов в 500М (то есть, 500х106) записей, базу данных абонентов в 500М записей, базу данных мобильности номеров телефонов в 450М записей и т.д.
В возможной архитектуре 64-битной системы, например, такой как система, содержащая, по меньшей мере, один 64-битный процессор 102-1 с обратным порядком байтов, подсоединенный, по меньшей мере, к 64-битной шине 101, и 64-битную память 104, 8 байтовое значение указателя может быть записано в адрес (ячейки) памяти на границе 8-байтов (то есть, адрес памяти, делимый на восемь, или, например, 8Ν) с использованием одной непрерываемой операции. В основном, наличие кэша 103-1 вторичной памяти может просто задерживать запись 8-байтового указателя в память 104. Например, в одном варианте осуществления, кэш 103-1 вторичной памяти может представлять собой кэш сквозного просмотра, действующий в режиме сквозной записи так, чтобы одиночная команда сохранения 8-байтов могла перемещать восемь байтов данных из процессора 102-1 в память 104, без прерывания, и всего только за два такта системных часов. В другом варианте осуществления, кэш 103-1 вторичной памяти может представлять собой кэш сквозного просмотра, действующий в режиме обратной записи так, чтобы 8-байтовый указатель мог быть сначала записан в кэш 103-1 вторичной памяти, который затем, в более позднее время, может записать 8-байтовый указатель в память 104, например, при записи в память 104 строки кэша, в которой хранится 8-байтовый указатель, (то есть, например, когда «сбрасывается в память» определенная строка кэша, или полностью кэш вторичной памяти).
В конечном счете, с точки зрения процессора 102-1, как только данные фиксируются на выходных контактах процессора 102-1, все 8 байтов данных записываются в память 104 в одной последовательной передаче, без прерываний которая может быть задержана эффектами кэша 103-1 вторичной памяти, если они имеют место. С точки зрения процессоров 102-2 ... 102-Р, как только данные фиксируются на выходных контактах процессора 102-1, все восемь байтов данных записываются в память 104 в одной последовательной передаче без прерываний, которая предписана протоколом согласованности кэша по кэшам 103-1 ...103-Р вторичной памяти, что может задержать запись в память 104, если имеет место.
Однако, если 8-байтовое значение указателя записывается в невыровненную ячейку памяти 104, например, адрес памяти, который пересекает границу 8-байтов, то все восемь байтов данных не могут быть переданы из процессора 102-1 с использованием одиночной команды сохранения 8-байтов. Вместо этого, процессор 102-1 может выдать две разные и отдельные команды сохранения. Например, если адрес памяти начинается за четыре байта до границы 8 - байтов (например, 8Ν-4), то первая команда сохранения передает в память 104 четыре старших байта (например, 8Ν-4), в то время как вторая команда сохранения передает в память 104 четыре младших байта (например, 8Ν) . Существенно, что между этими двумя отдельными командами сохранения, в процессоре 102-1 может иметь место прерывание, или, процессор 102-1 может освободить управление шиной 101 для другого компонента системы (например, процессора 102-Р, и т.д.). Следовательно, значение указателя, резидентно находящееся в памяти 104, будет недействительным, пока процессор 102-1 не сможет завершить вторую команду сохранения. Если другой ком
-2005646 понент начинает одиночное считывание памяти без прерываний в этой ячейке памяти, то недействительное значение будет возвращено как предполагаемое действительным.
Аналогично, новое 4-байтовое значение указателя может быть записано в адрес памяти, делимый на четыре (например, 4Ν), с использованием одиночной операции без прерываний. Следует отметить, что в примере, описанном выше, 4-байтовое значение указателя может быть записано в ячейку памяти 8Ν-4 с использованием одиночной команды сохранения. Безусловно, если 4-байтовое значение указателя записывается в ячейку, пересекающую границу 4-байтов, например, 4Ν-2, то все четыре байта данных не могут быть переданы из процессора 102-1 с использованием одиночной команды сохранения, и значение указателя, резидентно размещенное в памяти 104, может в течение некоторого периода времени быть недействительным.
Система 100 также может содержать постоянное запоминающее устройство (ПЗУ) 106, или другие статические запоминающие устройства, подсоединенные к шине 101 для хранения статической информации и команд для процессора 102-1. К шине 101 для хранения информации и команд может быть подсоединено запоминающее устройство 108, такое как магнитный или оптический диск. Система 100 также может содержать устройство 110 отображения (например, монитор на жидких кристаллах ЬСО (ЖДК)) и устройство 112 ввода данных (например, клавиатуру, мышь, трекбол и т.д.), подсоединенное к шине 101. Система 100 может содержать несколько сетевых интерфейсов 114-1 ... 114-0, которые могут передавать и принимать электрические, электромагнитные или оптические сигналы, несущие потоки цифровых данных, представляющие различные виды информации. В варианте осуществления сетевой интерфейс 114-1 может быть подсоединен к шине 101 и к локальной сети ΕΑΝ (ЛС) 122, в то же время сетевой интерфейс 114-0, может быть подсоединен к шине 101 и глобальной сети νΑΝ (ГС) 124. Множество сетевых интерфейсов 114-1 ... 114-0 могут поддерживать разные сетевые протоколы, включая, например, СщаЬй Е111сгпс1 (например, ΙΕΕΕ Стандарт 802.3-2002, изданный в 2002), ИЬег Сйаппе1 (например, ΑΝ8Ι Стандарт Х.3230-1994, изданный в 1994) и т.д. К ЛС 122 и ГС 124 может быть подсоединено множество сетевых компьютеров 120-1 ... 120-Ν. В одном варианте осуществления ЛС 122 и ГС 124 могут быть физически отдельными сетями, в то же время в другом варианте осуществления ЛС 122 и ГС 124 могут быть (соединены) через сетевой шлюз или маршрутизатор (для ясности не изображены). В качестве другого варианта, ЛС 122 и ГС 124 может быть одной и той же сетью.
Как отмечено выше, система 100 может обеспечивать службы разрешения ΌΝ8. В варианте осуществления для разрешения ΌΝ8 службы разрешения ΌΝ8 в основном могут быть разделены между функциями транспортировки по сети и поиска данных. Например, система 100 может быть механизмом поиска (ЬиЕ) для сервера, оптимизированным для поиска данных по большим наборам данных, в то же время множество сетевых компьютеров 120-1 ... 120-Ν могут представлять собой множество механизмов протокола (РЕ) клиента, оптимизированными для сетевой обработки и транспортировки. ЬиЕ может быть мощным многопроцессорным сервером, который хранит в памяти 104 весь набор записей ΌΝ8, способствуя быстродействующему, высокопроизводительному поиску и обновлению данных. В другом варианте осуществления службы разрешения ΌΝ8 могут быть обеспечены несколькими мощными многопроцессорными серверами или ЬиЕ, каждый из которых хранит в памяти подмножество всего набора записей ΌΝ8, способствуя быстродействующему, высокопроизводительному поиску и обновлению данных.
Напротив, несколько РЕ могут быть общими узко специализированными устройствами на базе РС, на которых исполняется эффективная многозадачная операционная система (например, Кеб На! ΜΝυΧ® (Ό 6.2)), которые минимизируют транспортную нагрузку обработки сети на ЬиЕ для максимизации доступных ресурсов для разрешения ΌΝ8. Устройства РЕ могут обрабатывать нюансы протокола ΌΝ8 проводной линии связи, реагировать на недействительные запросы ΌΝ8 и мультиплексировать действительные запросы ΌΝ8 в ЬиЕ через ЛС 122. В другом варианте осуществления с использованием множества ЬиЕ, хранящих подмножества записей ΌΝ8, РЕ могут определять, какое устройство ЬиЕ должно получить каждый действительный запрос ΌΝ8, и мультиплексировать действительные запросы ΌΝ8 в соответствующий ЬиЕ. Количество РЕ для одного ЬиЕ может определяться, например, количеством запросов ΌΝ8, которое должно обрабатываться в секунду, и рабочими характеристиками конкретной системы. Для определения отношений соответствия и режимов также могут использоваться другие показатели.
В принципе, могут поддерживаться другие крупномасштабные варианты осуществления большого объема, основанные на запросах, включающие в себя, например, разрешение номеров телефонов, обработку сигнализации 887, геолокационное определение, установление соответствия номер телефона абонент, определение местоположения и присутствия абонента и т. д.
В варианте осуществления центральный сервер 140-1 оперативной обработки транзакций (0ЬТР) может быть подсоединен к ГС 124 и получать из разных источников добавления, изменения и удаления (то есть трафик обновления) для базы данных 142-1. 0ЬТР сервер 140-1 может передавать обновления через ГС 124 в систему 100, которая содержит локальную копию базы данных 142-1. 0ЬТР сервер 140-1 может быть оптимизирован для обработки графика обновления в различных форматах и протоколах, включая, например, Протокол Передачи Гипертекстовых файлов (НТТР), Протокол Регистратора Записи (ККР), Наращиваемый Протокол Инициализации (ЕРР), Систему Управления Службами/ Механизированный Общий Интерфейс (ΜΟΙ) 800, и другие оперативные протоколы инициализации. Совокупность
-3005646
ББЕ только для чтения может быть развернута в архитектуре «концентратор-луч» (линия, идущая от центра к периферии) для обеспечения возможности высокоскоростного поиска в совокупности с объемными, добавочными обновлениями из ОБТР сервера 140- 1.
В альтернативном варианте осуществления данные могут быть распределены по множеству ОБТР серверов 140-1 ... 140-8, каждый из которых может быть подсоединен к ГС 124. ОБТР серверов 140-1 ... 140-8 могут получать из разных источников добавления, изменения и удаления (то есть трафик обновления) для соответствующих им баз данных 142-1 ... 142-8 (не изображены для ясности) . ОБТР сервера 140-1 ... 140-8 могут передавать обновления через ГС 124 в систему 100, которая может содержать копии баз данных 142-1 ... 142-8, другие динамически-создаваемые данные и т.д. Например, в варианте осуществления для геолокации ОБТР сервера 140-1 ... 140-8 могут получать график обновления от групп удаленных датчиков. В другом альтернативном варианте осуществления множество сетевых компьютеров 120-1 ... 120-Ν также может получать через ГС 124 или ЛС 122 добавления, изменения и удаления (то есть трафик обновления) из разных источников. В этом варианте осуществления множество сетевых компьютеров 120-1 ... 120-Ν может передавать в систему 100 обновления, а также запросы.
В варианте осуществления разрешения ΌΝ8 каждый РЕ (например, каждый из множества сетевых компьютеров 120-1 . 120-Ν) может комбинировать, или мультиплексировать, различные сообщения запросов ΌΝ8, полученные через глобальную сеть связи (например, ГС 124), в одиночный Суперпакет Запроса и через локальную сеть связи (например, ЛС 122) передавать Суперпакет Запроса в БИЕ (например, систему 100). БИЕ может комбинировать, или мультиплексировать, несколько ответов на сообщения запросы ΌΝ8 в одиночный СуперПакет Ответа и передавать Суперпакет Ответа через локальную сеть связи соответствующему РЕ. В основном, максимальный размер Суперпакета Ответа или Запроса может быть ограничен максимальным блоком передачи (МТИ) физического сетевого уровня (например, СфаЬцЕ111сгпс1). Например, стандартные размеры сообщения запроса и ответа ΌΝ8, не превышающие 100 байтов и 200 байтов, соответственно, позволяют мультиплексировать более 30 запросов в одиночный Суперпакет Запроса, а также мультиплексировать более 15 ответов в одиночный Суперпакет Ответа. Однако, в одиночный Суперпакет Запроса может быть включено меньшее количество запросов (например, 20 запросов), чтобы избежать переполнения МТБ при ответе (например, в 10 ответов). Для больших размеров МТБ, количество мультиплексированных запросов и ответов может быть, соответственно, увеличено.
Каждый многозадачный РЕ может иметь входящий поток и исходящий поток для управления запросами и ответами ΌΝ8, соответственно. Например, входящий поток может демаршалинговать компоненты запроса ΌΝ8 из входящих пакетов запроса ΌΝ8, полученных через глобальную сеть связи, и мультиплексировать несколько миллисекунд запросов в одиночный Суперпакет Запроса. Затем входящий поток может передать Суперпакет Запроса через ЛС в ББЕ. Обратно, исходящий поток может получать Суперпакет Ответа из ББЕ, демультиплексировать содержащиеся в нем ответы и маршалинговать различные поля в действительный ответ ΌΝ8, который затем может быть передан через глобальную сеть связи. В основном, как отмечено выше, могут поддерживаться другие варианты осуществления большого объема, основанные на запросах.
В варианте осуществления Суперпакет Запроса может также содержать информацию о состоянии, соответствующую каждому запросу ΌΝ8, например, такую как исходный адрес, тип протокола и т.д. ББЕ может включать Суперпакет Ответа информацию о состоянии и соответствующие ответы ΌΝ8. Затем каждый РЕ может формировать и возвращать действительные сообщения ответа ΌΝ8 с использованием информации, переданной из ББЕ. Следовательно, каждый РЕ может, преимущественно, функционировать как устройство, не меняющее своего состояния в процессе исполнения, то есть действительные ответы ΌΝ8 могут быть сформированы из информации, содержащейся в Суперпакете Ответа. В основном, ББЕ может возвращать Суперпакет Ответа в РЕ, из которого исходил входящий Суперпакет, однако, очевидно, что возможны другие варианты.
В альтернативном варианте осуществления каждый РЕ может поддерживать информацию о состоянии, соответствующую каждому запросу ΌΝ8 и включать ссылку, или дескриптор, на информацию о состоянии Суперпакет Запроса. ББЕ может включать Суперпакет Ответа ссылки на информацию о состоянии и соответствующие ответы ΌΝ8. Затем каждый РЕ может формировать и возвращать действительные сообщения ответа ΌΝ8 с использованием ссылок на информацию о состоянии, переданных из ББЕ, а также поддерживаемой им информации о состоянии. В этом варианте осуществления ББЕ может возвращать Суперпакет Ответа в РЕ, из которого исходил входящий Суперпакет.
На фиг.2 представлена подробная структурная схема, иллюстрирующая структуру данных сообщения, согласно варианту осуществления настоящего изобретения. В основном, сообщение 200 может содержать заголовок 210, имеющий множество порядковых номеров 211-1 ... 211-8 и множество счетчиков 212-1 ... 212-8 сообщений и полезную нагрузку 215 данных.
В варианте осуществления разрешения ΌΝ8 сообщение 200 может использоваться для Суперпакетов Запроса и Суперпакетов Ответа. Например, Суперпакет 220 Запроса может содержать заголовок 230, имеющий множество порядковых номеров 231-1 ... 231-8 и множество счетчиков 232-1 ... 232-8 сообщений и полезную нагрузку 235 данных, содержащую множество запросов 236-1 ... 236 - О ΌΝ8, накоп
-4005646 ленных РЕ за предварительно определенный период времени, например, за несколько миллисекунд. В одном варианте осуществления каждый запрос 236-1 ... 236-0 ΌΝ8 может содержать информацию о состоянии, хотя в альтернативном варианте осуществления каждый запрос 236-1 ... 236-0 ΌΝ8 может содержать дескриптор для информации о состоянии.
Аналогично, Суперпакет 240 Ответа может содержать заголовок 250, имеющий множество порядковых номеров 251-1 ... 251-8 и множество счетчиков 252-1 ... 252-8 сообщений и полезную нагрузку 255 данных, содержащую ответы 256-1 ... 256-К ΌΝ8, примерно соответствующие множеству запросов ΌΝ8, содержащихся внутри Суперпакета 220 Запроса. В одном варианте осуществления каждый ответ 256-1 ... 256-К. ΌΝ8 может содержать информацию о состоянии, сопоставленную соответствующему запросу ΌΝ8, в то же время в альтернативном варианте осуществления каждый ответ 256-1 ... 256-К ΌΝ8 может содержать дескриптор для информации о состоянии, сопоставленной соответствующему запросу ΌΝ8. Иногда, общий размер соответствующих ответов ΌΝ8 может превышать размер полезной нагрузки 255 данных Суперпакета 240 Ответа. Это переполнение может быть ограничено, например, одним ответом, то есть, ответом, соответствующим последнему запросу, содержащемуся внутри Суперпакета 220 Запроса. Вместо передачи дополнительного Суперпакета 240 Ответа, содержащего только один ответ, предпочтительно, ответ, вызывающий переполнение, может быть включен в следующий Суперпакет 240 Ответа, соответствующий следующему Суперпакету Запроса. Преимущественно, заголовок 250 может содержать соответствующую информацию для определения границ для условия переполнения. В пиковых условиях обработки при переполнении в следующий Суперпакет Ответа может переходить более одного ответа.
Например, в Суперпакете 240 Ответа заголовок 250 может содержать, по меньшей мере, два порядковых номера 251-1 и 251-2 и, по меньшей мере, два счетчика 252-1 и 252-2 сообщений, сгруппированных в виде двух пар дополнительных полей. Хотя может существовать 8 пар порядковых номеров и счетчиков сообщений, обычно, 8 является небольшим числом, таким как, например, 2, 3, 4 и т.д. Следовательно, заголовок 250 может содержать порядковый номер 251-1, парный с счетчиком 252-1 сообщений, порядковый номер 251-2, парный с счетчиком 252-2 сообщений, и т.д. В основном, счетчик 252-1 сообщений может отражать количество ответов, содержащихся внутри полезной нагрузки 255 данных, которые соответствуют порядковому номеру 251-1. В варианте осуществления порядковым номером 251-1 может быть двух-байтовое поле, в то же время счетчиком 252-1 сообщений может быть однобайтовое поле.
В более частном примере полезная нагрузка 235 данных из Суперпакета 220 Запроса может содержать семь запросов ΌΝ8 (как изображено на Фиг.2). В одном варианте осуществления порядковый номер 231-1 может быть установлен на уникальное значение (например, 1024) и счетчик 232-1 сообщений может быть установлен на семь, в то же время порядковый номер 231-2 и счетчик 232-2 сообщений могут быть установлены на нуль. В другом варианте осуществления заголовок 230 может содержать только один порядковый номер и один счетчик сообщений, например, порядковый номер 231-1 и счетчик сообщений 232-1, установленные на 1024 и семь, соответственно. Обычно, Суперпакет 220 Запроса может содержать все запросы, соответствующие конкретному порядковому номеру.
Полезная нагрузка 255 данных Суперпакета 240 Ответа может содержать семь соответствующих ответов ΌΝ8 (как указано на Фиг.2). В указанном примере заголовок 250 может содержать информацию, подобную информации Суперпакета 220 Запроса, то есть, порядковый номер 251-1, установленный на то же уникальное значение (то есть, 1024), счетчик 252-1 сообщений, установленный на семь, и порядковый номер 252-2 и счетчик 252-2 сообщений, установленные на нуль. Однако, в другом примере, полезная нагрузка данных 255 Суперпакета 240 Ответа может содержать только пять соответствующих ответов ΌΝ8, и при этом счетчик 252-1 сообщений может быть установлен на пять. Оставшиеся два ответа, соответствующие порядковому номеру 1024, могут быть включены в следующий Суперпакет 240 Ответа.
Следующий Суперпакет 240 Запроса может содержать другой порядковый номер (например, 1025) и по меньшей мере один запрос ΌΝ8, так что следующий Суперпакет 240 Ответа может содержать два предыдущих ответа, соответствующих порядковому номеру 1024, а также, по меньшей мере, один ответ, соответствующий порядковому номеру 1025. В этом примере заголовок 250 следующего Суперпакета 240 Ответа может содержать порядковый номер 251-1, установленный на 1024, счетчик 252-1 сообщений, установленный на два, порядковый номер 251-2, установленный на 1025, и счетчик 252-2 сообщений, установленный на единицу. Следовательно, Суперпакет 240 Ответа может содержать всего три ответа, соответствующих трем запросам, содержащимся в двух различных Суперпакетах Запроса.
На фиг. 3 представлена подробная структурная схема, иллюстрирующая архитектуру структуры данных времени ожидания сообщения, согласно варианту осуществления настоящего изобретения.
Структура 300 данных времени ожидания сообщения может содержать информацию, в основном соответствующую передаче и получению сообщения 200. В варианте осуществления разрешения ΌΝ8 структура 300 данных времени ожидания сообщения может содержать информацию о времени ожидания относительно Суперпакетов Запроса и Суперпакетов Ответа; такая информация о времени ожидания может быть организована в формате таблицы, индексированной в соответствии с значением порядкового номера (например, индекс 301). Например, количество строк Ν в структуре 300 данных времени ожида
-5005646 ния сообщения может быть равным общему количеству уникальных порядковых номеров, как иллюстрируется, в основном, элементами 310, 320 и 330 таблицы. В варианте осуществления порядковые номера заголовка Суперпакета могут иметь двух-байтовую длину и определять диапазон уникальных порядковых номеров от нуля до 216-1 (то есть 65535). В этом случае, N может быть равным 65536. Информация о времени ожидания может содержать Временную метку 302 Запроса, Счетчик 303 запросов Запроса, Временную метку 304 Ответа, Счетчик 305 ответов Ответа, и Счетчик 306 сообщений Ответа. В альтернативном варианте осуществления информация о времени ожидания может также содержать Временную метку Первоначального Ответа (не изображена).
В одном примере элемент 320 таблицы иллюстрирует информацию о времени ожидания для Суперпакета 220 Запроса, имеющего один порядковый номер 231-1, равный 1024. Временная метка 302 Запроса может указывать, когда данный конкретный Суперпакет Запроса был передан в ЬиЕ. Счетчик 303 запросов Запроса может указывать количество запросов, содержащихся внутри данного конкретного Суперпакета Запроса. Временная метка 304 Ответа может указывать, когда Суперпакет Ответа, имеющий порядковый номер, равный 1024, был получен в РЕ (например, в сетевом компьютере 120-Ν) и может обновляться, если в РЕ было получено более одного Суперпакета Ответа. Счетчик 305 ответов Ответа может указывать общее количество ответов, содержащихся внутри всех полученных Суперпакетов Ответа, соответствующих указанному порядковому номеру (то есть 1024). Счетчик 306 Сообщений Ответа может указывать количество Суперпакетов Ответа, поступивших в РЕ, имеющих данный порядковый номер (то есть, 1024). Ответы на запросы, содержащиеся внутри данного конкретного Суперпакета Запроса, могут быть разбиты по нескольким Суперпакетами Ответа, в этом случае при получении каждого из дополнительных Суперпакетов Ответа, Временная метка 304 Ответа, Счетчик 305 ответов Ответа, и Счетчик 306 Сообщений Ответа могут обновляться. В альтернативном варианте осуществления Временная метка Первоначального Ответа может указывать, когда в РЕ был получен первый Суперпакет Ответа, содержащий ответы для указанного порядкового номера (то есть, 1024). В этом варианте осуществления, при получении дополнительных (то есть второго и последующих) Суперпакетов Ответа, Временная метка 304 Ответа может обновляться.
Из информации о времени ожидания, содержащейся в структуре 300 данных времени ожидания сообщения, могут быть определены разные важные показатели времени ожидания. Например, простая перекрестная проверка между Счетчиком 303 запросов Запроса и Счетчиком 305 ответов Ответа для заданного индекса 301 (то есть порядкового номера) может показать количество отсутствующих ответов. Эта разница может указывать на количество запросов, опущенных ЬиЕ по неизвестной причине. Сравнение Временной метки 302 Запроса и Временной метки 304 Ответа может показать, насколько хорошо может работать конкретная комбинация РЕ/ЬиЕ при текущей загрузке сообщений. Разница между текущим порядковым номером Суперпакета Запроса и текущим порядковым номером Суперпакета Ответа может быть связана с реакционной способностью ЬиЕ; например, чем больше разница, тем ниже эта рабочая характеристика. Счетчик 306 Сообщений Ответа может указывать количество Суперпакетов Ответа, используемых для каждого Суперпакета Запроса, и может быть значим для анализа графика разрешения ΌΝ8. При увеличении времени ожидания запросов и ответов, перемещающихся между РЕ и ЬиЕ, РЕ могут уменьшить количество пакетов запроса ΌΝ8, обрабатываемых системой.
В основном, ЬиЕ может выполнять многопоточный поиск по входящим, мультиплексированным Суперпакетам Запроса, и может объединять ответы в исходящие, мультиплексированные Суперпакеты Ответа. Например, ЬиЕ может порождать один поток поиска, или процесс, для каждого активного РЕ и направлять все входящие Суперпакеты Запроса из этого РЕ в данный поток поиска. ЬиЕ может порождать управляющий поток, или процесс, для управления совокупностью РЕ, для потоков поиска, а также потока обновления, или процесса, для обновления базы данных, размещенной в памяти 104. Каждый поток поиска может извлекать из входящего Суперпакета Запроса запросы на поиск, выполнять разные поиски, создавать исходящий Суперпакет Ответа, содержащий ответы по поиску и передавать Суперпакет соответствующему РЕ. Поток обновления может получать обновления для базы данных, из ОЬТР 140-1, и включать в базу данных новые данные. В альтернативном варианте осуществления множество сетевых компьютеров 120-1 ... 120-Ν могут передавать обновления системе 100. Эти обновления могут включаться, например, во входящий поток сообщений Суперпакета Запроса.
Соответственно, на основании протокола Суперпакета, ЬиЕ может расходовать менее 15% ресурсов процессора на сетевую обработку, вследствие этого существенно увеличивая пропускную способность запросов на поиск. В одном варианте осуществления ΙΒΜ® 8-^ау М80 может поддерживать скорости поиска от 180к до 220к запросов в секунду (с.|р5). в то время как ΙΒΜ® 24-\сау 880 может поддерживать от 400к до 500к с|рь. Удвоение скоростей поиска, то есть, до 500к и 1М ςρ§, соответственно, просто требует вдвое большее количество аппаратных средств, то есть, например, два ЬиЕ с обслуживающими их РЕ. В другом варианте осуществления многопроцессорный персональный компьютер на двух процессорах РЕКТГОМ® III 866 МГц, исполняющий Веб На! ΠΝυΧ® 6.2, может поддерживать скорости обновления порядка 100К/§ее. Безусловно, рост эффективности аппаратных средств также повышает скорости обновления и поиска, соответствующие вариантам осуществления настоящего изобретения, и по мере того как фирмы - изготовители заменяют указанные многопроцессорные компьютеры, например, уст
-6005646 ройствами с более высоким быстродействием, поддерживаемые скорости поиска и обновления могут соразмерно увеличиваться. В принципе, система 100 не ограничена архитектурой клиента или сервера, и варианты осуществления настоящего изобретения не ограничены какой-либо конкретной комбинацией аппаратных средств и/или программного обеспечения.
На фиг. 4 представлена структурная схема, иллюстрирующая общую архитектуру базы данных, согласно варианту осуществления настоящего изобретения. В этом варианте осуществления база данных 400 может содержать, по меньшей мере, одну таблицу, или группу записей 401 базы данных и, по меньшей мере, один соответствующий индекс 402 поиска с указателями (индексы, указывающие смещения байтов, и т.д.) на индивидуальные записи внутри группы записей 401 базы данных. Например, указатель 405 может осуществлять ссылку на запись 410 базы данных.
В одном варианте осуществления база данных 400 может содержать, по меньшей мере, одну хэштаблицу 403 в качестве индекса поиска с указателями (индексы, указывающие смещения байтов, и т.д.) внутри таблицы или группы записей 401 базы данных. Хэш-функция может отображать поисковый ключ в целочисленное значение, которое затем может использоваться в качестве индекса в хэш-таблице 403. Поскольку в одно целочисленное значение может быть отображено более одного поискового ключа, то могут создаваться хэш-области памяти с использованием однонаправленного списка указателей цепочки хэширования. Например, каждый элемент в хэш-таблице 403 может содержать указатель на первый элемент хэш-области памяти, и каждый элемент хэш-области памяти может содержать указатель цепочки хэширования на следующий элемент, или запись базы данных в связанном списке. Преимущественно, указатель цепочки хэширования может требоваться только для элементов, или записей базы данных, которые осуществляют ссылку на последующий элемент в хэш-области памяти.
Хэш-таблица 403 может содержать массив 8-байтовых указателей на индивидуальные записи 401 базы данных. Например, хэш-указатель 404 внутри хэш-таблицы 403 может осуществлять ссылку на запись 420 базы данных, как на первый элемент внутри хэш-области памяти. Запись 420 базы данных может содержать указатель 424 цепочки хэширования, который может осуществлять ссылку на следующий элемент, или запись базы данных, в хэш области памяти. Запись 420 базы данных также может содержать длину 421 данных и соответствующие данные 422 фиксированной или переменной длины. В одном варианте осуществления может присоединяться символ 423 нуля, указывающий окончание данных 422. Дополнительно, запись 420 базы данных может содержать указатель 425 на данные, который может осуществлять ссылку на другую запись базы данных или внутри группы записей 401 базы данных или внутри другой таблицы или группы записей базы данных (не изображены), в которых могут быть размещены дополнительные данные.
Система 100 может использовать разные известные алгоритмы для поиска по указанной архитектуре структуры данных для заданного условия или поискового ключа. В основном, поиск по базе данных 400 может осуществляться посредством множества процессов поиска, или потоков, выполняющихся, по меньшей мере, на одном из множества процессоров 102-1 ... 102-Р. Однако, изменения в базе данных 400 в целом не могут быть выполнены потоком (или потоками) обновления, пока на период времени, необходимый для добавления, изменения или удаления информации внутри базы данных 400, не предотвращен доступ к базе данных 400 для потока(ов) поиска. Например, для изменения записи 430 базы данных внутри базы данных 400, группа записей 401 базы данных может быть блокирована потоком обновления, чтобы предотвратить доступ потоков поиска к базе данных 400, пока поток обновления изменяет информацию внутри записи 430 базы данных. Существует много известных механизмов для блокировки базы данных 400 с целью предотвращения доступа для поиска, включая использование спин-блокировок, семафоров, мьютексов и т.д. Дополнительно, существующие коммерческие базы данных обеспечивают специальные команды для полной или частичной блокировки базы данных 400, например, команда «заблокировать таблицу» в Базе данных Огас1е 8, созданной корпорацией Огас1е (Редвуд Шорез, Калифорния) и т. д.
На фиг. 5 представлена структурная схема, иллюстрирующая общую архитектуру базы данных, согласно другому варианту осуществления настоящего изобретения. В этом варианте осуществления база данных 500 может содержать высоко оптимизированный главный файл 510 кадра (отображения статического состояния набора данных), разрешенный только для чтения, и файл 520 предыстории. Главный файл 510 кадра может содержать, по меньшей мере, одну таблицу, или группу записей 511 базы данных и, по меньшей мере, один соответствующий индекс 512 поиска с указателями (индексы, указывающие смещения байтов, и т.д.) на индивидуальные записи группе записей 511 базы данных. В другом варианте, главный файл 510 кадра может содержать, по меньшей мере, одну хэш-таблицу 513 в качестве индекса поиска с указателями (индексы, указывающие смещения байтов, и т.д.) в таблице или группе записей 511 базы данных. Аналогично, файл 520 предыстории может содержать, по меньшей мере, две таблицы или группы записей базы данных, включая записи 521 добавления в базу данных и записи 531 удаления из базы данных. Могут быть обеспечены соответствующие индексы 522 и 532 поиска с указателями (индексы, указывающие смещения байтов, и т.д.) на индивидуальные записи в записях 521 добавления в базу данных и в записях 531 удаления из базы данных. В другом варианте, файл 520 предыстории может содержать хэш-таблицы 523 и 533 в качестве индексов поиска, с указателями (индексы, указывающие сме
-7005646 щения байтов, и т.д.) на записи 521 добавления в базу данных и на записи 531 удаления из базы данных, соответственно.
Система 100 может использовать разные известные алгоритмы для поиска по указанной архитектуре структуры данных для заданного условия или поискового ключа. В типичном примере файл 520 предыстории может содержать все последние изменения данных, и по нему может быть осуществлен поиск до главного файла 510 кадра, разрешенного только для чтения. Если поисковый ключ найден в файле 520 предыстории, то ответ возвращается без обращения к файлу 510 кадра, но если ключ не найден, то может быть осуществлен поиск по файлу 510 кадра. Однако, когда файл 520 предыстории больше не согласуется в памяти 104 с файлом кадра 510, то скорости запросов на поиск существенно падают, например, от 10 до 50 раз, или больше. Следовательно, чтобы избежать или минимизировать любое падение скоростей запросов на поиск, файл 510 кадра может периодически обновляться, или повторно создаваться для включения всех добавлений, удалений и изменений, содержащихся в файле 520 предыстории.
Данные в файле 510 кадра физически не изменяются, но добавляются, изменяются или удаляются логически. Например, данные в файле 510 кадра могут быть удалены, или логически забыты, посредством создания соответствующий записи удаления в записях 531 удаления из базы данных и записи указателя на запись удаления для соответствующей ячейки в хэш-таблице 533. Данные в файле 510 кадра могут быть логически изменены посредством копирования записи данных из файла 510 кадра в новую запись данных в записях 521 добавления в базу данных, изменения данных внутри нового входа (записи), и затем записи указателя для нового входа в соответствующую хэш-таблицу (например, хэш-таблица 522) или указателя цепочки в записях 521 добавления в базу данных. Аналогично, данные в файле 510 кадра могут быть логически добавлены в файл 510 кадра посредством создания новой записи данных в записях 521 добавления в базу данных и затем записи указателя для нового входа в соответствующую хэштаблицу (например, хэш-таблица 522) или указателя цепочки в записях 521 добавления в базу данных.
В варианте осуществления разрешения ΌΝ8, например, файл 510 кадра может содержать данные имен доменов и данные сервера доменных имен, организованные в виде отдельных таблиц данных, или блоков, с отдельными индексами поиска (например, 511-1, 511-2, 512-1, 512-2, 513-1, 513-2, и т.д., для ясности не изображены). Аналогично, файл 520 предыстории может содержать добавления и изменения для данных имен доменов и для данных сервера доменных имен, а также удаления для данных имен доменов и для данных сервера доменных имен (например, 521-1, 521-2, 522-1, 522-2, 523-1, 523-2, 531-1, 531-2, 532-1, 532-2, 533-1, 533-2 и т.д., для ясности не изображены).
На фиг. 6 представлена подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения. В основном, база данных 600 может быть организована в единое представление данных с возможностью осуществления поиска. Обновления набора данных могут включаться в базу данных 600 постоянно, и для релевантных записей базы данных удаления или изменения могут выполняться физически для освобождения пространства в памяти 104, например, для последующих добавлений или изменений. Единое представление с возможностью осуществления поиска очень хорошо масштабируется для больших размеров набора данных и высоких скоростей обновления и поиска, и устраняет необходимость периодического повторного создания, распространения и перезагрузки файлов кадра для множества компьютеров механизма поиска.
В варианте осуществления разрешения ΌΝ8, например, база данных 600 может содержать данные 610 имен доменов и данные 620 сервера доменных имен. Данные 610 имен доменов и данные 620 сервера доменных имен могут содержать индексы поиска с указателями (индексы, указывающие смещения байтов, и т.д.) на блоки записей переменной длины. Как описано выше, хэш-функция может отображать поисковый ключ в целочисленное значение, которое затем может использоваться в качестве индекса в хэш-таблице. Аналогично, для каждого индекса хэш-таблицы могут быть созданы хэш-области памяти с использованием однонаправленного списка указателей цепочки хэширования. Данные 610 имен доменов могут содержать, например, хэш-таблицу 612 в качестве индекса поиска и блок записей 611 имен доменов переменной длины. Хэш-таблица 612 может содержать массив 8-байтовых указателей на индивидуальные записи 611 имен доменов, например, таких как указатель 613, осуществляющий ссылку на запись
620 имени домена. Запись 620 имени домена переменной длины может содержать, например, смещение
621 следующей записи, длину 622 имени, нормированное имя 623, указатель 624 цепочки (то есть, например, указывающий на следующую запись в цепочке хэширования), количество 625 серверов доменных имен и указатель 626 сервера доменных имен. Размер указателя 624 цепочки и указателя 626 сервера доменных имен может быть оптимизирован для отражения требуемого размера блока для каждого конкретного типа данных, например, восемь байтов для указателя 624 цепочки и четыре байта для указателя 626 сервера доменных имен.
Данные 630 серверов доменных имен могут содержать, например, хэш-таблицу 632 в качестве индекса поиска и блок записей 631 сервера доменных имен переменной длины. Хэш-таблица 632 может содержать массив 4-байтовых указателей на индивидуальные записи 631 серверов доменных имен, например, такие как указатель 633, ссылающийся на запись 640 сервера доменных имен. Запись 640 сервера доменных имен переменной длины может содержать, например, смещение 641 следующей записи,
-8005646 длину 642 имени, нормированное имя 643, указатель 644 цепочки (то есть, например, указывающий на следующую запись в цепочке хэширования), количество сетевых адресов 645 сервера доменных имен, длину 646 адреса сервера доменных имен и сетевой адрес 647 сервера доменных имен, который может быть, например, сетевым адресом Интернет Протокола (ΙΡ). В основном, сетевые адреса сервера доменных имен могут храниться в формате А8СП (Американский Стандартный Код Обмена Информацией, например, Ι8Ο-14962-1997, ΑΝ8Ι-Χ3.4-1997 и т.д.) или в двоичном формате; в этом примере, длина 646 сетевого адреса сервера доменных имен указывает, что сетевой адрес 647 сервера доменных имен хранится в двоичном формате (то есть, четыре байта). Размер указателя 644 цепочки также может быть оптимизирован для отражения требуемого размера блока данных сервера доменных имен, например, 4 байта.
В основном, индексы поиска, такие как хэш-таблицы, и записи данных переменной длины могут быть структурированы так, чтобы 8-байтовые указатели в памяти были размещены на границах 8-байтов. Например, хэш-таблица 612 может содержать непрерывный массив 8-байтовых указателей на записи 611 имен доменов и может храниться в адресе памяти, делимом на восемь (то есть границе 8-байтов, или 8Ν). Аналогично, индексы поиска, такие как хэш-таблицы, и записи данных переменной длины могут быть структурированы так, чтобы 4-байтовые указатели в памяти были размещены на границах 4-байтов. Например, хэш-таблица 632 может содержать непрерывный массив 4-байтовых указателей на записи 631 серверов доменных имен и может храниться в адресе памяти, делимом четыре (то есть границе 4-байтов, или 4Ν). Следовательно, изменения в базе данных 600 могут заключаться в обновлении указателя в выровненном адресе памяти с использованием одиночной непрерываемой операции, включающей, например, запись нового указателя в индекс поиска, такой как хэш-таблица, или запись нового указателя цепочки хэширования в запись данных переменной длины.
На фиг. 7 представлена подробная структурная схема, иллюстрирующая архитектуру структуры данных с не параллельным управлением, согласно варианту осуществления настоящего изобретения. В основном, база данных 700 также может быть организована в единое представление данных с возможностью осуществления поиска. Обновления набора данных могут постоянно включаться в базу данных 700, и для релевантных записей базы данных удаления или изменения могут выполняться физически для освобождения пространства в памяти 104, например, для последующих добавлений или изменений. Единое представление с возможностью осуществления поиска очень хорошо масштабируется для больших размеров набора данных и высокой скорости обновления и поиска и устраняет необходимость в периодическом повторном создании, распространении и перезагрузке файлов кадра для множества компьютеров механизма поиска.
Возможны многие разные способы организации структур данных. Возможный способ организации может использовать альтернативный индекс поиска по отношению к хэш-таблицам для упорядоченного последовательного доступа к записям данных, такой как тернарное дерево поиска, или Т8Т. которое комбинирует возможности двоичных деревьев поиска и подходы цифрового поиска. В приложениях, основанных на текстовых данных, таких как например, «кто есть кто», разрешение имени домена с использованием Расширений Защиты ΌΝ8 (Запрос на Комментарии Проблемной Группы Проектирования Интернет: 2535), и т.д. деревья Т8Т. преимущественно, минимизируют количество операций сравнения, необходимых для выполнения, особенно в случае неудачи при поиске, и могут выдавать показатели эффективности поиска, превышающие соответствующие показатели для реализации механизма поиска с хешированием. Дополнительно, деревья Т8Т могут обеспечивать также расширенные возможности поиска текста, например, такие как поиск с групповым символом (джокером), который может быть полезен в приложениях поиска текста, таких как, например, «кто есть кто», разрешения имен доменов, поиска содержимого Интернет и т.д.
В одном варианте осуществления Т8Т может содержать последовательность узлов, связанных вместе в иерархической зависимости. Корневой узел может быть размещен на вершине дерева, зависимые узлы-потомки и связи могут формировать ветви (условные переходы), а концевые узлы могут завершать конец каждой ветви. Каждому концевому узлу может соответствовать конкретный поисковый ключ, и каждый узел на пути к концевому узлу может содержать одиночный последовательный элемент этого ключа. Каждый узел в дереве содержит символ сравнения, или значение разделения и три указателя на другие последующие узлы, или узлы-потомки в дереве. Эти указатели осуществляют ссылку на узлыпотомки, чьи значения разделения меньше, равны, или больше значений разделения узла. Следовательно, поиск по Т8Т по конкретному ключу включает прохождение по дереву от корневого узла до конечного концевого узла, при последовательном сравнении каждого элемента, или позиции символа ключа с значениями разделения узлов на пути. Дополнительно, концевой узел также может содержать указатель на ключевую запись, которая может, в свою очередь, содержать, по меньшей мере, один указатель на конечную запись данных, содержащую данные записи, соответствующие ключу, (например, адрес ΙΡ). В другом варианте, ключевая запись может полностью содержать данные записи. Данные записи могут храниться в двоичном формате, формате текста А8СП и т.д.
В одном варианте осуществления база данных 700 может быть организована в виде Т8Т. содержащем несколько узлов 701 поиска фиксированной длины, множества записей 702 данных ключа перемен
-9005646 ной длины и множества записей 703 конечных данных переменной длины. Узлы 701 поиска, как описано выше, могут содержать различные виды информации, включая, например, символ (или значение) и позицию сравнения, указатели узла ветви и указатель ключа. Размер указателей узла, в основном, может определяться количеством узлов, в то время, как размер указателей ключа, в основном, может определяться размером набора данных ключа переменной длины. Записи 702 данных ключа могут содержать информацию о ключе и информацию о конечных данных, включая, например, указатели на записи конечных данных или внедренные данные записи, в то же время записи 703 конечных данных могут содержать данные записи.
В варианте осуществления каждый узел поиска фиксированной длины может иметь 24 байта в длину. Узел поиска 710, например, может содержать восьмибитовый символ 711 (или байтовое значение) сравнения, 12-битную позицию 712 символа (или байта), и 12-битный тип/состояние узла (для ясности не изображен); эти данные могут быть закодированы в первых четырех байтах узла. Символ 711 сравнения может быть закодирован в первом байте узла, как указано на фиг. 7, или, в другом варианте, позиция 712 символа может быть закодирована в первых 12 битах узла для оптимизации доступа к позиции 712 символа с использованием простой операции смещения. Следующие 12 байтов каждого узла поиска могут содержать три 32-битных указателя, то есть, указатель 713, указатель 714 и указатель 715, представляющие указатели узлов ветвей меньше чем, равно и больше чем, соответственно. Эти указатели вместо смещения байтов или адреса памяти, могут содержать счетчик, или индекс узла. Для узлов поиска фиксированной длины смещение байтов может быть вычислено по счетчику или значению индекса и фиксированной длине, например, как «счетчик*длина». Конечные 4 байта могут содержать 40-битный указатель 716 ключа, которым может быть нулевое значение, указывающее, что соответствующая запись данных ключа не существует (изображено) или указатель на существующую соответствующую запись данных ключа (не изображен), а также другие данные, включая, например, 12-битную длину ключа и 12битное поле типа/состояния указателя. Указатель 716 ключа может содержать смещение байтов для соответствующей записи данных ключа, в то же время длина ключа может использоваться для оптимизации поиска и вставки при исключении однонаправленного перехода по ветви внутри Т8Т. Поле типа/состояния указателя может содержать информацию, используемую при проверке достоверности и распределении данных, используемых для управления памятью.
В варианте осуществления запись 750 данных ключа может содержать, например, ключ 753 переменной длины и, по меньшей мере, один указатель конечных данных. Как указано на фиг. 7, запись 750 данных ключа содержит два указателя конечных данных: указатель 757 конечных данных и указатель 758 конечных данных. В начале записи 750 данных ключа могут быть присоединены 12 битная длина 751 ключа и 12-битный счетчик/состояние 752 конечного указателя, и она может содержать заполнение (для ясности не изображено) для выравнивания указателя 757 конечных данных 757 и указателя 758 конечных данных 758 по границе 8-байтов в памяти 104. Каждый указатель 757 конечных данных и указатель 758 конечных данных может содержать разные данные, например, такие как длину, состояние, тип конечных данных или данные, используемые для поисков по двоичным записям. Указатель 757 конечных данных и указатель 758 конечных данных может быть отсортирован по типу конечных данных для более быстрого поиска записей конкретного ресурса (например, запись 760 конечных данных и запись 770 конечных данных). В другом варианте осуществления запись 740 данных ключа может содержать внедренные конечные данные 746 вместо или в дополнение к указателям на записи конечных данных. Например, запись 740 данных ключа может содержать длину 741 ключа, счетчик 742 конечных указателей, ключ 743 переменной длины, количество внедренных элементов 744 записи, с последующей длиной 745 элемента записи (например, в байтах) и данные 746 внедренной записи 746 (например, строка, последовательность байтов, и т.д.) для каждого из нескольких элементов 744 внедренной записи.
В варианте осуществления запись 760 конечных данных, например, может содержать 12-битную длину 761, 4-битное состояние и строку 762 переменной длины (например, адрес ΙΡ). В другом варианте, строкой 762 переменной длины может быть последовательность байтов. Запись 760 конечных данных может содержать заполнение для выравнивания каждой записи конечных данных по границе 8-байтов в памяти 104. В другом варианте, запись 760 конечных данных 760 может содержать заполнение до границы 4-байтов, или, запись 760 конечных данных может не содержать заполнения. В основном алгоритмы управления памятью могут определять, заполняются ли записи 760 конечных данных до границ 8-байтов, 4-байтов или 0-байтов. Аналогично, запись 770 конечных данных может содержать 12-битную длину 771, 4-битное состояние и строку 772 переменной длины (например, адрес ΙΡ).
В основном, индексы поиска, такие как Т8Т, и записи данных могут быть структурированы так, чтобы 8-байтовые указатели были размещены на границах 8-байтов в памяти. Например, указатель 726 ключа может содержать 8-байтовый (или меньшего размера) указатель на запись 740 данных ключа, и может храниться в адресе памяти, делимом на восемь (то есть границе 8-байтов, или 8Ν). Аналогично, индексы поиска, такие как Т8Т, и записи данных могут быть структурированы так, чтобы 4-байтовые указатели были размещены на границах 4-байтов в памяти. Например, указатель 724 узла ветви может содержать 4-байтовый (или меньшего размера) указатель на узел 730, и может храниться в адресе памяти, делимом на четыре (то есть, границе 4-байтов, или 4Ν). Следовательно, изменения в базе данных 700
-10005646 могут заключаться в обновлении указателя в выровненном адресе в памяти, с использованием одиночной непрерываемой операции, включающей, например, запись нового указателя в индекс поиска, такой как узел Т8Т, или запись нового указателя в запись данных.
На фиг. 8 представлена подробная структурная схема, иллюстрирующая другую архитектуру структуры данных, согласно варианту осуществления настоящего изобретения. Как описано выше, база 800 данных также может быть организована в единое представление данных с возможностью осуществления поиска. Обновления наборов данных могут постоянно включаться в базу 800 данных, и удаления или изменения для релевантных записей базы данных могут выполняться физически для освобождения пространства в памяти 104, например, для последующих добавлений или изменений. Единое представление с возможностью осуществления поиска очень хорошо масштабируется для больших размеров наборов данных и высоких скоростей обновления и поиска и устраняет потребность в периодическом повторном создании, распространении и перезагрузке файлов кадра по множеству компьютеров механизма поиска.
Для доступа к данным записи возможны другие структуры индекса поиска. В варианте осуществления база 800 данных может использовать альтернативный упорядоченный индекс поиска, организованный как упорядоченное дерево ключей доступа (то есть, дерево ОАК). База 800 данных может содержать, например, множество узлов 801 поиска переменной длины, множество ключевых записей 802 переменной длины и множество записей 803 конечных данных переменной длины. Как описано выше, узлы 801 поиска могут содержать различные виды информации, например, такие как поисковые ключи, указатели на другие узлы поиска, указатели на ключевые записи и т. д. В варианте осуществления множество узлов 801 поиска могут содержать вертикальные и горизонтальные узлы, содержащие фрагменты поисковых ключей (например, строки), а также указатели на другие узлы поиска или ключевые записи. Вертикальные узлы, например, могут содержать, по меньшей мере, один поисковый ключ, или символ, указатели на горизонтальные узлы в множестве узлов 801 поиска, указатели на ключевые записи в множестве ключевых записей 802 и т.д. Горизонтальные узлы, например, могут содержать, по меньшей мере, два поисковых ключа, или символа, указатели на вертикальные узлы в множестве узлов 801 поиска, указатели на горизонтальные узлы в множестве узлов 801 поиска, указатели на ключевые записи в множестве ключевых записей 802 и т.д. В основном, вертикальные узлы могут содержать последовательность ключей (например, символов), представляющую фрагмент поискового ключа (например, строку), в то же время горизонтальные узлы могут содержать разные ключи (например, символы) которые могут находиться в определенной позиции в фрагменте поискового ключа (например, строки).
В варианте осуществления множество узлов 801 поиска может содержать вертикальный узел 810, вертикальный узел 820 и горизонтальный узел 830. Вертикальный узел 810 может содержать, например, 2-битный тип 811 узла (например, 10), 38-битный адрес 812, 8-битную длину 813 (например, 8), 8битный первый символ 814 (например, 1) и 8-битный второй символ 815 (например, символ нуля пи11). В этом примере адрес 812 может указывать на следующий узел в дереве поиска, то есть, вертикальный узел 820. В варианте осуществления 38-битный адрес 812 может содержать 1-битный конечный/узловой индикатор и 37-битный относительный адрес для ссылки на одно из 8-байтовых слов в адресном пространстве в 1 ТЬу1с (~1012 байт) памяти 104. Соответственно, вертикальный узел 810 может иметь восемь байтов (64 бита) в длину, и, преимущественно, может быть размещен на границе 8байтового слова в памяти 104. В основном, каждый вертикальный узел в множестве узлов 801 поиска может быть размещен на границе 8-байтового слова в памяти 104.
Вертикальный узел может содержать многосимвольный фрагмент поискового ключа (например, строку). В основном, поисковые ключи без ассоциированных записей данных ключа могут быть свернуты в одиночный вертикальный узел для эффективного уменьшения количества вертикальных узлов, требуемых в множестве узлов 801 поиска. В варианте осуществления вертикальный узел 810 может содержать 8 битов для каждого дополнительного символа, более двух символов в фрагменте поискового ключа, таких как, например, 8-битные символы 816-1, 816-2 ... 816-Ν (изображены в фантомном контуре). Преимущественно, вертикальный узел 810 может быть заполнен до 64-битной границы в памяти 104, в соответствии с количеством дополнительных символов, размещенных в фрагменте строки. Например, если в вертикальный узел 810 должны быть включены девять символов, то символы один и два могут быть назначены первому символу 814 и второму символу 815, соответственно, а 56 битов информации дополнительных символов, соответствующей символам с третьего по девятый, могут быть присоединены к вертикальному узлу 810. Для выравнивания информации дополнительных символов относительно границы 8-байтового слова могут быть включены дополнительные восемь битов заполнения.
Аналогично, вертикальный узел 820 может содержать, например, 2-битный тип 821 узла (например, 10), 38-битный адрес 822, 8-битную длину 823 (например, 8), 8-битный первый символ 824 (например, а) и 8-битный второй символ 825 (например, нуль). В этом примере адрес 822 может указывать на следующий узел в дереве поиска, то есть, горизонтальный узел 830. Соответственно, вертикальный узел 820 может иметь длину восемь байтов, и, преимущественно, может быть размещен на границе 8байтового слова в памяти 104. Безусловно, в вертикальном узле 820, если требуется, также может содержаться дополнительная информация, как описано выше в отношении вертикального узла 810.
-11005646
Горизонтальный узел 830 может содержать, например, 2-битный тип 831 узла (например, 01), 38битный первый адрес 832, 8-битный счетчик 833 адреса (например, 2), 8-битный первый символ 834 (например, ·), 8-битный последний символ 835 (например, \ν), растр (битовую карту) 836 переменной длины и 38-битный второй адрес 837. В этом примере первый символ 834 может содержать одиночный символ, ·, представляющий фрагмент 1а поискового ключа, определенный вертикальными узлами 810 и 820, в то же время последний символ 831 может содержать одиночный символ ν, представляющий фрагмент 1αν поискового ключа, определенный вертикальными узлами 810 и 820 и последним символом 835 горизонтального узла 830. Первый адрес 832 может указывать на запись 840 данных ключа, соответствующую фрагменту 1а поискового ключа, в то же время второй адрес 837 может указывать на запись 850 данных ключа, соответствующую фрагменту 1αν поискового ключа.
Растр (битовая карта) 836 может преимущественно указывать, на какие ключи (например, символы) осуществляет ссылку горизонтальный узел 830. Единица 1 в позиции бита в растре 836 указывает, что горизонтальный узел 830 осуществляет ссылку на ключ, или символ, в то же время 0 в позиции бита в растре 836 может указывать, что горизонтальный узел 830 не имеет ссылки на ключ, или символ. В основном, длина растра 836 может зависеть от количества последовательных ключей, или символов, между первым символом 834 и последним символом 835, включая эти граничные символы. Например, если первым символом 834 является а, а последним символом 835 является ζ, то растр 836 может иметь длину 26 битов, где каждый бит соответствует одному из символов от а до ζ, включая а и ζ. В этом примере, в конце горизонтального узла 830 должны быть присоединены дополнительные 38-битные адреса, соответствующие каждому из символов, представленных в растре 836. Каждый из этих 38битных адресов, а также растр 836, могут быть заполнены для выравнивания каждого числа до границы 8-байтового слова в памяти 104. В варианте осуществления, в качестве пространства поискового ключа может быть использован набор 8-битовых символов А8С11, так что растр 836 может иметь длину 256 битов (то есть 28 битов или 32 байта). В примере, иллюстрируемом фиг. 8, из-за специального ссылочного символа · и счетчика 833 адреса 2, растр 836 может иметь длину два бита и может содержать 1 в каждой битовой позиции, соответствующей последнему символу 835.
В варианте осуществления, как описано в отношении записи 750 данных ключа (фиг. 7), запись 850 данных ключа может содержать, например, ключ 853 переменной длины и, по меньшей мере, один указатель конечных данных. Как иллюстрируется на фиг. 8, запись 850 данных ключа содержит два указателя конечных данных, указатель 857 конечных данных и указатель 858 конечных данных. В начале записи 850 данных ключа могут быть присоединены 12-битная длина 851 ключа и 12-битный счетчик/состояние 852 конечных указателей, и она может содержать заполнение (для ясности не изображено) для выравнивания указателя 857 конечных данных и указателя 858 конечных данных на границе 8-байтов в памяти 104. Каждый указатель 857 конечных данных и указатель 858 конечных данных может содержать 10битный тип конечных данных и другие данные, например, такие как длина, состояние или данные, используемые при поисках двоичных записей. Указатель 857 конечных данных и указатель 858 конечных данных могут быть отсортированы по типу конечных данных для более быстрого поиска записей конкретного ресурса (например, запись 860 конечных данных и запись 870 конечных данных).
В другом варианте осуществления, как описано выше в отношении записи 740 данных ключа (фиг. 7), запись 840 данных ключа может содержать внедренные конечные данные 846 вместо указателя на запись конечных данных. Например, запись 840 данных ключа может содержать длину 841 ключа, счетчик 842 конечных указателей, ключ 843 переменной длины, количество внедренных элементов 844 записи с последующей длиной 845 элемента записи (например, в байтах) и внедренные данные 846 записи (например, строка, последовательность байтов и т.д.) для каждого из внедренных элементов 844 записи.
В другом варианте осуществления, как описано в отношении записи 760 конечных данных (фиг. 7), запись 860 конечных данных, например, может содержать 12-битную длину 861, 4-битное состояние и строку 862 переменной длины (например, адрес ΙΡ). В другом варианте, строка 862 переменной длины может представлять собой последовательность байтов. Запись 860 конечных данных может содержать заполнение (для ясности не изображено) для выравнивания каждой записи конечных данных на границе 8-байтов в памяти 104. В другом варианте, запись 860 конечных данных может содержать заполнение (для ясности не изображено) до границы 4-байтов, или запись 860 конечных данных может не содержать заполнения. В основном алгоритмы управления памятью могут определять, заполняются ли записи 860 конечных данных до границы 8-байтов, 4-байтов или 0-байтов. Аналогично, запись 870 конечных данных может содержать 12-битную длину 871, 4-битное состояние и строку 872 переменной длины (например, адрес ΙΡ).
В основном, индексы поиска, такие как деревья ОАК, и записи данных могут быть структурированы так, чтобы 8-байтовые указатели были размещены в памяти на границах 8-байтов. Например, вертикальный узел 810 может содержать 8-байтовый (или меньшего размера) указатель на вертикальный узел 820 и может храниться в адресе памяти, делимом на восемь (то есть границе 8-байтов, или 8Ν). Аналогично, индексы поиска, такие как деревья ОАК, и записи данных могут быть структурированы так, чтобы 4-байтовые указатели были размещены на границах 4-байтов в памяти. Следовательно, изменения в базе данных 800 могут включаться посредством обновления указателя в выровненном адресе в памяти, с
-12005646 использованием одиночной непрерываемой операции, включающей, например, запись нового указателя в индекс поиска, такой как узел деревьев ОАК, или запись нового указателя в запись данных.
Различные варианты осуществления, описанные выше в отношении фиг. 8, имеют многие преимущества. Например, структура данных дерева ОАК является очень эффективной в отношении используемого пространства и 8-битной очистки. Могут использоваться поиски регулярного выражения для поиска по вертикальным узлам, содержащим многосимвольные фрагменты строки, так как 8-битный первый символ (например, первый символ 814), 8-битный второй символ (например, второй символ 815) и любые дополнительные 8-битные символы (например, дополнительные символы 816-1 ... 816-Ν) могут быть размещены непрерывно в пределах вертикального узла (например, вертикального узла 810). Неудачи при поиске могут быть обнаружены быстро, и для поиска строки Ν-символьной длины требуется пройти не более Ν узлов.
На фиг. 9 представлена блок-схема верхнего уровня, иллюстрирующая способ поиска и параллельного обновления базы данных без использования блокировок базы данных или средств управления доступом, согласно вариантам осуществления настоящего изобретения.
Могут быть созданы (900) поток обновления и несколько потоков поиска. В варианте осуществления система 100 может порождать единый поток обновления для включения в локальную базу данных обновлений, полученных, например, из ОЬТР сервера 140-1 через ГС 124. В других вариантах осуществления система 100 может получать обновления из ОЬТР серверов 140-1 ... 140-8 через ГС 124 и из множества сетевых компьютеров 120-1 ... 120^ через ГС 124 или ЛС 122. Система 100 также может порождать поток поиска в отношении каждого запроса сеанса, полученного из множества сетевых компьютеров 120-1 ... 120-К Например, управляющий поток может опрашивать один или большее количество портов управления, соответствующих одному или большему количеству сетевых интерфейсов 114-1 ... 114-О, на запросы сеанса, переданные из множества сетевых компьютеров 120-1 ... 120-К При получении запроса сеанса из конкретного сетевого компьютера 120-1 ... 120-У управляющий поток может породить поток поиска и сопоставить поток поиска этому конкретному сетевому компьютеру (например, РЕ).
В альтернативном варианте осуществления система 100 может порождать несколько потоков поиска без опроса на запросы сеанса из множества сетевых компьютеров 120-1 ... 120-К В этом варианте осуществления потоки поиска могут не соответствовать конкретным сетевым компьютерам и могут быть распределены равномерно по множеству процессоров 102-1 ... 102-Р. В другом варианте потоки поиска могут выполняться на наборе из множества процессоров 102-1 ... 102-Р. Количество потоков поиска не обязательно должно соответствовать количеству сетевых компьютеров (например, Ν).
Через сеть связи может быть получено (910) множество запросов на поиск. В варианте осуществления множество сетевых компьютеров 120-1 ... 120^ может передать множество запросов на поиск в систему 100 через ЛС 122, или, в другом варианте, ГС 124. Множество запросов на поиск может содержать, например, признак поиска или ключ, а также информацию о состоянии, которая может соответствовать каждому запросу (например, адрес источника запроса, тип протокола, и т.д.). Информация о состоянии может прямо обеспечиваться системой 100, или, в другом варианте, может быть предусмотрен дескриптор информации о состоянии. В предпочтительном варианте осуществления каждый из множества сетевых компьютеров 120-1 ... 120^ может мультиплексировать предварительно определенное количество запросов на поиск в единый пакет сети для передачи к системе 100 (например, Суперпакет 220 Запроса, как описано согласно фиг. 2).
Каждый запрос на поиск может быть назначен (920) для обработки одному из потоков поиска. В варианте осуществления каждый поток поиска может соответствовать одному из множества сетевых компьютеров 120-1 ... 120-У и все запросы на поиск, полученные от этого конкретного сетевого компьютера, могут быть назначены (920) потоку поиска. Другими словами, один поток поиска может обрабатывать все запросы на поиск, поступающие из одного сетевого компьютера (например, одного РЕ). В варианте осуществления каждый поток поиска может извлекать индивидуальные запросы на поиск из одиночного мультиплексированного пакета сети (например, Суперпакет 220 Запроса 220, как описано согласно фиг. 2), или, в другом варианте, извлечение может выполняться другим процессом или потоком.
В другом варианте осуществления запросы на поиск, полученные от каждого из множества сетевых компьютеров 120-1 ... 120-У могут быть назначены (920) разным потокам поиска. В этом варианте осуществления многопоточное назначение может основываться на оптимальной функции распределения, которая может содержать разные параметры системы, включая, например, загрузку процессора. Безусловно, назначение запросов на поиск потокам поиска может с течением времени изменяться на основе различных параметров системы, включая доступность процессора, эффективность компонентов системы и т.д. Для передачи запросов на поиск назначенным потокам поиска в системе 100 могут использоваться различные механизмы, например, такие как совместно используемая память, межпроцессные сообщения, маркеры, семафоры и т.д.
Каждый поток поиска может осуществлять поиск (930) по базе данных на основе назначенных запросов на поиск. Поиск по базе данных может зависеть от глубинной структуры базы данных.
-13005646
Согласно варианту осуществления базы данных, иллюстрируемому фиг. 4, по базе данных 400 может быть осуществлен поиск (930) для поискового ключа. Затем может быть определена запись данных (например, запись 420 базы данных), соответствующая поисковому ключу. Согласно варианту осуществления базы данных, показанному на фиг. 5, сначала может быть осуществлен поиск (930) по файлу 520 предыстории для поискового ключа, и, если не обнаружено соответствие, то может быть осуществлен поиск (930) по файлу 510 кадр. Затем может быть определена запись данных, соответствующая поисковому ключу.
Согласно варианту осуществления базы данных, показанному на фиг. 6, сначала может быть осуществлен поиск (930) по данным 610 имен доменов для поискового ключа, и затем могут быть определены данные ресурса в данных 630 серверов доменных имен, соответствующих поисковому ключу. Например, для поискового ключа 1а.сот может быть определено соответствие с записью 620 имени домена в данных 610 имен доменов. Может быть извлечена соответствующая информация, включая, например, указатель 626 сервера доменных имен. Затем, соответствующая запись 640 сервера доменных имен может быть индексирована с использованием указателя 626 сервера доменных имен, и может быть извлечен сетевой адрес 647 сервера доменных имен.
Согласно варианту осуществления базы данных, показанному на фиг. 7, может быть осуществлен поиск (930) по Т8Т для поискового ключа, из которого могут быть определены данные ресурса. Например, для поискового ключа 1а\\\сот может быть осуществлен поиск (930) по узлам 701 поиска, и может быть обнаружено соответствие с узлом 730. Может быть извлечен указатель 736 ключа, из которого может быть определена запись 750 данных ключа. Затем может быть идентифицировано определенное количество указателей 752 конечных данных, и может быть извлечен каждый указатель конечных данных. Например, указатель 757 конечных данных может осуществлять ссылку на запись 760 конечных данных, а указатель 758 конечных данных может осуществлять ссылку на запись 770 конечных данных. Затем из каждой записи конечных данных могут быть извлечены данные ресурса переменной длины, например, сетевой адрес 762 сервера доменных имен и сетевой адрес 772 сервера доменных имен, с использованием длины 761 и 771, соответственно.
Согласно варианту осуществления базы данных, показанному на фиг. 8, может быть осуществлен поиск (930) по дереву ОАК для поискового ключа, из которого могут быть определены данные ресурса. Например, для поискового ключа 1а\\\сот может быть осуществлен поиск (930) по узлам 801 поиска и определено соответствие с узлом 830. Может быть извлечен второй адрес 837, из которого может быть определена запись 850 данных ключа. Затем может быть идентифицировано определенное количество указателей 852 конечных данных, и может быть извлечен каждый указатель конечных данных. Например, указатель 857 конечных данных может осуществлять ссылку на запись 860 конечных данных, а указатель 858 конечных данных может осуществлять ссылку на запись 870 конечных данных. Затем из каждой записи конечных данных могут быть извлечены данные ресурса переменной длины, например, сетевой адрес 862 сервера доменных имен и сетевой адрес 872 сервера доменных имен, с использованием длины, 861 и 871, соответственно.
Каждый поток поиска может создавать (940) несколько ответов по поиску, соответствующих назначенным запросам на поиск. Если для конкретного поискового ключа соответствие не обнаружено, то ответ может содержать соответствующую индикацию, например, такую как символ нуля. Для разрешения имен доменов, например, поисковым ключом может быть 1а\\\сот. а соответствующими данными ресурса могут быть 180.1.1.1. Поисковому ключу может соответствовать более одного сетевого адреса сервера доменных имен, в этом случае может быть определено более одного сетевого адреса сервера доменных имен.
Ответы могут быть переданы (950) через сеть связи. В варианте осуществления каждый поток поиска может мультиплексировать соответствующие ответы в единый пакет сети (например, Суперпакет 240 Ответа), соответствующий единому пакету сети, содержащему исходные запросы (например, Суперпакет 220 Запроса). В другом варианте, другой процесс или поток может мультиплексировать соответствующие ответы в единый пакет сети. Затем пакет сети ответа может быть передан (950) соответствующему сетевому компьютеру из множества сетевых компьютеров 120-1 ... 120-Ν через ЛС 122, или в другом варианте, через ГС 124. В одном варианте осуществления пакеты ответа могут быть переданы тем сетевым компьютерам, из которых исходили пакеты запроса, в то же время в другом варианте осуществления пакеты ответа могут быть переданы другому сетевому компьютеру.
Поток обновления может получать (960) через сеть связи новую информацию. В варианте осуществления новая информация может быть передана в систему 100, например, из ОЬТР сервера 140-1 через ГС 124. В других вариантах осуществления система 100 может получать обновления из ОЬТР серверов 140-1 ... 140-8 через ГС 124, и от множества сетевых компьютеров 120-1 ... 120-Ν через ГС 124 или ЛС 122. В варианте осуществления разрешения ΌΝ8, например, новая информация может содержать новые данные имен доменов, новые данные сервера доменных имен, новый сервер доменных имен для существующих имен доменов и т.д. В другом варианте, новая информация может указывать, что имя домена, сервер доменных имен, сетевой адрес сервера доменных имени т. д. могут быть удалены из базы данных.
-14005646
В основном, любая информация, содержащаяся в базе данных, может быть добавлена, изменена или удалена, как целесообразно.
Поток обновления может создавать (970) новый элемент в базе данных, содержащей новую информацию. В основном, изменения информации, содержащейся в существующем элементе базы данных включаются посредством создания нового элемента на основе существующего элемента и затем изменения нового элемента для включения новой информации. В течение указанного процесса новый элемент не может быть видим для потоков поиска или процессов, выполняющихся в текущий момент системой 100, пока новый элемент не будет зафиксирован в базе данных. В основном, добавления к базе данных могут быть выполнены подобным способом, без обязательного использования информации, содержащейся в существующем элементе. В одном варианте осуществления удаление существующего элемента из базы данных может быть выполнено посредством добавления в базу данных нового элемента, явного удаления. В другом варианте осуществления удаление существующего элемента из базы данных может быть выполнено посредством перезаписи указателя на существующий элемент с соответствующим индикатором (например, нулевой указатель и т.д.). В этом варианте осуществления, поток обновления не создает новый элемент в базе данных, содержащей новую информацию.
В варианте осуществления разрешения ΌΝ8, например, новая информация может содержать новое имя домена, которое будет добавлено в базу данных. В этом возможном варианте, для простоты, новое имя домена может осуществлять ссылку на существующий сервер доменных имен. Согласно фиг.6, пространство памяти для записи 615 нового имени домена может быть распределено из пула памяти, соответствующего записям 611 имен доменов, или, в другом варианте, из общего пула памяти, соответствующего данным 610 имен доменов. Новое имя домена может быть нормировано и скопировано в запись 615 нового имени домена, и указатель на существующий сервер доменных имен (например, запись 655 сервера доменных имен) может быть определен и скопирован в запись 615 нового имени домена. Другая информация может быть вычислена и добавлена в запись нового имени домена, например, такая как количество серверов доменных имен, указатель цепочки и т.д. В более сложных примерах новая информация может содержать новый поисковый ключ с соответствующими данными ресурса.
Согласно фиг. 7, сначала могут быть созданы новый узел 705 поиска, а также новая запись 780 данных ключа. В этом возможном варианте новый узел 750 поиска может содержать символ сравнения (т), в первой позиции, который больше символа сравнения (1), в первой позиции существующего узла 710 поиска. Следовательно, узел 705 поиска может быть вставлен в Т8Т на том же уровне (то есть 1-ая позиция символа), что и узел 710 поиска. До фиксации узла 705 поиска в базе данных, 4-байтовый указатель 715 больше чем узла 710 поиска может содержать нулевой указатель. Узел 705 поиска может также содержать 4-байтовый указатель 706 ключа, который может содержать 40-битный указатель на новую запись 780 данных ключа. Запись 780 данных ключа может содержать длину 781 ключа (например, 5) и тип 782 (например, указывающий внедренные данные ресурса), ключ 783 переменной длины (например, т.сот), количество внедренных ресурсов 784 (например, 1), длину 785 ресурса (например, 9) и строку 786 ресурса переменной длины или последовательность байтов (например, 180.1.1.1). В варианте осуществления пространство памяти для узла 705 поиска может быть распределено из пула памяти, соответствующего узлам 701 Т8Т, в то же время пространство памяти для записи 770 данных ключа может быть распределено из пула памяти, соответствующего множеству записей 702 данных ключа.
Согласно фиг. 8 сначала могут быть созданы новый узел 890 поиска, а также новая запись 880 данных ключа. В этом возможном варианте, новый узел 890 поиска может быть горизонтальным узлом, содержащим, например, 2-битный тип 891 узла (например, 01), 38-битный первый адрес 892, 8-битный счетчик 893 адреса (например, 2), 8-битный первый символ 894 (например, 1), 8-битный последний символ 895 (например, т), растр 896 переменной длины и 38-битный второй адрес 897. Первый адрес 892 может указывать на вертикальный узел 820, следующий вертикальный узел на пути строки поиска Ι..., в то же время второй адрес 897 может указывать на запись 880 данных ключа, соответствующую фрагменту т поискового ключа. Запись 880 данных ключа может содержать длину 881 ключа (например, 5) и тип 882 (например, указывающий внедренные данные ресурса), ключ 883 переменной длины (например, т.сот), количество внедренных ресурсов 884 (например, 1), длину ресурса 885 (например, 9), и строку 886 ресурса переменной длины или последовательность байтов (например, 180.1.1.1). В варианте осуществления пространство памяти для узла 890 поиска может быть распределено из пула памяти, соответствующего нескольким узлам 801 поиска, в то же время пространство памяти для записи 880 данных ключа может быть распределено из пула памяти, соответствующего нескольким записям 802 данных ключа.
Поток обновления может записывать (980) указатель в базу данных, с использованием одиночной непрерываемой операции. В основном, новый элемент может быть фиксирован в базе данных, (то есть, становится видимым для процессов, или потоков поиска) мгновенно, посредством записи указателя на новый элемент в соответствующее местоположение в базе данных. Как описано выше, соответствующее местоположение может быть выровнено в памяти, так, чтобы одиночная операция включала одиночную инструкцию сохранения соответствующей длины. В варианте осуществления существующий элемент
-15005646 может быть удален из базы данных (то есть становится невидимым для процессов, или потоков поиска) мгновенно, посредством перезаписи указателя на существующий элемент с соответствующим индикатором (например, нулевой указатель и т.д.). Опять же, соответствующее местоположение может быть выровнено в памяти, так, чтобы одиночная операция включала одиночную инструкцию сохранения соответствующей длины.
Согласно фиг.6 8-байтовый указатель, соответствующий записи 620 имен доменов может быть записан в хэш-таблицу 612 (например, элемент 613). Существенно, что входы хэш-таблицы выровнены в памяти 104 по границам 8-байтов для обеспечения использования одиночной 8-байтовой команды сохранения для обновления этого значения. Согласно фиг.7, 4-байтовый указатель, соответствующий новому узлу 705 поиска, может быть записан в 4-байтовый указатель 715 узла больше чем внутри узла 710 поиска. Существенно, что указатель 715 узла выровнен в памяти 104 по границе 4-байтов, для обеспечения использования одиночной 4-байтовой команды сохранения для обновления этого значения. Согласно фиг. 8, множество узлов 801 поиска может также содержать адрес 899 вершины дерева, который может быть выровнен в памяти 104 по границе 8-байтового слова и осуществляет ссылку на первый узел из множества узлов 801 поиска (то есть, например, вертикальный узел 810). 8-байтовый указатель, соответствующий новому узлу 890 поиска, может быть записан в адрес 899 вершины дерева с использованием одиночной команды сохранения. В каждом из указанных вариантов осуществления, непосредственно до команды сохранения, новые данные не видимы для потоков поиска, в то же время сразу после команды сохранения новые данные становятся видимыми для потоков поиска. Следовательно, с использованием одиночной непрерываемой операции, новые данные могут быть фиксированы в базе данных без использования блокировок базы данных или средств управления доступом.
В варианте осуществления, после записи (980) указателя в базу данных, поток обновления может физически удалить (990) существующий элемент. Преимущественно, для существующих элементов базы данных, которые изменяются или удаляются, физическое удаление этих элементов из памяти 104 может быть задержано для сохранения согласованности в осуществляемых поисках. Например, после изменения существующего элемента и фиксации в базе данных соответствующего нового элемента, физическое удаление существующего элемента из памяти 104 может быть задержано, чтобы существующие потоки поиска, которые получают результат, приобретенный непосредственно перед фиксацией в базе данных нового элемента, мог продолжать использовать предыдущее состояние данных. Аналогично, после удаления существующего элемента из базы данных, физическое удаление существующего элемента из памяти 104 может быть задержано, чтобы существующие потоки поиска, которые получают результат, приобретенный непосредственно перед удалением из базы данных существующего элемента, могли продолжать использовать предыдущее состояние данных. Поток обновления может физически удалить (990) существующий элемент после завершения всех потоков поиска, которые начались до изменения или удаления существующего элемента.
В результате взаимодействия способов, соответствующих вариантам осуществления настоящего изобретения, и различных характеристик архитектуры системы 100 могут возникнуть потенциальные осложнения. Например, процессор, на котором выполняется поток обновления (например, процессор 102-1, 102-2 и т.д.) может содержать аппаратные средства для поддержания исполнения команд с изменением последовательности. В другом возможном варианте система 100 может содержать оптимизирующий компилятор, который может создавать последовательность команд, соответствующих вариантам осуществления настоящего изобретения, реорганизованных оптимальным образом для использования параллельности внутренней архитектуры процессора (например, процессора 102-1, 102-2 и т.д.). Для специалистов в данной области техники очевидны многие другие осложнения. Риск сбоя данных, являющийся результатом исполнения команд с изменением последовательности, может быть исключен, например, посредством создания зависимостей между созданием (970) нового элемента и записью (980) указателя в базу данных.
В одном варианте осуществления такие зависимости могут быть установлены посредством вставки в последовательность команд, выполняемых процессором 102-1, дополнительных арифметических операций, например, таких как команда «исключающее ИЛИ» (ХОК), для принудительного выполнения команд, соответствующих созданию (970) нового элемента, для выдачи, или завершения, перед выполнением записи указателя в базу данных. Например, может быть осуществлена операция ХОК содержимого ячейки памяти 104, соответствующей новому элементу, с содержимым ячейки памяти 104, соответствующей указателю на новый элемент. Адрес нового элемента затем может быть записан (980) в память 104 для фиксации нового элемента в базе данных. Для специалистов в данной области техники могут быть очевидны многочисленные способы преодоления указанных осложнений.
Выше подробно описаны и проиллюстрированы некоторые из вариантов осуществления настоящего изобретения. Однако, очевидно, что без отклонения от сущности объема настоящего изобретения могут быть осуществлены изменения и модификации изобретения, охватываемые приведенным выше описанием и приложенной формулой изобретения.
Claims (54)
- ФОРМУЛА ИЗОБРЕТЕНИЯ1. Система многопоточной сетевой базы данных, содержащая по меньшей мере, один процессор, связанный с сетью, и память, связанную с процессором, причем память содержит базу данных и команды, предназначенные для выполнения процессором, для создания потока обновления и множества потоков поиска, назначения каждого из множества запросов на поиск, полученных через сеть, одному из множества потоков поиска, для каждого потока поиска:осуществления поиска по базе данных в соответствии с назначенными запросами на поиск, создания множества ответов по поиску, соответствующих назначенным запросам на поиск, и передачи множества ответов по поиску через сеть, и для потока обновления:создания нового элемента в соответствии с новой информацией, полученной через сеть, и без ограничения доступа к базе данных для множества потоков поиска, записи указателя на новый элемент в базу данных с использованием одиночной непрерываемой операции.
- 2. Система по п.1, отличающаяся тем, что одиночная непрерываемая операция представляет собой команду сохранения.
- 3. Система по п.1, отличающаяся тем, что дополнительно содержит для потока обновления:физическое удаление существующего элемента из памяти после записи указателя в базу данных.
- 4. Система по п.2, отличающаяся тем, что команда сохранения записывает 4 байта в адрес памяти, размещенный на границе 4 байтов.
- 5. Система по п.2, отличающаяся тем, что команда сохранения записывает восемь байтов в адрес памяти, размещенный на границе 8 байтов.
- 6. Система по п.2, отличающаяся тем, что процессор имеет длину машинного слова, по меньшей мере, в η-байтов, память имеет разрядность, по меньшей мер, в η-байтов, и команда сохранения записывает η-байтов в адрес памяти, размещенный на η-байтовой границе.
- 7. Система по п.1, отличающаяся тем, что множество запросов на поиск принимается в одиночном пакете сети.
- 8. Система по п.1, отличающаяся тем, что множество ответов по поиску передается в одиночном пакете сети.
- 9. Система по п.1, отличающаяся тем, что упомянутое ограничение доступа включает в себя блокировку базы данных.
- 10. Система по п.1, отличающаяся тем, что упомянутое ограничение доступа включает в себя взаимоблокировку.
- 11. Система по п.10, отличающаяся тем, что взаимоблокировка включает в себя использование, по меньшей мере, одного семафора.
- 12. Система по п.11, отличающаяся тем, что упомянутый семафор является семафором мьютекса.
- 13. Система по п.1, отличающаяся тем, что дополнительно содержит множество процессоров и симметричную многопроцессорную операционную систему.
- 14. Система по п.13, отличающаяся тем, что множество потоков поиска выполняет, по меньшей мере, 100000 поисков в секунду.
- 15. Система по п.14, отличающаяся тем, что поток обновления выполняет, по меньшей мере, 10000 обновлений в секунду.
- 16. Система по п.15, отличающаяся тем, что поток обновления выполняет от 50000 до 130000 обновлений в секунду.
- 17. Система по п.1, отличающаяся тем, что указатель на новый элемент записан в индекс поиска.
- 18. Система по п.17, отличающаяся тем, что индекс поиска представляет собой Т8Т (тернарное дерево поиска).
- 19. Система по п.17, отличающаяся тем, что индекс поиска представляет собой хэш-таблицу.
- 20. Система по п.1, отличающаяся тем, что указатель на новый элемент записан в запись данных в базе данных.
- 21. Способ поиска и параллельного обновления базы данных, заключающийся в том, что создают поток обновления и множество потоков поиска, назначают каждый из множества запросов на поиск, полученных через сеть, одному из множества потоков поиска, для каждого потока поиска:осуществляют поиск по базе данных в соответствии с назначенными запросами на поиск, создают множество ответов по поиску, соответствующих назначенным запросам на поиск, и посылают множество ответов по поиску через сеть, и-17005646 для потока обновления:создают новый элемент в соответствии с новой информацией, полученной через сеть, и без ограничения доступа к базе данных для множества потоков поиска записывают указатель на новый элемент в базу данных с использованием одиночной непрерываемой операции.
- 22. Способ по п.21, отличающийся тем, что одиночная непрерываемая операция представляет собой команду сохранения.
- 23. Способ по п.21, отличающийся тем, что дополнительно для потока обновления физически удаляют существующий элемент после записи указателя в базу данных.
- 24. Способ по п.22, отличающийся тем, что команда сохранения записывает 4 байта в адрес памяти, размещенный на границе 4 байтов.
- 25. Способ по п.22, отличающийся тем, что команда сохранения записывает 8 байтов в адрес памяти, размещенный на границе 8 байтов.
- 26. Способ по п.21, отличающийся тем, что множество запросов на поиск принимают в одиночном пакете сети.
- 27. Способ по п.21, отличающийся тем, что множество ответов по поиску принимают в одиночном пакете сети.
- 28. Способ по п.21, отличающийся тем, что упомянутое ограничение доступа включает в себя блокировку базы данных.
- 29. Способ по п.21, отличающийся тем, что упомянутое ограничение доступа включает в себя взаимоблокировку.
- 30. Способ по п.29, отличающийся тем, что взаимоблокировка включает в себя использование, по меньшей мере, одного семафора.
- 31. Способ по п.30, отличающийся тем, что упомянутый семафор является семафором мьютекса.
- 32. Способ по п.21, отличающийся тем, что множество потоков поиска выполняют, по меньшей мере, 100000 поисков в секунду.
- 33. Способ по п.32, отличающийся тем, что поток обновления выполняет, по меньшей мере, 10000 обновлений в секунду.
- 34. Способ по п.33, отличающийся тем, что поток обновления выполняет от 50000 до 130000 обновлений в секунду.
- 35. Способ по п.21, отличающийся тем, что указатель на новый элемент записан в индекс поиска.
- 36. Способ по п.35, отличающийся тем, что индекс поиска представляет собой Т8Т.
- 37. Способ по п.21, отличающийся тем, что указатель на новый элемент записан в запись данных в базе данных.
- 38. Носитель информации, считываемый компьютером, содержащий команды, предназначенные для выполнения, по меньшей мере, одним процессором, для выполнения способа поиска и параллельного обновления базы данных, включающего в себя создание потока обновления и множества потоков поиска, назначение каждого из множества запросов на поиск, полученных через сеть, одному из множества потоков поиска, для каждого потока поиска:осуществление поиска по базе данных в соответствии с назначенными запросами на поиск, создание множества ответов по поиску, соответствующих назначенным запросам на поиск, и передачу множества ответов по поиску через сеть, и для потока обновления:создание нового элемента в соответствии с новой информацией, полученной через сеть, и без ограничения доступа к базе данных для множества потоков поиска, запись указателя на новый элемент в базу данных с использованием одиночной непрерываемой операции.
- 39. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что одиночная непрерываемая операция представляет собой команду сохранения.
- 40. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что упомянутый способ для потока обновления дополнительно включает физическое удаление существующего элемента после записи указателя в базу данных.
- 41. Носитель информации, считываемый компьютером, по п.39, отличающийся тем, что команда сохранения записывает четыре байта в адрес памяти, размещенный на границе четырех байтов.
- 42. Носитель информации, считываемый компьютером, по п.39, отличающийся тем, что команда сохранения записывает восемь байтов в адрес памяти, размещенный на границе восьми байтов.
- 43. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что множество запросов на поиск принимают в одиночном пакете сети.
- 44. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что множество ответов по поиску передают в одиночном пакете сети.
- 45. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что ограничение доступа включает в себя блокировку базы данных.-18005646
- 46. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что ограничение доступа включает в себя взаимоблокировку.
- 47. Носитель информации, считываемый компьютером, по п.46, отличающийся тем, что взаимоблокировка включает в себя использование, по меньшей мере, одного семафора.
- 48. Носитель информации, считываемый компьютером, по п.47, отличающийся тем, что семафор является семафором мьютекса.
- 49. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что указатель на новый элемент записан в индекс поиска.
- 50. Носитель информации, считываемый компьютером, по п.49, отличающийся тем, что индекс поиска представляет собой Т8Т.
- 51. Носитель информации, считываемый компьютером, по п.38, отличающийся тем, что указатель на новый элемент записан в запись данных в базе данных.
- 52. Способ поиска и параллельного обновления базы данных, заключающийся в том, что создают поток обновления и множество потоков поиска, назначают каждый из множества запросов на поиск, полученных через сеть, одному из множества потоков поиска, для каждого потока поиска:осуществляют поиск по базе данных в соответствии с назначенными запросами на поиск, создают множество ответов по поиску, соответствующих назначенным запросам на поиск, и посылают множество ответов по поиску через сеть, и для потока обновления:без ограничения доступа к базе данных для множества потоков поиска, записывают указатель на существующий элемент в базу данных с использованием одиночной непрерываемой операции.
- 53. Способ по п.52, отличающийся тем, что указатель содержит нулевой указатель.
- 54. Способ по п.52, отличающийся тем, что дополнительно для потока обновления: физически удаляют существующий элемент после записи указателя в базу данных.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33084201P | 2001-11-01 | 2001-11-01 | |
US36516902P | 2002-03-19 | 2002-03-19 | |
PCT/US2002/035082 WO2003038596A1 (en) | 2001-11-01 | 2002-11-01 | High speed non-concurrency controlled database |
Publications (2)
Publication Number | Publication Date |
---|---|
EA200400618A1 EA200400618A1 (ru) | 2004-10-28 |
EA005646B1 true EA005646B1 (ru) | 2005-04-28 |
Family
ID=26987480
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200400614A EA006223B1 (ru) | 2001-11-01 | 2002-11-01 | Способ и система для проверки достоверности удалённой базы данных |
EA200400612A EA006045B1 (ru) | 2001-11-01 | 2002-11-01 | Способ и система для обновления удаленной базы данных |
EA200400618A EA005646B1 (ru) | 2001-11-01 | 2002-11-01 | База данных с высокоскоростным не параллельным управлением |
EA200400613A EA006038B1 (ru) | 2001-11-01 | 2002-11-01 | Диспетчер транзакций в памяти |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200400614A EA006223B1 (ru) | 2001-11-01 | 2002-11-01 | Способ и система для проверки достоверности удалённой базы данных |
EA200400612A EA006045B1 (ru) | 2001-11-01 | 2002-11-01 | Способ и система для обновления удаленной базы данных |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200400613A EA006038B1 (ru) | 2001-11-01 | 2002-11-01 | Диспетчер транзакций в памяти |
Country Status (16)
Country | Link |
---|---|
US (10) | US6681228B2 (ru) |
EP (10) | EP1449049A4 (ru) |
JP (4) | JP4420324B2 (ru) |
KR (4) | KR100970122B1 (ru) |
CN (4) | CN100557595C (ru) |
AU (5) | AU2002356884B2 (ru) |
BR (4) | BR0213807A (ru) |
CA (4) | CA2466117C (ru) |
EA (4) | EA006223B1 (ru) |
HK (1) | HK1075308A1 (ru) |
IL (8) | IL161712A0 (ru) |
MX (4) | MXPA04004202A (ru) |
NO (4) | NO20042261L (ru) |
NZ (4) | NZ532773A (ru) |
WO (5) | WO2003038653A1 (ru) |
ZA (4) | ZA200403597B (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2623882C1 (ru) * | 2016-02-18 | 2017-06-29 | Акционерное общество "Лаборатория Касперского" | Способ поиска входной строки в дереве поиска с индексацией узлов дерева поиска |
Families Citing this family (269)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272604B1 (en) * | 1999-09-03 | 2007-09-18 | Atle Hedloy | Method, system and computer readable medium for addressing handling from an operating system |
US6745248B1 (en) * | 2000-08-02 | 2004-06-01 | Register.Com, Inc. | Method and apparatus for analyzing domain name registrations |
AU2001286786A1 (en) * | 2000-08-25 | 2002-03-13 | Stuart E. Massey | Transaction-based enterprise application integration (eai) and development system |
US20030182447A1 (en) * | 2001-05-31 | 2003-09-25 | Schilling Frank T. | Generic top-level domain re-routing system |
JP4420324B2 (ja) * | 2001-11-01 | 2010-02-24 | ベリサイン・インコーポレイテッド | 高速非並行制御されたデータベース |
US20040005892A1 (en) * | 2002-04-18 | 2004-01-08 | Arnaldo Mayer | System and method for managing parameter exchange between telecommunications operators |
CA2384185A1 (en) * | 2002-04-29 | 2003-10-29 | Ibm Canada Limited-Ibm Canada Limitee | Resizable cache sensitive hash table |
JP3971984B2 (ja) * | 2002-10-15 | 2007-09-05 | 松下電器産業株式会社 | 通信装置および通信方法 |
US8255361B2 (en) * | 2003-01-31 | 2012-08-28 | Oracle America, Inc. | Method and system for validating differential computer system update |
US7689569B2 (en) * | 2003-03-31 | 2010-03-30 | Qwest Communications International Inc. | Systems and methods for managing large data environments |
US20040193509A1 (en) * | 2003-03-31 | 2004-09-30 | Qwest Communications International Inc. | Systems and methods for managing telephone number inventory |
US7395276B2 (en) * | 2003-03-31 | 2008-07-01 | Qwest Communications International Inc. | Systems and methods for resolving telephone number discrepancies en masse |
US20040193604A1 (en) * | 2003-03-31 | 2004-09-30 | Qwest Communications International Inc. | Systems and methods for restricting a telephone number's availability for assignment |
US7162495B2 (en) * | 2003-03-31 | 2007-01-09 | Qwest Communications Inc. | Systems and methods for clearing telephone number porting assignments EN masse |
US7624112B2 (en) * | 2003-04-03 | 2009-11-24 | Oracle International Corporation | Asynchronously storing transaction information from memory to a persistent storage |
US7212817B2 (en) * | 2003-04-30 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Partitioning a database keyed with variable length keys |
US20040220941A1 (en) * | 2003-04-30 | 2004-11-04 | Nielson Mark R. | Sorting variable length keys in a database |
JP4124348B2 (ja) * | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | 記憶システム |
JP2005309550A (ja) | 2004-04-19 | 2005-11-04 | Hitachi Ltd | リモートコピー方法及びリモートコピーシステム |
US7130975B2 (en) * | 2003-06-27 | 2006-10-31 | Hitachi, Ltd. | Data processing system |
JP4374953B2 (ja) | 2003-09-09 | 2009-12-02 | 株式会社日立製作所 | データ処理システム |
TW591441B (en) * | 2003-07-28 | 2004-06-11 | Accton Technology Corp | Database system and data access method thereof |
US8949304B2 (en) * | 2003-08-20 | 2015-02-03 | Apple Inc. | Method and apparatus for accelerating the expiration of resource records in a local cache |
US7590643B2 (en) * | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US8131739B2 (en) * | 2003-08-21 | 2012-03-06 | Microsoft Corporation | Systems and methods for interfacing application programs with an item-based storage platform |
US7606788B2 (en) * | 2003-08-22 | 2009-10-20 | Oracle International Corporation | Method and apparatus for protecting private information within a database |
CN100337236C (zh) * | 2003-08-26 | 2007-09-12 | 华为技术有限公司 | 一种使前后台数据库中数据相一致的方法 |
US20050066290A1 (en) * | 2003-09-16 | 2005-03-24 | Chebolu Anil Kumar | Pop-up capture |
US20050065935A1 (en) * | 2003-09-16 | 2005-03-24 | Chebolu Anil Kumar | Client comparison of network content with server-based categorization |
US7219201B2 (en) * | 2003-09-17 | 2007-05-15 | Hitachi, Ltd. | Remote storage disk control device and method for controlling the same |
US7702628B1 (en) * | 2003-09-29 | 2010-04-20 | Sun Microsystems, Inc. | Implementing a fully dynamic lock-free hash table without dummy nodes |
US7158976B1 (en) * | 2003-09-30 | 2007-01-02 | Emc Corporation | Spatial domain mechanism |
US20060008256A1 (en) | 2003-10-01 | 2006-01-12 | Khedouri Robert K | Audio visual player apparatus and system and method of content distribution using the same |
US20130097302A9 (en) | 2003-10-01 | 2013-04-18 | Robert Khedouri | Audio visual player apparatus and system and method of content distribution using the same |
US7127587B2 (en) * | 2003-12-11 | 2006-10-24 | International Business Machines Corporation | Intent seizes in a multi-processor environment |
JP4412989B2 (ja) | 2003-12-15 | 2010-02-10 | 株式会社日立製作所 | 複数の記憶システムを有するデータ処理システム |
WO2005064823A1 (en) * | 2003-12-30 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method device for transmitting data packets belong to different users in a common transmittal protocol packet |
JP4477370B2 (ja) * | 2004-01-30 | 2010-06-09 | 株式会社日立製作所 | データ処理システム |
US7895199B2 (en) * | 2004-04-20 | 2011-02-22 | Honda Motor Co., Ltd. | Method and system for modifying orders |
US7555634B1 (en) | 2004-04-22 | 2009-06-30 | Sun Microsystems, Inc. | Multiple data hazards detection and resolution unit |
CA2465558A1 (en) * | 2004-04-22 | 2005-10-22 | Ibm Canada Limited - Ibm Canada Limitee | Framework for retrieval and display of large result sets |
DE602004002850T2 (de) * | 2004-05-11 | 2007-03-15 | Alcatel | Netzelement und Verfahren zur Abbildung von Adressinformationen |
US7483426B2 (en) * | 2004-05-13 | 2009-01-27 | Micrel, Inc. | Look-up table expansion method |
EP1756736B1 (en) * | 2004-05-21 | 2017-07-05 | CA, Inc. | Method and apparatus for enhancing directory performance |
US20060036720A1 (en) * | 2004-06-14 | 2006-02-16 | Faulk Robert L Jr | Rate limiting of events |
DE602004007903T2 (de) * | 2004-06-22 | 2008-04-17 | Sap Ag | Datenverarbeitungsvorrichtung von Online-Transaktionsdaten |
US7774298B2 (en) * | 2004-06-30 | 2010-08-10 | Sap Ag | Method and system for data extraction from a transaction system to an analytics system |
JP4519563B2 (ja) * | 2004-08-04 | 2010-08-04 | 株式会社日立製作所 | 記憶システム及びデータ処理システム |
US7359923B2 (en) * | 2004-08-20 | 2008-04-15 | International Business Machines Corporation | Online incremental deferred integrity processing and maintenance of rolled in and rolled out data |
US7788282B2 (en) * | 2004-09-16 | 2010-08-31 | International Business Machines Corporation | Methods and computer programs for database structure comparison |
JP2006127028A (ja) * | 2004-10-27 | 2006-05-18 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
US8356127B2 (en) * | 2004-12-09 | 2013-01-15 | Rambus Inc. | Memory interface with workload adaptive encode/decode |
US7805422B2 (en) * | 2005-02-28 | 2010-09-28 | Microsoft Corporation | Change notification query multiplexing |
US20060218176A1 (en) * | 2005-03-24 | 2006-09-28 | International Business Machines Corporation | System, method, and service for organizing data for fast retrieval |
US9547780B2 (en) * | 2005-03-28 | 2017-01-17 | Absolute Software Corporation | Method for determining identification of an electronic device |
US7693082B2 (en) * | 2005-04-12 | 2010-04-06 | Azimuth Systems, Inc. | Latency measurement apparatus and method |
CN1878164A (zh) * | 2005-06-08 | 2006-12-13 | 华为技术有限公司 | E.164号码域名存储和查询方法 |
CN100395996C (zh) * | 2005-06-23 | 2008-06-18 | 华为技术有限公司 | 一种网络管理系统的信息同步方法 |
US7743028B1 (en) * | 2005-07-13 | 2010-06-22 | Symantec Corporation | Incremental backup of partial volumes |
US8015222B2 (en) | 2005-10-24 | 2011-09-06 | Emc Corporation | Virtual repository management |
US8819048B1 (en) * | 2005-10-24 | 2014-08-26 | Emc Corporation | Virtual repository management to provide retention management services |
US20070100783A1 (en) * | 2005-10-29 | 2007-05-03 | International Business Machines Corporation | Method, system, and program for determining discrepancies between database management systems |
US20070106729A1 (en) * | 2005-11-04 | 2007-05-10 | Research In Motion Limited | Method and system for updating message threads |
US8266609B2 (en) * | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
WO2007074286A1 (fr) * | 2005-12-27 | 2007-07-05 | France Telecom | Serveur et procede pour gerer des requetes dnssec |
US20070192374A1 (en) * | 2006-02-16 | 2007-08-16 | Emc Corporation | Virtual repository management to provide functionality |
US20110087792A2 (en) * | 2006-02-07 | 2011-04-14 | Dot Hill Systems Corporation | Data replication method and apparatus |
US7761293B2 (en) * | 2006-03-06 | 2010-07-20 | Tran Bao Q | Spoken mobile engine |
US20070208564A1 (en) * | 2006-03-06 | 2007-09-06 | Available For Licensing | Telephone based search system |
US20070226264A1 (en) * | 2006-03-22 | 2007-09-27 | Gang Luo | System and method for real-time materialized view maintenance |
US7783850B2 (en) * | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
KR100728982B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
KR100728983B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
US7636829B2 (en) * | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
TW200743000A (en) * | 2006-05-11 | 2007-11-16 | Ming-Ta Hsu | Report retrieval and presentation methods and systems |
US8713188B2 (en) * | 2007-12-13 | 2014-04-29 | Opendns, Inc. | Per-request control of DNS behavior |
US8606926B2 (en) * | 2006-06-14 | 2013-12-10 | Opendns, Inc. | Recursive DNS nameserver |
US7575163B2 (en) | 2006-07-18 | 2009-08-18 | At&T Intellectual Property I, L.P. | Interactive management of storefront purchases |
US8400947B2 (en) * | 2006-07-20 | 2013-03-19 | Tekelec, Inc. | Methods, systems, and computer program products for specifying a particular ENUM service type in a communications network that utilizes a plurality of different ENUM service types |
US20080034053A1 (en) * | 2006-08-04 | 2008-02-07 | Apple Computer, Inc. | Mail Server Clustering |
US20080052270A1 (en) * | 2006-08-23 | 2008-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Hash table structure and search method |
US7921075B2 (en) * | 2006-09-29 | 2011-04-05 | International Business Machines Corporation | Generic sequencing service for business integration |
US9514201B2 (en) * | 2006-10-13 | 2016-12-06 | International Business Machines Corporation | Method and system for non-intrusive event sequencing |
US9274857B2 (en) * | 2006-10-13 | 2016-03-01 | International Business Machines Corporation | Method and system for detecting work completion in loosely coupled components |
US7680956B2 (en) * | 2006-10-24 | 2010-03-16 | Cisco Technology, Inc. | Communicating additional information in a DNS update response by requesting deletion of a specific record |
KR100898995B1 (ko) * | 2006-10-25 | 2009-05-21 | 노키아 코포레이션 | 원격 전자 거래 |
US9824107B2 (en) | 2006-10-25 | 2017-11-21 | Entit Software Llc | Tracking changing state data to assist in computer network security |
US7593973B2 (en) * | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US20080254436A1 (en) * | 2006-11-16 | 2008-10-16 | Morgia Michael A | Selection Of A Consensus From A Plurality Of Ideas |
US8688749B1 (en) | 2011-03-31 | 2014-04-01 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US8515912B2 (en) | 2010-07-15 | 2013-08-20 | Palantir Technologies, Inc. | Sharing and deconflicting data changes in a multimaster database system |
US8181187B2 (en) * | 2006-12-01 | 2012-05-15 | Portico Systems | Gateways having localized in-memory databases and business logic execution |
US8615635B2 (en) * | 2007-01-05 | 2013-12-24 | Sony Corporation | Database management methodology |
US8751467B2 (en) * | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
DE102007008293B4 (de) * | 2007-02-16 | 2010-02-25 | Continental Automotive Gmbh | Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten |
US9690790B2 (en) | 2007-03-05 | 2017-06-27 | Dell Software Inc. | Method and apparatus for efficiently merging, storing and retrieving incremental data |
JP2008226167A (ja) * | 2007-03-15 | 2008-09-25 | Toshiba Corp | データ配布システム及びデータ配布プログラム |
US7716183B2 (en) * | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7975115B2 (en) * | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US8768898B1 (en) * | 2007-04-26 | 2014-07-01 | Netapp, Inc. | Performing direct data manipulation on a storage device |
US8856094B2 (en) * | 2007-05-08 | 2014-10-07 | Digital River, Inc. | Remote segmentation system and method |
US20090182718A1 (en) * | 2007-05-08 | 2009-07-16 | Digital River, Inc. | Remote Segmentation System and Method Applied To A Segmentation Data Mart |
US7783603B2 (en) * | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
US8001345B2 (en) * | 2007-05-10 | 2011-08-16 | Dot Hill Systems Corporation | Automatic triggering of backing store re-initialization |
US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8175099B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Embedded system development platform |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US7882337B2 (en) * | 2007-05-19 | 2011-02-01 | International Business Machines Corporation | Method and system for efficient tentative tracing of software in multiprocessors |
US8204858B2 (en) * | 2007-06-25 | 2012-06-19 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
US8140961B2 (en) * | 2007-11-21 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Automated re-ordering of columns for alignment trap reduction |
US11347771B2 (en) * | 2007-11-28 | 2022-05-31 | International Business Machines Corporation | Content engine asynchronous upgrade framework |
US9990674B1 (en) | 2007-12-14 | 2018-06-05 | Consumerinfo.Com, Inc. | Card registry systems and methods |
US8412700B2 (en) | 2008-01-11 | 2013-04-02 | International Business Machines Corporation | Database query optimization using index carryover to subset an index |
US7912867B2 (en) * | 2008-02-25 | 2011-03-22 | United Parcel Services Of America, Inc. | Systems and methods of profiling data for integration |
US8015191B2 (en) * | 2008-03-27 | 2011-09-06 | International Business Machines Corporation | Implementing dynamic processor allocation based upon data density |
US8170988B2 (en) * | 2008-04-17 | 2012-05-01 | The Boeing Company | System and method for synchronizing databases |
US8768349B1 (en) * | 2008-04-24 | 2014-07-01 | Sprint Communications Company L.P. | Real-time subscriber profile consolidation system |
US9094140B2 (en) * | 2008-04-28 | 2015-07-28 | Time Warner Cable Enterprises Llc | Methods and apparatus for audience research in a content-based network |
DE102008022415A1 (de) * | 2008-05-06 | 2009-11-12 | TÜV Rheinland Industrie Service GmbH | Absinkverhinderungsvorrichtung |
US8140520B2 (en) * | 2008-05-15 | 2012-03-20 | International Business Machines Corporation | Embedding densities in a data structure |
US8275761B2 (en) | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
EP2134122A1 (en) * | 2008-06-13 | 2009-12-16 | Hewlett-Packard Development Company, L.P. | Controlling access to a communication network using a local device database and a shared device database |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
CN101309177B (zh) * | 2008-07-11 | 2012-01-11 | 中国移动通信集团云南有限公司 | 一种网络资源数据管理方法及系统 |
US9418005B2 (en) | 2008-07-15 | 2016-08-16 | International Business Machines Corporation | Managing garbage collection in a data processing system |
CN101639950B (zh) * | 2008-07-29 | 2011-07-13 | 中兴通讯股份有限公司 | 一种车道收费系统中的数据同步方法及装置 |
US8751441B2 (en) * | 2008-07-31 | 2014-06-10 | Sybase, Inc. | System, method, and computer program product for determining SQL replication process |
US8239417B2 (en) * | 2008-08-07 | 2012-08-07 | Armanta, Inc. | System, method, and computer program product for accessing and manipulating remote datasets |
US8768933B2 (en) * | 2008-08-08 | 2014-07-01 | Kabushiki Kaisha Toshiba | System and method for type-ahead address lookup employing historically weighted address placement |
CN101727383B (zh) * | 2008-10-16 | 2012-07-04 | 上海市医疗保险信息中心 | 数据库的仿真测试方法和系统 |
US9292612B2 (en) | 2009-04-22 | 2016-03-22 | Verisign, Inc. | Internet profile service |
US8676989B2 (en) | 2009-04-23 | 2014-03-18 | Opendns, Inc. | Robust domain name resolution |
US8527945B2 (en) | 2009-05-07 | 2013-09-03 | Verisign, Inc. | Method and system for integrating multiple scripts |
US8037076B2 (en) * | 2009-05-11 | 2011-10-11 | Red Hat, Inc. | Federated indexing from hashed primary key slices |
US8510263B2 (en) * | 2009-06-15 | 2013-08-13 | Verisign, Inc. | Method and system for auditing transaction data from database operations |
US8739125B2 (en) * | 2009-06-16 | 2014-05-27 | Red Hat, Inc. | Automated and unattended process for testing software applications |
US20100333071A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines |
US8977705B2 (en) * | 2009-07-27 | 2015-03-10 | Verisign, Inc. | Method and system for data logging and analysis |
US8327019B2 (en) | 2009-08-18 | 2012-12-04 | Verisign, Inc. | Method and system for intelligent routing of requests over EPP |
US8874694B2 (en) * | 2009-08-18 | 2014-10-28 | Facebook, Inc. | Adaptive packaging of network resources |
US8856344B2 (en) | 2009-08-18 | 2014-10-07 | Verisign, Inc. | Method and system for intelligent many-to-many service routing over EPP |
US20110044320A1 (en) * | 2009-08-21 | 2011-02-24 | Avaya Inc. | Mechanism for fast evaluation of policies in work assignment |
US8175098B2 (en) | 2009-08-27 | 2012-05-08 | Verisign, Inc. | Method for optimizing a route cache |
US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
US9047589B2 (en) | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US9269080B2 (en) | 2009-10-30 | 2016-02-23 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9762405B2 (en) | 2009-10-30 | 2017-09-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9569753B2 (en) | 2009-10-30 | 2017-02-14 | Verisign, Inc. | Hierarchical publish/subscribe system performed by multiple central relays |
US9235829B2 (en) | 2009-10-30 | 2016-01-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US8982882B2 (en) | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
CN102096676B (zh) * | 2009-12-11 | 2014-04-09 | 中国移动通信集团公司 | 数据更新及查询控制方法及系统 |
US20110178984A1 (en) * | 2010-01-18 | 2011-07-21 | Microsoft Corporation | Replication protocol for database systems |
US8825601B2 (en) * | 2010-02-01 | 2014-09-02 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
US9176783B2 (en) | 2010-05-24 | 2015-11-03 | International Business Machines Corporation | Idle transitions sampling with execution context |
US8843684B2 (en) | 2010-06-11 | 2014-09-23 | International Business Machines Corporation | Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration |
US8799872B2 (en) | 2010-06-27 | 2014-08-05 | International Business Machines Corporation | Sampling with sample pacing |
FR2964213B1 (fr) * | 2010-09-01 | 2013-04-26 | Evidian | Annuaire d'identite et procede de mise a jour d'un annuaire d'identite |
US8489724B2 (en) * | 2010-09-14 | 2013-07-16 | Cdnetworks Co., Ltd. | CNAME-based round-trip time measurement in a content delivery network |
US20120089646A1 (en) * | 2010-10-08 | 2012-04-12 | Jain Rohit N | Processing change data |
US8332433B2 (en) | 2010-10-18 | 2012-12-11 | Verisign, Inc. | Database synchronization and validation |
US8799904B2 (en) | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
JP5652281B2 (ja) * | 2011-03-18 | 2015-01-14 | 富士通株式会社 | 業務処理サーバ、業務処理方法及び業務処理プログラム |
RU2480819C2 (ru) * | 2011-06-28 | 2013-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ оптимизации работы со связными списками |
US8549579B2 (en) * | 2011-07-06 | 2013-10-01 | International Business Machines Corporation | Dynamic data-protection policies within a request-reply message queuing environment |
EP2740058A4 (en) * | 2011-08-03 | 2015-04-22 | Amazon Tech Inc | COLLECTING TRANSACTION DATA ASSOCIATED WITH LOCALLY RECORDED DATA FILES |
US8782352B2 (en) * | 2011-09-29 | 2014-07-15 | Oracle International Corporation | System and method for supporting a self-tuning locking mechanism in a transactional middleware machine environment |
US8738516B1 (en) | 2011-10-13 | 2014-05-27 | Consumerinfo.Com, Inc. | Debt services candidate locator |
IL216056B (en) | 2011-10-31 | 2018-04-30 | Verint Systems Ltd | A system and method for integrating databases |
US9679009B2 (en) * | 2011-11-17 | 2017-06-13 | Sap Se | Component independent process integration message search |
WO2013074914A1 (en) | 2011-11-18 | 2013-05-23 | Appassure Software, Inc. | Method of and system for merging, storing and retrieving incremental backup data |
US8782004B2 (en) | 2012-01-23 | 2014-07-15 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
KR101375794B1 (ko) | 2012-01-27 | 2014-03-18 | 네이버비즈니스플랫폼 주식회사 | 데이터베이스의 성능을 향상하기 위한 방법 및 장치 |
JP2013182588A (ja) * | 2012-03-05 | 2013-09-12 | Oki Electric Ind Co Ltd | バックアップシステムにおけるバックアップデータの同期方法 |
US9065855B2 (en) * | 2012-06-29 | 2015-06-23 | Verisign, Inc. | Systems and methods for automatically providing Whois service to top level domains |
US9244846B2 (en) | 2012-07-06 | 2016-01-26 | International Business Machines Corporation | Ensuring causality of transactional storage accesses interacting with non-transactional storage accesses |
US9369395B2 (en) | 2012-08-31 | 2016-06-14 | At&T Intellectual Property I, L.P. | Methods and apparatus to negotiate flow control for a communication session |
US20140101150A1 (en) * | 2012-10-05 | 2014-04-10 | Axis Semiconductor, Inc. | Efficient high performance scalable pipelined searching method using variable stride multibit tries |
US9081975B2 (en) | 2012-10-22 | 2015-07-14 | Palantir Technologies, Inc. | Sharing information between nexuses that use different classification schemes for information access control |
US9501761B2 (en) | 2012-11-05 | 2016-11-22 | Palantir Technologies, Inc. | System and method for sharing investigation results |
US9654541B1 (en) | 2012-11-12 | 2017-05-16 | Consumerinfo.Com, Inc. | Aggregating user web browsing data |
US9613165B2 (en) | 2012-11-13 | 2017-04-04 | Oracle International Corporation | Autocomplete searching with security filtering and ranking |
US9916621B1 (en) | 2012-11-30 | 2018-03-13 | Consumerinfo.Com, Inc. | Presentation of credit score factors |
CN103929763A (zh) * | 2013-01-11 | 2014-07-16 | 阿尔卡特朗讯 | 一种用于比较和重构地理冗余的数据库的方法 |
US9406085B1 (en) | 2013-03-14 | 2016-08-02 | Consumerinfo.Com, Inc. | System and methods for credit dispute processing, resolution, and reporting |
US10102570B1 (en) | 2013-03-14 | 2018-10-16 | Consumerinfo.Com, Inc. | Account vulnerability alerts |
WO2014195804A2 (en) * | 2013-06-04 | 2014-12-11 | Marvell World Trade Ltd. | Internal search engine architecture |
US8886601B1 (en) | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
US9589130B2 (en) * | 2013-08-20 | 2017-03-07 | White Cloud Security, L.L.C. | Application trust-listing security service |
GB2517932B (en) * | 2013-09-04 | 2021-05-05 | 1Spatial Group Ltd | Modification and validation of spatial data |
US9922043B1 (en) * | 2013-10-28 | 2018-03-20 | Pivotal Software, Inc. | Data management platform |
US9569070B1 (en) | 2013-11-11 | 2017-02-14 | Palantir Technologies, Inc. | Assisting in deconflicting concurrency conflicts |
US9477737B1 (en) * | 2013-11-20 | 2016-10-25 | Consumerinfo.Com, Inc. | Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules |
US10095800B1 (en) | 2013-12-16 | 2018-10-09 | Amazon Technologies, Inc. | Multi-tenant data store management |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US9405655B2 (en) * | 2014-03-19 | 2016-08-02 | Dell Products, Lp | System and method for running a validation process for an information handling system during a factory process |
US9561469B2 (en) | 2014-03-24 | 2017-02-07 | Johnson Matthey Public Limited Company | Catalyst for treating exhaust gas |
US9971987B1 (en) | 2014-03-25 | 2018-05-15 | Amazon Technologies, Inc. | Out of order data management |
US9910883B2 (en) | 2014-04-07 | 2018-03-06 | International Business Machines Corporation | Enhanced batch updates on records and related records system and method |
WO2015162705A1 (ja) * | 2014-04-22 | 2015-10-29 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
CN106471486B (zh) | 2014-04-30 | 2019-05-17 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自适应自调整锁定机制的系统和方法 |
US9778949B2 (en) * | 2014-05-05 | 2017-10-03 | Google Inc. | Thread waiting in a multithreaded processor architecture |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US9021260B1 (en) | 2014-07-03 | 2015-04-28 | Palantir Technologies Inc. | Malware data item analysis |
US9785773B2 (en) | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US9699023B2 (en) * | 2014-07-18 | 2017-07-04 | Fujitsu Limited | Initializing a network interface based on stored data |
US10204134B2 (en) | 2014-08-14 | 2019-02-12 | International Business Machines Corporation | Automatic detection of problems in a large-scale multi-record update system and method |
US11176106B2 (en) * | 2014-11-19 | 2021-11-16 | Unisys Corporation | Dynamic modification of database schema |
CN104572881A (zh) * | 2014-12-23 | 2015-04-29 | 国家电网公司 | 基于多任务并发的配网图模导入方法 |
US9734016B2 (en) * | 2015-02-24 | 2017-08-15 | Red Hat Israel, Ltd. | Secure live virtual machine guest based snapshot recovery |
US20160378824A1 (en) * | 2015-06-24 | 2016-12-29 | Futurewei Technologies, Inc. | Systems and Methods for Parallelizing Hash-based Operators in SMP Databases |
US20160378812A1 (en) * | 2015-06-25 | 2016-12-29 | International Business Machines Corporation | Reduction of bind breaks |
CN104965923B (zh) * | 2015-07-08 | 2018-09-28 | 安徽兆尹信息科技股份有限公司 | 一种用于生成现金流量表的云计算应用平台构建方法 |
AU2016340043A1 (en) * | 2015-10-15 | 2018-05-24 | Big Ip Pty Ltd | A system, method, computer program and data signal for conducting an electronic search of a database |
AU2016340042A1 (en) * | 2015-10-15 | 2018-05-24 | Big Ip Pty Ltd | A system, method, computer program and data signal for the provision of a database of information for lead generating purposes |
IL242219B (en) * | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | System and method for keyword searching using both static and dynamic dictionaries |
IL242218B (en) | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | A system and method for maintaining a dynamic dictionary |
US10530758B2 (en) * | 2015-12-18 | 2020-01-07 | F5 Networks, Inc. | Methods of collaborative hardware and software DNS acceleration and DDOS protection |
MX2018007425A (es) * | 2015-12-18 | 2018-08-15 | Walmart Apollo Llc | Sistemas y metodos para resolver discrepancia de datos. |
CN105574407B (zh) * | 2015-12-28 | 2018-09-25 | 无锡天脉聚源传媒科技有限公司 | 一种共享的处理方法和装置 |
US10621198B1 (en) | 2015-12-30 | 2020-04-14 | Palantir Technologies Inc. | System and method for secure database replication |
US10353888B1 (en) * | 2016-03-03 | 2019-07-16 | Amdocs Development Limited | Event processing system, method, and computer program |
US10642780B2 (en) | 2016-03-07 | 2020-05-05 | Mellanox Technologies, Ltd. | Atomic access to object pool over RDMA transport network |
WO2017191495A1 (en) * | 2016-05-05 | 2017-11-09 | Askarov Bauyrzhan | New domain name system and usage thereof |
US10089339B2 (en) * | 2016-07-18 | 2018-10-02 | Arm Limited | Datagram reassembly |
CN106250487B (zh) * | 2016-07-29 | 2020-07-03 | 新华三技术有限公司 | 一种数据库并发控制方法及装置 |
US11005977B2 (en) | 2016-08-31 | 2021-05-11 | Viavi Solutions Inc. | Packet filtering using binary search trees |
US10382562B2 (en) * | 2016-11-04 | 2019-08-13 | A10 Networks, Inc. | Verification of server certificates using hash codes |
US10262053B2 (en) | 2016-12-22 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for data replication synchronization |
TWI643146B (zh) * | 2016-12-22 | 2018-12-01 | 經貿聯網科技股份有限公司 | 動態更新金融資料的方法及其處理系統以及動態調整電源配置的方法及其處理系統 |
CN106790544A (zh) * | 2016-12-22 | 2017-05-31 | 郑州云海信息技术有限公司 | 减少远程客户端与数据中心间通信数据量的方法及装置 |
CN108667947B (zh) * | 2017-03-31 | 2019-10-25 | 贵州白山云科技股份有限公司 | 一种减少dns应答报文的长度的方法及装置 |
GB2561176A (en) * | 2017-04-03 | 2018-10-10 | Edinburgh Napier Univ | System and method for management of confidential data |
US10068002B1 (en) | 2017-04-25 | 2018-09-04 | Palantir Technologies Inc. | Systems and methods for adaptive data replication |
US10430062B2 (en) | 2017-05-30 | 2019-10-01 | Palantir Technologies Inc. | Systems and methods for geo-fenced dynamic dissemination |
US11030494B1 (en) | 2017-06-15 | 2021-06-08 | Palantir Technologies Inc. | Systems and methods for managing data spills |
US10552367B2 (en) | 2017-07-26 | 2020-02-04 | Mellanox Technologies, Ltd. | Network data transactions using posted and non-posted operations |
US10380196B2 (en) | 2017-12-08 | 2019-08-13 | Palantir Technologies Inc. | Systems and methods for using linked documents |
US10915542B1 (en) | 2017-12-19 | 2021-02-09 | Palantir Technologies Inc. | Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme |
US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US20190213271A1 (en) * | 2018-01-09 | 2019-07-11 | Unisys Corporation | Method and system for data exchange critical event notification |
KR102034679B1 (ko) | 2018-01-17 | 2019-10-23 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
CN110083596A (zh) * | 2018-05-16 | 2019-08-02 | 陈刚 | 一种数据历史跟踪和数据变化历史跟踪的方法 |
CN108876143A (zh) * | 2018-06-13 | 2018-11-23 | 亳州市药通信息咨询有限公司 | 一种中药材价格指数系统 |
CN110798332B (zh) | 2018-08-03 | 2022-09-06 | Emc Ip控股有限公司 | 用于搜索目录访问组的方法和系统 |
US10880313B2 (en) | 2018-09-05 | 2020-12-29 | Consumerinfo.Com, Inc. | Database platform for realtime updating of user data from third party sources |
US11238656B1 (en) | 2019-02-22 | 2022-02-01 | Consumerinfo.Com, Inc. | System and method for an augmented reality experience via an artificial intelligence bot |
CN111831639B (zh) * | 2019-04-19 | 2024-01-30 | 北京车和家信息技术有限公司 | 一种全局唯一id生成方法及装置、车辆管理系统 |
US11303606B1 (en) | 2019-06-03 | 2022-04-12 | Amazon Technologies, Inc. | Hashing name resolution requests according to an identified routing policy |
CA3148975C (en) * | 2019-07-30 | 2023-04-25 | Falkonry Inc. | Fluid and resolution-friendly view of large volumes of time series data |
US11941065B1 (en) | 2019-09-13 | 2024-03-26 | Experian Information Solutions, Inc. | Single identifier platform for storing entity data |
CN110990377B (zh) * | 2019-11-21 | 2023-08-22 | 上海达梦数据库有限公司 | 一种数据装载方法、装置、服务器及存储介质 |
US11500849B2 (en) * | 2019-12-02 | 2022-11-15 | International Business Machines Corporation | Universal streaming change data capture |
US11269836B2 (en) | 2019-12-17 | 2022-03-08 | Cerner Innovation, Inc. | System and method for generating multi-category searchable ternary tree data structure |
CN111240762B (zh) * | 2020-01-10 | 2021-11-23 | 珠海格力电器股份有限公司 | 线程管理方法、存储介质及电子设备 |
EP4354800A3 (en) * | 2020-02-24 | 2024-06-26 | SSenStone Inc. | Method, program, and device for authenticating user setting information by using virtual code |
WO2021172875A1 (ko) * | 2020-02-24 | 2021-09-02 | 주식회사 센스톤 | 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치 |
US20230138113A1 (en) * | 2021-02-09 | 2023-05-04 | Micro Focus Llc | System for retrieval of large datasets in cloud environments |
US11934377B2 (en) * | 2021-02-25 | 2024-03-19 | Microsoft Technology Licensing, Llc | Consistency checking for distributed analytical database systems |
US20220335049A1 (en) * | 2021-04-14 | 2022-10-20 | Google Llc | Powering Scalable Data Warehousing with Robust Query Performance |
CN113806342A (zh) * | 2021-07-21 | 2021-12-17 | 厦门莲隐科技有限公司 | 一种提取以太坊区块链底层数据的系统 |
US12050512B2 (en) * | 2022-08-02 | 2024-07-30 | Nxp B.V. | Dynamic configuration of reaction policies in virtualized fault management system |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4412285A (en) | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
US5010478A (en) * | 1986-04-11 | 1991-04-23 | Deran Roger L | Entity-attribute value database system with inverse attribute for selectively relating two different entities |
GB8704882D0 (en) * | 1987-03-03 | 1987-04-08 | Hewlett Packard Co | Secure messaging systems |
US4947366A (en) * | 1987-10-02 | 1990-08-07 | Advanced Micro Devices, Inc. | Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities |
US5175849A (en) * | 1988-07-28 | 1992-12-29 | Amdahl Corporation | Capturing data of a database system |
US5089952A (en) * | 1988-10-07 | 1992-02-18 | International Business Machines Corporation | Method for allowing weak searchers to access pointer-connected data structures without locking |
US5161223A (en) * | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Resumeable batch query for processing time consuming queries in an object oriented database management system |
JP3369580B2 (ja) * | 1990-03-12 | 2003-01-20 | ヒューレット・パッカード・カンパニー | 直接メモリアクセスを行うためのインターフェース装置及び方法 |
CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
US5893117A (en) * | 1990-08-17 | 1999-04-06 | Texas Instruments Incorporated | Time-stamped database transaction and version management system |
US5287496A (en) * | 1991-02-25 | 1994-02-15 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing |
US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US6188428B1 (en) * | 1992-02-11 | 2001-02-13 | Mark Koz | Transcoding video file server and methods for its use |
US5749079A (en) * | 1992-03-04 | 1998-05-05 | Singapore Computer Systems Limited | End user query facility including a query connectivity driver |
US5260942A (en) * | 1992-03-06 | 1993-11-09 | International Business Machines Corporation | Method and apparatus for batching the receipt of data packets |
DE69324204T2 (de) * | 1992-10-22 | 1999-12-23 | Cabletron Systems, Inc. | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers |
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5729735A (en) * | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
US5615337A (en) * | 1995-04-06 | 1997-03-25 | International Business Machines Corporation | System and method for efficiently processing diverse result sets returned by a stored procedures |
US5974409A (en) * | 1995-08-23 | 1999-10-26 | Microsoft Corporation | System and method for locating information in an on-line network |
US5758150A (en) * | 1995-10-06 | 1998-05-26 | Tele-Communications, Inc. | System and method for database synchronization |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US5875443A (en) * | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
US5852715A (en) * | 1996-03-19 | 1998-12-22 | Emc Corporation | System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions |
US5765028A (en) * | 1996-05-07 | 1998-06-09 | Ncr Corporation | Method and apparatus for providing neural intelligence to a mail query agent in an online analytical processing system |
US5787452A (en) * | 1996-05-21 | 1998-07-28 | Sybase, Inc. | Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment |
US6154777A (en) * | 1996-07-01 | 2000-11-28 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5995980A (en) * | 1996-07-23 | 1999-11-30 | Olson; Jack E. | System and method for database update replication |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US6044381A (en) * | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US6330568B1 (en) * | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
WO1998038583A1 (en) * | 1997-02-26 | 1998-09-03 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths |
US5937414A (en) * | 1997-02-28 | 1999-08-10 | Oracle Corporation | Method and apparatus for providing database system replication in a mixed propagation environment |
US6862602B2 (en) * | 1997-03-07 | 2005-03-01 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US5920886A (en) | 1997-03-14 | 1999-07-06 | Music Semiconductor Corporation | Accelerated hierarchical address filtering and translation using binary and ternary CAMs |
KR19990001093A (ko) * | 1997-06-12 | 1999-01-15 | 윤종용 | 교환기 시스템의 운영 프로그램 및 데이터베이스 인스톨 방법 |
US5924098A (en) * | 1997-06-30 | 1999-07-13 | Sun Microsystems, Inc. | Method and apparatus for managing a linked-list data structure |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6148070A (en) * | 1997-07-02 | 2000-11-14 | Ameritech Corporation | Method, system, and database for providing a telecommunication service |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6061678A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Approach for managing access to large objects in database systems using large object indexes |
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US6029170A (en) | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
US6044448A (en) * | 1997-12-16 | 2000-03-28 | S3 Incorporated | Processor having multiple datapath instances |
US6256256B1 (en) * | 1998-01-30 | 2001-07-03 | Silicon Aquarius, Inc. | Dual port random access memories and systems using the same |
US6304259B1 (en) * | 1998-02-09 | 2001-10-16 | International Business Machines Corporation | Computer system, method and user interface components for abstracting and accessing a body of knowledge |
US6304881B1 (en) | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US6237019B1 (en) * | 1998-03-18 | 2001-05-22 | International Business Machines Corporation | Method and apparatus for performing a semaphore operation |
US6185567B1 (en) | 1998-05-29 | 2001-02-06 | The Trustees Of The University Of Pennsylvania | Authenticated access to internet based research and data services |
US6131122A (en) | 1998-06-01 | 2000-10-10 | Nortel Networks Corporation | Programmable internet automation |
WO1999063441A1 (en) * | 1998-06-05 | 1999-12-09 | Mylex Corporation | Snapshot backup strategy |
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
US6360220B1 (en) * | 1998-08-04 | 2002-03-19 | Microsoft Corporation | Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US6411966B1 (en) * | 1998-09-21 | 2002-06-25 | Microsoft Corporation | Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic |
US6243715B1 (en) * | 1998-11-09 | 2001-06-05 | Lucent Technologies Inc. | Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated |
JP2002534842A (ja) * | 1998-12-23 | 2002-10-15 | ノキア・ワイヤレス・ルーターズ・インコーポレーテッド | アドホック・インターネットワーキングのための統一されたルーティング方式 |
US6516327B1 (en) * | 1998-12-24 | 2003-02-04 | International Business Machines Corporation | System and method for synchronizing data in multiple databases |
US6304924B1 (en) * | 1999-02-02 | 2001-10-16 | International Business Machines Corporation | Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures |
US6553392B1 (en) * | 1999-02-04 | 2003-04-22 | Hewlett-Packard Development Company, L.P. | System and method for purging database update image files after completion of associated transactions |
FI106493B (fi) * | 1999-02-09 | 2001-02-15 | Nokia Mobile Phones Ltd | Menetelmä ja järjestelmä pakettimuotoisen datan luotettavaksi siirtämiseksi |
US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
US6314469B1 (en) * | 1999-02-26 | 2001-11-06 | I-Dns.Net International Pte Ltd | Multi-language domain name service |
WO2000052594A2 (en) * | 1999-03-03 | 2000-09-08 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US6484185B1 (en) * | 1999-04-05 | 2002-11-19 | Microsoft Corporation | Atomic operations on data structures |
US6745177B2 (en) * | 1999-04-09 | 2004-06-01 | Metro One Telecommunications, Inc. | Method and system for retrieving data from multiple data sources using a search routing database |
US6938057B2 (en) * | 1999-05-21 | 2005-08-30 | International Business Machines Corporation | Method and apparatus for networked backup storage |
US6529504B1 (en) * | 1999-06-02 | 2003-03-04 | Sprint Communications Company, L.P. | Telecommunications service control point interface |
WO2001011443A2 (en) * | 1999-08-06 | 2001-02-15 | Namezero.Com, Inc. | Internet hosting system |
US6449657B2 (en) * | 1999-08-06 | 2002-09-10 | Namezero.Com, Inc. | Internet hosting system |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6792458B1 (en) * | 1999-10-04 | 2004-09-14 | Urchin Software Corporation | System and method for monitoring and analyzing internet traffic |
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
KR100856149B1 (ko) | 1999-11-26 | 2008-09-03 | 네테카 인코포레이티드 | 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법 |
US6980990B2 (en) * | 1999-12-01 | 2005-12-27 | Barry Fellman | Internet domain name registration system |
US6434681B1 (en) * | 1999-12-02 | 2002-08-13 | Emc Corporation | Snapshot copy facility for a data storage system permitting continued host read/write access |
US6625621B2 (en) * | 2000-01-04 | 2003-09-23 | Starfish Software, Inc. | System and methods for a fast and scalable synchronization server |
US6677964B1 (en) * | 2000-02-18 | 2004-01-13 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
US6789073B1 (en) * | 2000-02-22 | 2004-09-07 | Harvey Lunenfeld | Client-server multitasking |
JP2001236257A (ja) | 2000-02-24 | 2001-08-31 | Fujitsu Ltd | 情報記憶装置及び加入者データのデータ更新方法並びに移動通信システム |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US6643669B1 (en) * | 2000-03-14 | 2003-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for optimization of synchronization between a client's database and a server database |
JP2001290689A (ja) | 2000-04-07 | 2001-10-19 | Hitachi Ltd | 複数データベース間のレプリケーションのデータ検証方法 |
US6976090B2 (en) * | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
US6725218B1 (en) * | 2000-04-28 | 2004-04-20 | Cisco Technology, Inc. | Computerized database system and method |
US7734815B2 (en) | 2006-09-18 | 2010-06-08 | Akamai Technologies, Inc. | Global load balancing across mirrored data centers |
US7165116B2 (en) * | 2000-07-10 | 2007-01-16 | Netli, Inc. | Method for network discovery using name servers |
US7725602B2 (en) | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
US20020029226A1 (en) | 2000-09-05 | 2002-03-07 | Gang Li | Method for combining data with maps |
FR2813986B1 (fr) * | 2000-09-08 | 2002-11-29 | Eric Vincenot | Dispositif de sonorisation a guide d'onde acoustique |
JP2002108836A (ja) * | 2000-09-29 | 2002-04-12 | Hitachi Ltd | プロセッサシステム |
US6785675B1 (en) * | 2000-11-13 | 2004-08-31 | Convey Development, Inc. | Aggregation of resource requests from multiple individual requestors |
US6636854B2 (en) * | 2000-12-07 | 2003-10-21 | International Business Machines Corporation | Method and system for augmenting web-indexed search engine results with peer-to-peer search results |
US6868414B2 (en) * | 2001-01-03 | 2005-03-15 | International Business Machines Corporation | Technique for serializing data structure updates and retrievals without requiring searchers to use locks |
US6728736B2 (en) * | 2001-03-14 | 2004-04-27 | Storage Technology Corporation | System and method for synchronizing a data copy using an accumulation remote copy trio |
US6691124B2 (en) * | 2001-04-04 | 2004-02-10 | Cypress Semiconductor Corp. | Compact data structures for pipelined message forwarding lookups |
GB2374951B (en) * | 2001-04-24 | 2005-06-15 | Discreet Logic Inc | Asynchronous database updates |
US7171415B2 (en) * | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US20030182447A1 (en) * | 2001-05-31 | 2003-09-25 | Schilling Frank T. | Generic top-level domain re-routing system |
US6744652B2 (en) * | 2001-08-22 | 2004-06-01 | Netlogic Microsystems, Inc. | Concurrent searching of different tables within a content addressable memory |
JP4420324B2 (ja) | 2001-11-01 | 2010-02-24 | ベリサイン・インコーポレイテッド | 高速非並行制御されたデータベース |
US20030208511A1 (en) * | 2002-05-02 | 2003-11-06 | Earl Leroy D. | Database replication system |
US7310686B2 (en) | 2002-10-27 | 2007-12-18 | Paxfire, Inc. | Apparatus and method for transparent selection of an Internet server based on geographic location of a user |
US20050027882A1 (en) | 2003-05-05 | 2005-02-03 | Sullivan Alan T. | Systems and methods for direction of communication traffic |
US20050105513A1 (en) | 2002-10-27 | 2005-05-19 | Alan Sullivan | Systems and methods for direction of communication traffic |
US7761570B1 (en) | 2003-06-26 | 2010-07-20 | Nominum, Inc. | Extensible domain name service |
US7769826B2 (en) | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
US7761678B1 (en) | 2004-09-29 | 2010-07-20 | Verisign, Inc. | Method and apparatus for an improved file repository |
US7685270B1 (en) | 2005-03-31 | 2010-03-23 | Amazon Technologies, Inc. | Method and apparatus for measuring latency in web services |
NZ564395A (en) | 2005-05-24 | 2011-04-29 | Paxfire Inc | Enhanced features for direction of communication traffic |
US7546368B2 (en) | 2005-06-01 | 2009-06-09 | Neustar, Inc. | Systems and methods for isolating local performance variation in website monitoring |
US7477575B2 (en) | 2005-09-23 | 2009-01-13 | Verisign, Inc. | Redundant timer system and method |
CN101371246A (zh) | 2006-01-20 | 2009-02-18 | 派克斯费尔有限公司 | 用于辨识并控制通信业务的系统和方法 |
US8606926B2 (en) | 2006-06-14 | 2013-12-10 | Opendns, Inc. | Recursive DNS nameserver |
US8713188B2 (en) | 2007-12-13 | 2014-04-29 | Opendns, Inc. | Per-request control of DNS behavior |
WO2008021512A2 (en) | 2006-08-17 | 2008-02-21 | Neustar, Inc. | System and method for handling jargon in communication systems |
EP2054830A2 (en) | 2006-08-17 | 2009-05-06 | Neustar, Inc. | System and method for managing domain policy for interconnected communication networks |
US8234379B2 (en) | 2006-09-14 | 2012-07-31 | Afilias Limited | System and method for facilitating distribution of limited resources |
US20100030897A1 (en) | 2006-12-20 | 2010-02-04 | Rob Stradling | Method and System for Installing a Root Certificate on a Computer With a Root Update Mechanism |
US7694016B2 (en) | 2007-02-07 | 2010-04-06 | Nominum, Inc. | Composite DNS zones |
EP2201457A2 (en) | 2007-10-18 | 2010-06-30 | Neustar, Inc. | System and method for sharing web performance monitoring data |
US20090235359A1 (en) | 2008-03-12 | 2009-09-17 | Comodo Ca Limited | Method and system for performing security and vulnerability scans on devices behind a network security device |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US7991737B2 (en) * | 2008-09-04 | 2011-08-02 | Microsoft Corporation | Synchronization of records of a table using bookmarks |
US20090282028A1 (en) | 2008-09-23 | 2009-11-12 | Michael Subotin | User Interface and Method for Web Browsing based on Topical Relatedness of Domain Names |
US9172713B2 (en) | 2008-09-24 | 2015-10-27 | Neustar, Inc. | Secure domain name system |
US7930393B1 (en) | 2008-09-29 | 2011-04-19 | Amazon Technologies, Inc. | Monitoring domain allocation performance |
US9292612B2 (en) | 2009-04-22 | 2016-03-22 | Verisign, Inc. | Internet profile service |
US8521908B2 (en) | 2009-04-07 | 2013-08-27 | Verisign, Inc. | Existent domain name DNS traffic capture and analysis |
US8676989B2 (en) | 2009-04-23 | 2014-03-18 | Opendns, Inc. | Robust domain name resolution |
US8527945B2 (en) | 2009-05-07 | 2013-09-03 | Verisign, Inc. | Method and system for integrating multiple scripts |
US8510263B2 (en) | 2009-06-15 | 2013-08-13 | Verisign, Inc. | Method and system for auditing transaction data from database operations |
US8977705B2 (en) | 2009-07-27 | 2015-03-10 | Verisign, Inc. | Method and system for data logging and analysis |
US8380870B2 (en) | 2009-08-05 | 2013-02-19 | Verisign, Inc. | Method and system for filtering of network traffic |
US20110035497A1 (en) | 2009-08-05 | 2011-02-10 | Dynamic Network Services, Inc. | System and method for providing global server load balancing |
US8327019B2 (en) | 2009-08-18 | 2012-12-04 | Verisign, Inc. | Method and system for intelligent routing of requests over EPP |
US8175098B2 (en) | 2009-08-27 | 2012-05-08 | Verisign, Inc. | Method for optimizing a route cache |
US8982882B2 (en) | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
US9047589B2 (en) | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US9286369B2 (en) | 2009-12-30 | 2016-03-15 | Symantec Corporation | Data replication across enterprise boundaries |
-
2002
- 2002-11-01 JP JP2003540792A patent/JP4420324B2/ja not_active Expired - Fee Related
- 2002-11-01 BR BR0213807-7A patent/BR0213807A/pt not_active Application Discontinuation
- 2002-11-01 EP EP02802516A patent/EP1449049A4/en not_active Withdrawn
- 2002-11-01 JP JP2003540847A patent/JP4399552B2/ja not_active Expired - Fee Related
- 2002-11-01 EP EP12175016.0A patent/EP2562661A3/en not_active Withdrawn
- 2002-11-01 AU AU2002356884A patent/AU2002356884B2/en not_active Ceased
- 2002-11-01 CN CNB028265114A patent/CN100557595C/zh not_active Expired - Fee Related
- 2002-11-01 MX MXPA04004202A patent/MXPA04004202A/es active IP Right Grant
- 2002-11-01 IL IL16171202A patent/IL161712A0/xx active IP Right Grant
- 2002-11-01 US US10/285,575 patent/US6681228B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP12153543A patent/EP2503476A1/en not_active Withdrawn
- 2002-11-01 US US10/285,547 patent/US7047258B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP02786632A patent/EP1461723A4/en not_active Ceased
- 2002-11-01 CN CN028266196A patent/CN1610877B/zh not_active Expired - Fee Related
- 2002-11-01 AU AU2002350104A patent/AU2002350104B2/en not_active Expired
- 2002-11-01 EP EP02802514A patent/EP1451728A4/en not_active Ceased
- 2002-11-01 KR KR1020047006695A patent/KR100970122B1/ko not_active IP Right Cessation
- 2002-11-01 US US10/285,544 patent/US20030084038A1/en not_active Abandoned
- 2002-11-01 EA EA200400614A patent/EA006223B1/ru not_active IP Right Cessation
- 2002-11-01 BR BR0213863-8A patent/BR0213863A/pt not_active Application Discontinuation
- 2002-11-01 EA EA200400612A patent/EA006045B1/ru not_active IP Right Cessation
- 2002-11-01 KR KR1020047006658A patent/KR100977161B1/ko not_active IP Right Cessation
- 2002-11-01 JP JP2003540846A patent/JP4897196B2/ja not_active Expired - Fee Related
- 2002-11-01 MX MXPA04004203A patent/MXPA04004203A/es active IP Right Grant
- 2002-11-01 NZ NZ532773A patent/NZ532773A/en not_active IP Right Cessation
- 2002-11-01 EA EA200400618A patent/EA005646B1/ru not_active IP Right Cessation
- 2002-11-01 BR BR0213862-0A patent/BR0213862A/pt not_active Application Discontinuation
- 2002-11-01 NZ NZ532772A patent/NZ532772A/en not_active IP Right Cessation
- 2002-11-01 WO PCT/US2002/035081 patent/WO2003038653A1/en active IP Right Grant
- 2002-11-01 JP JP2003540874A patent/JP4420325B2/ja not_active Expired - Fee Related
- 2002-11-01 BR BR0213864-6A patent/BR0213864A/pt not_active Application Discontinuation
- 2002-11-01 NZ NZ532771A patent/NZ532771A/en not_active IP Right Cessation
- 2002-11-01 EP EP02802515.3A patent/EP1451714B1/en not_active Expired - Lifetime
- 2002-11-01 EP EP02786633.4A patent/EP1449062B1/en not_active Expired - Lifetime
- 2002-11-01 IL IL16172302A patent/IL161723A0/xx unknown
- 2002-11-01 KR KR1020047006649A patent/KR100953137B1/ko not_active IP Right Cessation
- 2002-11-01 US US10/285,549 patent/US7167877B2/en not_active Expired - Lifetime
- 2002-11-01 IL IL16172202A patent/IL161722A0/xx unknown
- 2002-11-01 WO PCT/US2002/035082 patent/WO2003038596A1/en active IP Right Grant
- 2002-11-01 WO PCT/US2002/035084 patent/WO2003038565A2/en not_active Application Discontinuation
- 2002-11-01 US US10/285,618 patent/US7203682B2/en not_active Expired - Lifetime
- 2002-11-01 CN CN02826620XA patent/CN1610902B/zh not_active Expired - Fee Related
- 2002-11-01 EP EP12153314A patent/EP2450812A1/en not_active Withdrawn
- 2002-11-01 CA CA2466117A patent/CA2466117C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002350106A patent/AU2002350106B2/en not_active Expired
- 2002-11-01 MX MXPA04004169A patent/MXPA04004169A/es active IP Right Grant
- 2002-11-01 IL IL16172102A patent/IL161721A0/xx unknown
- 2002-11-01 NZ NZ533166A patent/NZ533166A/en not_active IP Right Cessation
- 2002-11-01 CA CA2472014A patent/CA2472014C/en not_active Expired - Fee Related
- 2002-11-01 KR KR1020047006689A patent/KR100941350B1/ko not_active IP Right Cessation
- 2002-11-01 MX MXPA04004201A patent/MXPA04004201A/es active IP Right Grant
- 2002-11-01 EA EA200400613A patent/EA006038B1/ru not_active IP Right Cessation
- 2002-11-01 WO PCT/US2002/035083 patent/WO2003038654A1/en active IP Right Grant
- 2002-11-01 CN CN028265092A patent/CN1610906B/zh not_active Expired - Fee Related
- 2002-11-01 WO PCT/US2002/035080 patent/WO2003038683A1/en active IP Right Grant
- 2002-11-01 EP EP11181796.1A patent/EP2477126A3/en not_active Withdrawn
- 2002-11-01 EP EP12153315A patent/EP2495671A1/en not_active Withdrawn
- 2002-11-01 CA CA2466110A patent/CA2466110C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002356886A patent/AU2002356886A1/en not_active Abandoned
- 2002-11-01 CA CA2466107A patent/CA2466107C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002356885A patent/AU2002356885B2/en not_active Expired
-
2003
- 2003-10-01 US US10/674,820 patent/US8171019B2/en active Active
-
2004
- 2004-04-29 IL IL161712A patent/IL161712A/en not_active IP Right Cessation
- 2004-05-02 IL IL161722A patent/IL161722A/en unknown
- 2004-05-02 IL IL161721A patent/IL161721A/en active IP Right Grant
- 2004-05-02 IL IL161723A patent/IL161723A/en active IP Right Grant
- 2004-05-11 ZA ZA2004/03597A patent/ZA200403597B/en unknown
- 2004-05-31 ZA ZA2004/04268A patent/ZA200404268B/en unknown
- 2004-05-31 ZA ZA2004/04266A patent/ZA200404266B/en unknown
- 2004-05-31 ZA ZA2004/04267A patent/ZA200404267B/en unknown
- 2004-06-01 NO NO20042261A patent/NO20042261L/no not_active Application Discontinuation
- 2004-06-01 NO NO20042260A patent/NO331574B1/no not_active IP Right Cessation
- 2004-06-01 NO NO20042258A patent/NO20042258L/no not_active Application Discontinuation
- 2004-06-01 NO NO20042259A patent/NO20042259L/no not_active Application Discontinuation
-
2005
- 2005-08-25 HK HK05107484.3A patent/HK1075308A1/xx not_active IP Right Cessation
-
2006
- 2006-12-19 US US11/641,054 patent/US20070100808A1/en not_active Abandoned
-
2008
- 2008-12-10 US US12/331,498 patent/US8630988B2/en not_active Expired - Lifetime
-
2011
- 2011-11-09 US US13/292,833 patent/US8682856B2/en not_active Expired - Lifetime
-
2013
- 2013-12-20 US US14/136,831 patent/US20140108452A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2623882C1 (ru) * | 2016-02-18 | 2017-06-29 | Акционерное общество "Лаборатория Касперского" | Способ поиска входной строки в дереве поиска с индексацией узлов дерева поиска |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EA005646B1 (ru) | База данных с высокоскоростным не параллельным управлением | |
AU2002350106A1 (en) | High speed non-concurrency controlled database | |
AU2002356884A1 (en) | Transactional memory manager | |
US8261020B2 (en) | Cache enumeration and indexing | |
CN106716412B (zh) | 用于支持分布式计算环境中的零拷贝二进制基数树的系统和方法 | |
JPH10222407A (ja) | プロセスオーバーヘッド及びデータベースサーバからの冗長な検索を減少するように同じプロセスにおける多数のデータベーストランザクションを処理する方法 | |
US20060143210A1 (en) | Enabling an application to interact with an LDAP directory as though the LDAP directory were a database object |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s) |
Designated state(s): AM AZ BY KZ KG MD TJ TM |
|
MM4A | Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s) |
Designated state(s): RU |
|
NF4A | Restoration of lapsed right to a eurasian patent |
Designated state(s): RU |
|
MM4A | Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s) |
Designated state(s): RU |