МАСШТАБИРУЕМАЯ КЛАСТЕРНАЯ БАЗА ДАННЫХ

1. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
прием энного числа запросов от одного или нескольких узлов системы баз данных;
объединение энного числа запросов до инициирования операций обслуживания энного числа запросов;
сокращение числа операций обслуживания энного числа запросов; и
выполнение сокращенного числа операций обслуживания энного числа запросов.
2. Способ по п.1, в котором система баз данных содержит поисковый механизм.
3. Способ по п.2, в котором поисковый механизм содержит децентрализованную роевую систему, в которой используется один или несколько роевых алгоритмов.
4. Способ по п.1, в котором:
энное число запросов включает энное число запросов суммирования для суммирования со значением в строке, хранящейся в системе баз данных;
при объединении энного числа запросов до инициирования операций обслуживания энного числа запросов объединяется энное число запросов суммирования со значением в строке, хранящейся в системе баз данных; и
при выполнении сокращенного числа операций выполняется операция суммирования со значением в строке, хранящейся в системе баз данных, для энного числа запросов суммирования за менее чем N транзакций.
5. Способ управлении системой баз данных с использованием одного или нескольких комбинаторов, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами и содержащих комбинатор множеств, включающий:
прием множества значений, соответствующих энному числу процессов, от одного или нескольких узлов системы баз данных;
объединение энного числа процессов до инициирования операций над множествами, чтобы задать значения в таблице, хранящейся в запоминающем устройстве системы баз данных;
сокращение числа операций над множествами, чтобы задать значения энного числа процессов; и
выполнение сокращенного числа операций над множествами.
6. Способ подсчета элементов в системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
определение кратного М числа элементов;
подсчет однозначно определяемых элементов из кратного М числа элементов;
определение подсчета регистрации для однозначно определяемых элементов из кратного М числа элементов; и
сохранение подсчета регистрации для однозначно определяемых элементов.
7. Способ по п.6, в котором при определении подсчета регистрации:
каждый из однозначно определяемых элементов из кратного М числа элементов разбивается на множество из энного числа частей, каждая из которых содержит подмножество однозначно определяемых элементов из кратного М числа элементов, при этом каждое подмножество однозначно определяемых элементов выражено в виде количества битов;
определяется младший незаданный бит в каждом энном числе частей для каждого подмножества кратного М числа элементов;
задается значение младшего бита в виде N промежуточных величин для каждого подмножества однозначно определяемых элементов из множества N частей;
усредняются значения младших незаданных битов из N промежуточных величин для каждого множества N частей; и
усредненное значение применяется в качестве значения числа регистрации, возведенного в квадрат.
8. Способ по п.7, в котором в памяти базы данных сохраняются N промежуточных величин, и выполняется завершающая стадия применения усредненного значения в качестве значения числа регистрации, возведенного в квадрат.
9. Способ по п.6, в котором при определении подсчета регистрации определяется приблизительный подсчет множества однозначно определяемых элементов с точностью приблизительно до плюс или минус 50%.
10. Способ по п.6, в котором при определении подсчета регистрации:
каждый из однозначно определяемых элементов из кратного М числа элементов разбивается на множество из энного числа частей, каждая из которых содержит подмножество однозначно определяемых элементов из кратного М числа элементов, при этом каждое подмножество однозначно определяемых элементов выражено в виде количества битов;
определяется младший незаданный бит в каждом энном числе частей для каждого подмножества кратного М числа элементов;
выбирается бит, который задается для N промежуточных величин с использованием произвольного экспоненциального фактора затухания;
усредняются значения младших незаданных битов из N промежуточных величин для каждого множества N частей; и
усредненное значение применяется в качестве значения числа регистрации, выраженных в виде произвольного основания, согласующегося с произвольным экспоненциальным фактором затухания.
11. Способ по п.6, в котором для N промежуточных величин старшие биты задаются с меньшей вероятностью, чем младшие биты.
12. Способ по п.6, в котором каждая из N частей из множества N частей содержит 32 бита, а общий объем, необходимый для хранения подсчета регистрации, составляет 128 битов.
13. Способ по п.6, в котором кратное М число элементов содержит URL входящих ссылок на веб-сайт.
14. Способ по п.6, в котором в кратное М число элементов входят получатели сообщений электронной почты с заданной подписью, используемой для обнаружения передаваемого по электронной почте спама.
15. Способ по п.6, в котором в кратное М число элементов входят IP-сети класса С отправителей сообщений электронной почты с заданной подписью, используемой для обнаружения передаваемого по электронной почте спама сетевыми агентами-роботами.
16. Способ по п.6, в котором в кратное М число элементов входят географические местонахождения веб-страниц с привязкой к веб-странице.
17. Способ по п.6, в котором кратное М число элементов входят IP-подсети Интернет-серверов, содержащие веб-страницы с привязкой к веб-странице.
18. Способ использования одного или нескольких комбинаторов в поисковом механизме, в который входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами и содержащих один или несколько комбинаторов, включающий:
прием запроса на поиск;
поиск в поисковом механизме в ответ на принятый запрос на поиск, исходя из одного или нескольких предварительно заданных критериев, связанных с одним или несколькими критериями поиска из запроса на поиск, при этом каждый из предварительно заданных критериев связан с одним или несколькими комбинаторами; и
объединение одного или несколько предварительно заданных критериев, чтобы генерировать результат поиска.
19. Способ по п.18, в котором один или несколько предварительно заданных критериев, связанных с одним или несколькими критериями поиска, представляют собой подмножество из группы, в которой:
веб-сайты ранжированы по показателю, основанному на критерии качества веб-сайтов, который согласуется с запросом на поиск;
веб-сайты ранжированы по показателю, основанному на дате;
веб-сайты ранжированы по показателю, основанному на последних по времени веб-сайтах, соответствующих одному или нескольким критериям из запроса на поиск; и
веб-сайты ранжированы по показателю, основанному на значимости.
20. Способ по п.18, в котором при осуществлении поиска в поисковом механизме в ответ на принятый запрос на поиск идентифицируются веб-сайты по одному или нескольким показателям, содержащим данные в сжатой форме.
21. Способ по п.18, в котором при осуществлении поиска в поисковом механизме в ответ на принятый запрос на поиск идентифицируются веб-сайты по одному или нескольким показателям, содержащим данные в сжатой форме, с использованием таблицы схем.
22. Способ по п.18, в котором при осуществлении поиска в поисковом механизме в ответ на принятый запрос на поиск идентифицируются веб-сайты по одному или нескольким показателям, содержащим данные в сжатой форме, с использованием таблицы числовых значений.
23. Способ по п.18, в котором один или несколько предварительно заданных критериев содержат комбинатор показателей, связанных с каждым из критериев, который сконфигурирован на объединение первого показателя, связанного с первым критерием, и одного или нескольких последующих показателей, связанных с соответствующими критериями.
24. Способ по п.23, в котором комбинатор показателей, связанных с каждым из соответствующих критериев, содержит множество послойных комбинаторов, сконфигурированных на вызов данных из множества местонахождений в поисковом механизме.
25. Способ по п.24, в котором множества местонахождений в поисковом механизме включают одно или несколько средств типа демона для поискового механизма.
26. Способ по п.18, в котором один или несколько комбинаторов включают заголовок списка полноразмерных сжатых данных плюс хвост списка данных, которые представляют собой подмножество битов полноразмерных сжатых данных.
27. Способ по п.26, в котором данные заголовка списка содержат 32-байта данных в сжатой форме, а данные хвоста списка представляют собой подмножество из 4 байтов данных заголовка списка.
28. Способ ускорения операций чтения дисков и записи на диски в системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, при этом данные в базе данных разбиты на один или несколько сегментов, и по меньшей мере два дубликата каждого сегмента данных хранятся в различных запоминающих устройствах одного или нескольких узлов, включающий:
определение подмножества запоминающих устройств, которые будут выделены для записи, при этом сохраняется выделенным для чтения по меньшей мере один дубликат каждого сегмента; и
выделение для чтения по меньшей мере значительной части остальных запоминающих устройств.
29. Способ по п.28, дополнительно включающий:
генерирование схемы отображения, в которой определено, какие из одного или нескольких сегментов одного или нескольких узлов доступны для чтения, и какие из одного или нескольких сегментов одного или нескольких узлов доступны для записи;
распределение схемы отображения одному или нескольким узлам; и
локальное использование схемы отображения в пределах каждого узла, чтобы сообщать каждому сегменту, следует ли ему выполнять операцию чтения или записи.
30. Способ по п.29, в котором по истечении заданного периода времени генерируется заменяющая схема отображения, которая распределяется одному или нескольким узлам.
31. Способ по п.30, включающий синхронизирование одного или нескольких узлов посредством соответствующих часов и применение заменяющей схемы отображения, когда показания соответствующих часов одного или нескольких узлов достигают вторичного граничного значения N.
32. Способ по п.28, в котором при выделении по меньшей мере одного сегмента для записи сегменты для записи выбираются, исходя из времени, истекшего после последнего события записи в соответствующий сегмент.
33. Способ по п.28, в котором при выделении по меньшей мере одного сегмента для записи:
определяется цикл, начиная с одного или нескольких узлов, запись в которых была сделана наиболее давно, и, заканчивая одним или несколькими узлами, запись в которых была сделана последней по времени;
определяется, каким сегментам каждого одного или нескольких узлов из цикла требуются операции чтения; и,
если ни одному из сегментов соответствующего одного или нескольких узлов не требуются операции чтения, выделяется узел для выполнения множества операций записи.
34. Способ по п.28, в котором при выделении по меньшей мере одного сегмента для записи:
формируется множество зон из одного или нескольких сегментов; и
поочередно выполняются операции только записи в каждой из множество зон, при этом по меньшей мере одна из множества зон, в которой содержится один дубликат по меньшей мере из двух дубликатов данных, выделяется для операций только чтения.
35. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
передачу от первого из множества узлов одной или нескольких задач второму из множества узлов, при этом ни первый узел, ни второй узел не является главным узлом; и
выполнение вторым узлом одной или нескольких задач.
36. Способ по п.35, включающий формирование из одного или нескольких узлов по меньшей мере двух кластеров.
37. Способ по п.36, в котором при формировании по меньшей мере двух кластеров осуществляется виртуальное структурирование одного или нескольких узлов.
38. Способ по п.36, в котором по меньшей мере два кластера имеют различные географические местоположения.
39. Способ по п.36, в котором по меньшей мере два кластера имеют одинаковое географическое местоположение.
40. Способ по п.35, в котором для связи используют локальную вычислительную сеть.
41. Способ по п.35, в котором для связи используют глобальную вычислительную сеть.
42. Способ по п.35, в котором для связи используют беспроводную связь.
43. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
поддержание связи между подмножеством одного или нескольких узлов с целью принятия коллективных решений в системе баз данных без указаний от главного узла; и
выполнение одного или нескольких действий в ответ на решения подмножества из одного или нескольких узлов.
44. Способ по п.43, в котором поддержание связи между подмножеством одного или нескольких узлов включает прием команд записи в каждом узле и ответ на запросы чтения по мере их приема.
45. Способ по п.43, в котором поддержание связи между подмножеством одного или нескольких узлов включает передачу между ними сообщения о состоянии, содержащим сведения о подмножестве из группы, включающей число файлов, типы файлов, доступность приема новых файлов и перечень неисправностей.
46. Способ по п.43, в котором поддержание связи между подмножеством одного или нескольких узлов включает передачу данных схемы отображения, идентифицирующих местонахождение строк в соответствующих узлах.
47. Способ по п.46, в котором данные схемы передаются после того, как узлу становится известно от других из подмножества узлов местонахождение сегментов в каждом узле.
48. Способ по п.43, в котором к подмножеству узлов дополнительно присоединяется новый узел, который сообщает о доступности приема файлов и задач от других из подмножества узлов.
49. Способ по п.48, в котором новый узел сообщает другим узлам о нулевой конфигурации в качестве протокола широковещательной адресации с указанием того, что она является новой для подмножества узлов, при этом нулевая конфигурация не является конфигурационным файлом.
50. Способ управления системой баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
дублирование данных в двух или более различных сегментах, которые содержат запоминающие компоненты в соответствующих узлах, при этом в одном и том же узле из одного или нескольких узлов не хранятся два дубликата одного и того же сегмента; и
передачу другим из одного или нескольких узлов служебной информации о дубликате, хранящемся в соответствующем узле.
51. Способ по п.50, в котором при дублировании данных записываются копии данных в строке таблицы, находящейся в одном из узлов.
52. Способ по п.51, включающий распределение одного или нескольких узлов по множеству физических групп, в каждую из которых входит подмножество из одного или нескольких узлов, при этом в одной физической группе хранится один дубликат данных.
53. Способ по п.51, включающий распределение одного или нескольких узлов по множеству логических групп, в каждую из которых входит подмножество из одного или нескольких узлов, при этом в одной логической группе хранится один дубликат данных.
54. Способ по п.52, включающий распределение множества физических групп по меньшей мере по двум зонам, в каждую из которых входит подмножество физических групп, при этом в одной по меньшей мере из двух зон хранится один дубликат данных.
55. Способ по п.50, включающий дублирование данных по меньшей мере в трех различных сегментах, расположенных в непосредственной близости друг от друга.
56. Способ по п.50, дополнительно включающий:
обнаружение ошибки в отказавшем узле, в сегменте которого содержится дубликат данных;
передачу служебной информации доступным узлам, в сегментах которых содержится другой дубликат данных по сравнению с отказавшим узлом; и
обход отказавшего узла.
57. Способ по п.56, дополнительно включающий активизирование демона для устранения неисправностей, который осуществляет диагностику неисправности в отказавшем узле и определяет операцию для исправления отказавшего узла.
58. Способ по п.57, в котором демон для устранения неисправностей определяет, следует ли дублировать данные в другом доступном узле или заменить данные в отказавшем узле.
59. Способ по п.50, дополнительно включающий:
отображение данных по меньшей мере в трех различных сегментах с использованием хеш-функции, которая генерирует множество идентификаторов, отображаемых в таблице в каждом из одного или нескольких узлов; и
локальное ведение и обновление таблицы в каждом узле.
60. Способ по п.59, в котором идентификатор включает подмножество идентификаторов из группы, включающей пары ключ - значение, ключи строки, код местонахождения, имя сегмента и согласованные хеш-слоты.
61. Способ по п.59, в котором хеш-функция преобразует ключ произвольного размера в двоичные хешированные выходные данные фиксированного размера.
62. Способ по п.50, в котором один или несколько узлов содержат множество сегментов переменного размера.
63. Способ по п.62, в котором во множестве сегментов переменного размера содержится по меньшей мере подмножество вложенных сегментов.
64. Способ определения местонахождения строки в системе баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
хеширование ключа строки;
определение префикса хешированного ключа строки;
идентифицирование списка сегментов, содержащих строку, исходя из префикса;
определение, какие из одного или нескольких узлов сообщили о том, что в них хранятся сегменты, идентифицированные в списке сегментов; и
определение по меньшей мере одного сегмента, содержащего дубликат строки.
65. Способ формирования данных в системе баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
идентифицирование данных для сохранения в одной или нескольких таблицах в сегменте, который отображает распределение памяти с разбиением в одном или нескольких узлах;
присваивание каждым из идентифицированных данных идентификатора и одного иерархического уровня хранения из множества иерархических уровней; и
отображение в виде индекса и сохранение каждых из данных в соответствии с индексом и присвоенным иерархическим уровнем.
66. Способ по п.65, в котором множество иерархических уровней включает:
первый уровень, отображающий самые старые данные в одной или нескольких таблицах в сегменте;
второй уровень, отображающий более новые данные в одной или нескольких таблицах в сегменте; и
третий уровень, отображающий последние по времени данные в одной или нескольких таблицах в сегменте.
67. Способ по п.65, в котором при сохранении каждых данных осуществляется запись данных в строке таблицы в сегменте одного или нескольких узлов посредством демона для записи, и регистрируется операция записи в журнале транзакций узла.
68. Способ по п.67, в котором демон для записи задерживает операцию записи в соответствующий сегмент, чтобы накопить дополнительные операции записи, предназначенные для того же соответствующего сегмента.
69. Способ по п.67, выполняемый с помощью компьютера и в котором от демона для записи дополнительно принимаются операции записи, а посредством демона сегмента объединяются задачи записи в сегмент в течение заданного периода времени.
70. Способ по п.69, в котором заданный период времени определяется периодом времени для накопления демоном сегмента операций записи, соответствующих заданному размеру файла.
71. Способ по п.69, в котором демон сегмента записывает данные в накопленные операции записи на третий иерархический уровень; объединяет данные, сохраненные как данные третьего иерархического уровня, с данными второго иерархического уровня по истечении первого заданного периода времени; и объединяет данные второго иерархического уровня с данными первого иерархического уровня по истечении второго заданного периода времени.
72. Способ по п.71, дополнительно включающий:
указание в одной или нескольких таблицах сегмента предельного значения объединения, которое является признаком одного из множества иерархических уровней; и
ограничение объединения файлов в соответствии с указанным предельным значением объединения путем отказа от объединения файлов данных на следующем уровне, если достигнуто предельное значение объединения.
73. Способ по п.72, дополнительно включающий:
сохранение фильтра Блума для ключей строк каждого иерархического уровня; и
использование фильтра Блума для определения, должен ли заданный ключ строки находиться на заданном иерархическом уровне хранения.
74. Способ по п.69, в котором при объединении задач записи в сегмент дополнительно дозируются объединенные задачи записи, чтобы предотвратить использование при записи в запоминающее устройство преимущественно всех доступных читающих/записывающих способностей запоминающего устройства.
75. Способ управления системой баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
передачу запроса на чтение данных от первого узла по меньшей мере подмножеству узлов из одного или нескольких узлов;
проверку идентификатора посредством каждого соответствующего узла по меньшей мере из подмножества узлов, чтобы определить, хранятся ли запрошенные данные чтения в соответствующем узле; и
предоставление данных чтения первому узлу, если данные чтения содержатся в соответствующем узле по меньшей мере из подмножества узлов.
76. Способ по п.75, в дополнительно включающий проверку кэш-памяти каждого соответствующего узла по меньшей мере из подмножества узлов до проверки других ячеек запоминающего устройства соответствующего узла.
77. Способ по п.76, дополнительно включающий управление одной или несколькими операциями чтения посредством демона для чтения, связанного с каждым соответствующим узлом по меньшей мере из подмножества узлов.
78. Способ по п.76, в котором кэш-памятью является одно из устройств из группы, включающей ОЗУ, запоминающее устройство сервера, флэш-память на твердотельном накопителе и флэш-память на плате для шины присоединения периферийных устройств.
79. Способ по п.76, в котором кэш-памятью управляет демон кэш-памяти.
80. Способ по п.75, в котором при передаче запроса на чтение данных передается запрос на извлечение данных из строки хешированных ключей в таблице, хранящейся в сегменте соответствующего узла по меньшей мере из подмножества узлов, а при проверке идентификатора каждым соответствующим узлом хешируется ключ строки в качестве идентификатора, чтобы определить, в каком одном или нескольких сегментах одного из подмножества узлов содержатся запрошенные данные.
81. Способ по п.75, в котором данные чтения сохраняются в подмножестве узлов в виде множества дубликатов данных чтения, а в кэш-памяти одного из подмножества узлов сохраняется по меньшей мере один из дубликатов.
82. Способ по п.75, в котором подмножество узлов поддерживает связь друг с другом для определения местонахождения данных чтения.
83. Способ по п.75, в котором данные чтения сохраняются на множестве иерархических уровней, начиная с сохраненных последними по времени данных и заканчивая сохраненными первыми по времени данными, а при передаче запроса на чтение данных указывается иерархический уровень для поиска данных чтения согласно указанному иерархическому уровню в каждом из подмножества узлов.
84. Способ обработки запроса в системе баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
прием запроса от одного из узлов роевой системы баз данных;
хеширование ключа строки, чтобы определить, доступен ли один или несколько сегментов для обслуживания запроса, которые отображают распределение памяти в соответствующем одном или нескольких узлах;
запрос первого из одного или нескольких узлов, содержащего один из одного или нескольких сегментов, доступных для обслуживания запроса;
запрос второго узла, содержащего один из одного или нескольких сегментов, доступных для обслуживания запроса, если первый узел не способен обслужить запрос или в течение заданного периода времени задерживает ответ на запрос обслуживания; и
передачу запроса последующим узлам, содержащим один из одного или нескольких сегментов, доступных для обслуживания запроса, пока запрос не будет обслужен одним или несколькими узлами.
85. Способ по п.84, включающий распределение одного или нескольких узлов по множеству подмножеств узлов.
86. Способ по п.85, в котором первый узел, второй узел и последующие узлы находятся в одной группе узлов.
87. Способ по п.84, дополнительно включающий предложение первому узлу, второму узлу и последующим узлам на одновременное обслуживание принятого запроса, и обслуживание запроса первым ответившим узлом.
88. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
вычисление целевого числа сегментов, доступных для обслуживания запросов, при этом сегмент отображает распределение памяти в одном или нескольких узлах;
определение, следует ли реорганизовать или перераспределить сегменты и размеры сегментов, исходя из вычисленного целевого числа сегментов;
определение одного или нескольких сегментов для обязательного дублирования;
дублирование одного или нескольких сегментов для обязательного дублирования в один или несколько целевых сегментов, доступных для обслуживания запросов; и
определение одного или нескольких узлов или запоминающих устройств, перегруженных ввиду того, что в них содержится больше сегментов, чем вычисленное целевое число сегментов.
89. Способ по п.88, дополнительно включающий:
определение одного или нескольких избыточных сегментов, в которых могут содержаться дополнительные дубликаты данных и устаревшие данные; и
отбрасывание одного или нескольких избыточных сегментов.
90. Способ по п.89, в котором при отбрасывании одного или нескольких избыточных сегментов удаляются дополнительные дубликаты данных и устаревшие данные.
91. Способ по п.88, в котором каждый из одного или нескольких узлов содержит демон для устранения неисправностей для вычисления целевого числа сегментов для каждого соответствующего узла.
92. Способ по п.91, в котором демон для устранения неисправностей сконфигурирован на обслуживание соответствующего узла путем предоставления подмножества услуг из группы, включающей устранение неисправностей из-за отказа главных компьютеров, устранение неисправностей из-за отказа дисков, восстановление поврежденных сегментов, перемещение сегментов из узлов со слишком большим числом сегментов в узлы со слишком малым числом сегментов и введение нового узла в роевую систему баз данных.
93. Способ по п.88, в котором при определении одного или нескольких сегментов для обязательного дублирования определяется число дубликатов данных, которое входит в заданное число дубликатов данных.
94. Способ управления системой баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
определение одного или нескольких файлов данных для удаления;
перемещение одного или нескольких файлов данных для удаления в папку для "мусора";
разделение одного или нескольких более крупных файлов данных для удаления на файлы меньшего размера посредством демона для "мусора"; и
удаление файлов меньшего размера посредством локальной операционной системы.
95. Способ управления системой баз данных, осуществляемый в роевой системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, и включающий:
разделение одной или нескольких задач обслуживания по меньшей мере двух сегментов различных узлов в одном или нескольких узлах на два или более фрагментов; и
осуществление параллельного обслуживания по меньшей мере двух сегментов различных узлов.
96. Способ по п.95, в котором обслуживание по меньшей мере двух сегментов включает операции чтения и операции записи.
97. Способ по п.95, в котором обслуживание по меньшей мере двух сегментов включает операцию чтения всех строк в таблице в порядке хеширования.
98. Способ по п.95, дополнительно включающий генерирование ответа путем ввода данных в систему баз данных или возврата данных в главный процесс.
99. Способ по п.95, дополнительно включающий использование одного или нескольких комбинаторов для выполнения деления одной или нескольких задач на два или более фрагментов и осуществление параллельного обслуживания по меньшей мере двух сегментов различных узлов.
100. Способ управления системой баз данных с использованием одного или нескольких комбинаторов, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами и содержащих комбинатор ранжирования, включающий:
прием одного или нескольких критериев ранжирования;
ранжирование множества элементов, исходя из одного или нескольких критериев ранжирования, при этом число элементов из множества ограничено заданным числом N; и
замена ранжирования с целью обновления множества элементов, исходя из заданного периода времени.
101. Способ по п.100, в котором при ранжировании множества элементов используется комбинатор подсчета регистрации для подсчета и обновления однозначно определяемых элементов при ранжировании множества элементов.
102. Способ по п.100, в котором каждый элемент из множества элементов ранжируется согласно имени скалярной переменной и номеру ранга.
103. Способ по п.102, в котором каждый элемент из множества элементов дополнительно ранжируется согласно дополнительной структуре данных, используемой для регистрации дополнительной информации об имени скалярной переменной.
104. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
разбивку на множество строк и присваивание каждому узлу из подмножества одного или нескольких узлов однозначно определяемого подмножества из множества строк, которое включает недублированные строки; и
обеспечение локального доступа к подмножеству сдублированных данных из однозначно определяемого подмножества из множества строк без поддержания связи с другими узлами из подмножества одного или нескольких узлов.
105. Способ сжатия данных в системе баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
генерирование первой версии первой таблицы сжатия имен и типов столбцов;
генерирование второй версии второй таблицы сжатия имен и типов столбцов;
прием данных для сжатия и анализ принятых данных, исходя из первой таблицы сжатия и второй таблицы сжатия;
выбор версии таблицы сжатия, которая обеспечивает наименьший размер данных в сжатой форме на выходе; и
сжатие данных согласно выбранной таблице сжатия.
106. Способ по п.105, дополнительно включающий генерирование множества версий таблицы сжатия с вариациями имен и типов столбцов.
107. Способ по п.105, в котором имена столбцов включают по меньшей мере одно имя столбца с указанием номера из нумерованной таблицы коротких строк, сконфигурированной на дополнительное сжатие коротких строк в данные и содержащей группу данных коротких строк, которым присвоено однозначно определяемое числовое значение.
108. Способ по п.105, в котором имена столбцов содержат по меньшей мере одно имя столбца с использованием одного или нескольких структурированных значений столбцов.
109. Способ управления поисковым механизмом, использующим роевую систему баз данных и содержащим один или несколько процессоров и память, в которой хранится одна или несколько программ для выполнения одним или несколькими процессорами, содержащих один или несколько комбинаторов, включающий:
прием энного числа задач обслуживания;
объединение энного числа задач обслуживания до инициирования операций их выполнения;
сокращение числа операций выполнения энного числа задач обслуживания; и
осуществление сокращенного числа операций выполнения энного числа задач обслуживания.
110. Способ по п.109, в котором при приеме энного числа задач обслуживания от пользователя поискового механизма принимается запрос на поиск.
111. Способ по п.109, в котором задачи обслуживания включают ранжирование элементов данных комбинатором ранжирования, который ранжирует множество элементов данных и сохраняет энное число верхних из множества элементов данных.
112. Способ по п.109, в котором задачи обслуживания включают ведение одним или несколькими комбинаторами одного или нескольких журналов регистрации, в которых осуществляется сбор данных числа посещений вебсайтов и формирование итоговой информации о веб-страницах.
113. Способ по п.112, в котором при ведении одним или несколькими комбинаторами одного или нескольких журналов регистрации используется один или несколько комбинаторов присоединения, которые присоединяют строки текста к существующему множеству строк текста.
114. Способ по п.112, в котором при ведении одним или несколькими комбинаторами одного или нескольких журналов регистрации используется один или несколько суммирующих комбинаторов, которые сконфигурированы на подсчет числа элементов и объединение подсчитанного числа с существующими данными.
115. Способ по п.109, в котором задачи обслуживания включают обнаружение передаваемого по электронной почте спама с использованием одного или нескольких комбинаторов спама, которые вычисляют множество подписей, исходя из заголовков и содержания сообщений электронной почты, и выясняют, содержатся ли такие же подписи в большом числе сообщений, передаваемых большому числу адресатов.
116. Способ по п.115, дополнительно включающий использование комбинатора подсчета регистрации, который подсчитывает число адресатов из большого числа адресатов, получивших сообщение с одинаковой подписью, и определяет, что сообщение с этой подписью является спамом, если достигнуто заданное большое подсчитанное число.
117. Способ по п.109, в котором энное число задач обслуживания включает поиск URL на веб-странице одним или несколькими комбинаторами подсчета регистрации, которые подсчитывают однозначно определяемые элементы из множества категорий элементов.
118. Способ по п.117, в котором множество категорий элементов включает подмножество из группы, включающей уровни географических местонахождений, географические IP-адреса, IP-сети класса С со ссылкой на домены, привязки входящих ссылок, рекламные сообщения торговых вебстраниц и фасеты.
119. Способ управления пользовательским интерфейсом в поисковом механизме, осуществляемый в роевой системе баз данных, содержащей поисковый механизм, имеющий один или несколько процессоров и память, в которой хранится одна или несколько программ для выполнения одним или несколькими процессорами, содержащих один или несколько комбинаторов, включающий:
генерирование результата поиска в ответ на прием запроса на поиск; и
формирование результата поиска согласно по меньшей мере двум категориям для отображения веб-браузером по меньшей мере в двух вкладках, в каждой из которых содержится ранжированный список результатов поиска согласно соответствующей категории.
120. Способ по п.119, в котором каждый элемент-результат поиска представлен в в двухстрочном формате, в котором:
на первой строке содержится имя URL страницы, содержащей гиперссылку на URL соответствующей страницы; и
на второй строке содержится по меньшей мере подмножество из группы, включающей название веб-сайта, один или несколько тегов содержимого, один или несколько тегов сайта и необязательный фрагмент.
121. Способ по п.119, в котором один или несколько тегов сайта, отображаемых веб-браузером, содержат по меньшей мере подмножество из группы, включающей ссылки, SEO, RSS, кэш-память, источник, IP-адрес, ранг и ранг узла.
122. Способ по п.121, в котором при использовании тега SEO дополнительно предоставляется информация о сайте, являющемся элементом-результатом поиска, релевантным для системы баз данных путем.
123. Способ по п.121, в котором тег SEO отображает в веб-браузере подмножество из множества категорий SEO, отображаемых в соответствующих вкладках, при этом множество тегов SEO содержат:
обзорную вкладку, отображающую информацию, релевантную для системы баз данных, включая последнюю найденную дату, длину страницы, входящие ссылки, ранг страницы, и IP-адрес;
вкладку входящих ссылок, отображающую все найденные страницы со ссылкой на эту конкретную страницу результирующего сайта, включая текст привязки, исходный IP-адрес, ранг сайтов в базе данных и другие ссылочные страницы;
вкладку исходящих ссылок, отображающую информацию о ссылках, генерированных этой конкретной страницей, на URL или узлы третьих лиц;
вкладку доменов, содержащую информацию о домене; и
вкладку разделов, отображающую информацию о том, как поисковый механизм анализирует информацию о конкретной странице результирующего сайта.
124. Способ просмотра содержимого для отображения веб-браузером, включающий:
генерирование результата поиска в ответ на прием запроса на поиск; и
формирование результата поиска согласно списку избирательных фильтров, содержащему множество тегов категорий для формирования результата поиска.
125. Способ по п.124, в котором каждый выбранный тег категорий содержит подмножество элементов результата поиска, релевантного для соответствующего тега категорий.
126. Способ по п.124, в котором множество тегов категорий содержит подмножество из группы, включающей новости, блоги, RSS, комментарии, звук, видео, торговлю, фотографии, содержимое для взрослых, локальное содержимое и оскорбительное содержимое.
127. Способ реализации запроса на поиск для отображения веб-браузером, включающий прием одного или нескольких критериев поиска и слэш-оператора, выбранного из множества слэш-операторов, и генерирование результата поиска, исходя из одного или нескольких критериев поиска и слэш-оператора.
128. Способ по п.127, в котором при генерировании результата поиска представляется список результатов поиска, в котором содержимое сформировано, исходя из одного или нескольких критериев поиска, которые входят в категорию, определенную слэш-оператором.
129. Способ по п.127, в котором множество слэш-операторов содержит основные операторы.
130. Способ по п.127, в котором множество слэш-операторов содержит операторы содержания.
131. Способ по п.127, в котором множество слэш-операторов содержит операторы фасет.
132. Способ по п.127, в котором множество слэш-операторов содержит URL- операторы.
133. Способ по п.127, в котором множество слэш-операторов содержит операторы списков.
134. Способ по п.127, в котором при генерировании результата поиска используются общие фильтры предварительного пересечения.
135. Способ управления системой баз данных, в которую входит один или несколько узлов, содержащих один или несколько процессоров и память, в которой хранится одна или несколько программ, выполняемых одним или несколькими процессорами, включающий:
прием одной или нескольких задач обслуживания, предусматривающих одну или несколько цепочечных операций;
использование одного или нескольких конечных автоматов для реализации цепочечных операций, работа которых разбивается на N подзадач, каждая из которых образована соответствующим множеством фреймов; и
выполнение одной или нескольких цепочечных операций одним или несколькими конечными автоматами в форме соответствующего множества фреймов.
136. Способ по п.135, в котором соответствующее множество фреймов дополнительно содержит указатель, находящийся в точке, в которой необходимо блокирование, пока не будет получен результат для перехода к следующей подзадаче.