Управление системой баз данных
DATABASE SYSTEM MANAGEMENT

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Данное изобретение относится к управлению системой хранения данных. В частности, изобретение относится к управлению системой хранения данных в памяти.
ОБЩИЕ СВЕДЕНИЯ
Известно несколько систем хранения данных. База данных - это организованная совокупность наборов данных. Наборы данных, как правило, составляются для моделирования аспектов реальности таким образом, который поддерживает процессы запроса информации. Например, база данных может хранить поступившие доходы; эти доходы могут храниться в зависимости от продукта, по которому поступали доходы, в зависимости года, в который они поступили или даже с большей степенью детализации в зависимости от месяца или дня, в которые они поступили. Следовательно, для определенного года, определенного месяца, определенного дня база данных может хранить поступившую прибыль. Разумеется, что в базе данных могут хранится произвольно выбранные наборы данных. Таким образом, база данных может вмещать большое количество наборов данных различной степени детализации. Детализацию часто именуют глубиной набора данных или степенью разбиения.
Для управления наборами данных в базе данных используются так называемые системы управления базами данных, которые представляют собой приложения программного обеспечения, взаимодействующие, с одной стороны, с пользователем или другими приложениями и, с другой стороны, с базой данных и набором данных, находящимися в базе данных. Системы управления базами данных, в общем, предоставляют четыре основных функциональных возможности, а именно: определение, обновление, выборку и администрирование данных. Составление определения данных, таким образом, включает в себя создание, модификацию и удаление определений, устанавливающих организацию набора данных. В вышеприведенном примере доходы могут быть организованны по годам, месяцам, дням и продуктам или продуктам, годам, месяцам и дням. Очевидно, что организация базы данных и набора данных произвольная и может быть организована таким образом, чтобы быстрее найти данные или чтобы наиболее точно смоделировать реальность. Обновление включает в себя вставку, модификацию и удаление актуальных наборов данных в базе данных. Выборка включает в себя предоставление информации в форме, непосредственно пригодной для использования или применяемой для дальнейшей обработки другими приложениями при обращении к базе данных. Администрирование включает в себя регистрацию и мониторинг пользователей, контроль параллельного доступа к данным и восстановление данных, поврежденных в результате какого-то события, как неожиданный сбой в системе.
Как база данных, так и системы управления базами данных соответствуют принципам определенной модели базы данных. Модель базы данных представляет собой вид модели, которая определяет логическую структуру базы данных и является фундаментальным определением, каким образом можно хранить, организовывать наборы данных и манипулировать ими, например, хранить наборы данных в формате таблиц. Термин система хранения данных обобщенно относится к модели базы данных, системе управления базами данных и базе данных. Тем не менее, специалисту в данной области понятно, что термин система хранения данных может также относиться к любой системе для распределенной обработки очень больших наборов данных на любой произвольно выбранной системе вычислительных машин, например, на кластере вычислительных машин. Эти системы баз данных часто используют распределенную, масштабируемую и портативную файловую систему баз данных, совместно используемую несколькими вычислительными машинами.
Использование баз данных, таким образом, действительно очень разнообразно, и в настоящее время их используют в различных областях деятельности. Например, базы данных используются в обеспечении внутренних операций в организациях, чтобы поддержать электронные взаимодействия с покупателями и поставщиками. Также базы данных используются для хранения административной информации и более специализированных данных, таких как разработка данных или экономических моделей. Более того, базы данных могут быть использованы в производстве для оценки выполнимости заказов, финансового отчета (например, отчет о прибылях и убытках) или для управления материальными ресурсами (например, оценка товарно-материальных запасов). Таким образом, базы данных и наборы данных, находящиеся в базе данных, могут быть специально приспособлены, чтобы соответствовать требованиям пользователей базы данных, а также чтобы наилучшим образом смоделировать реальность.
Физически серверы баз данных - это предназначенные для определенной цели вычислительные машины или кластеры вычислительных машин, в которых находятся фактические базы данных и которые запускают только системы управления базами данных и соответствующее программное обеспечение.
Серверы баз данных, как правило, представляют собой многопроцессорную вычислительную машину с достаточно большой оперативной памятью. Для того, чтобы хранить данные в системе хранения данных, обычно используют избыточный массив независимых дисков (RAID). Тем не менее, в последнее время большую популярность приобретают так называемые системы хранения данных в памяти, которые преимущественно основываются на оперативной памяти для хранения наборов данных, находящихся в базе данных. На поиск данных в памяти затрачивается меньше времени, например, когда производится выборка или обновление наборов данных, что обеспечивает более быструю и предсказуемую производительность по сравнению с дисковыми системами хранения данных. Примерами таких баз данных в памяти могут служить HANA система компании SAP, DB2 система компании IBM в версии 10.5 и Exalytics система компании Oracle в версии 12 с.
Тем не менее, как у дисковых систем хранения данных, так и у систем хранения данных в памяти есть недостаток, а именно: чем сложнее, становятся запросы к базе данных и чем больше пользователей одновременно обращаются к базе данных, тем больше ресурсов потребляет система. Эти затраты вычислительных ресурсов появляются в результате необходимости администрирования борьбы за разделяемые ресурсы ЭВМ между запросами к базе данных, а также обычным выполнением запроса. Таким образом, чтобы выбрать запрошенные данные и/или произвести определенные операции с выбранными данными и представить пользователям, запрашивающим данные, и, соответственно, приложениям, с помощью которых запрашиваются данные, полученные результаты. Особенно для очень сложных запросов - для которых необходимо произвести разнообразные операции, - и для большого количества пользователей потребление вычислительных ресурсов может быть очень значительное. Чтобы справиться с такими случаями высокой нагрузки, как правило прибегают к дополнительному оснащению ЭВМ в целях обеспечения функциональности базы данных с нормальными операционными параметрами, например, чтобы запросы к базе данных выполнялись за такой же определенный промежуток времени. Поэтому, когда новую систему хранения данных вводят в эксплуатацию, необходимо спрогнозировать требования к ЭВМ на срок ее службы - до того времени, когда технология будет считаться устаревшей. Все же, не всегда можно легко сделать такой прогноз, так как высокую нагрузку можно только высчитать во время пиковой нагрузки, например, в то время, когда создаются квартальные отчеты. Поэтому, дополнительные ЭВМ необходимы только во время подобной пиковой нагрузки, а в остальное время требуется меньше ЭВМ. Таким образом, оснащение ЭВМ на все время не имеет смысла, особенно если оно не используется. Поставщики систем хранения данных учли такую необходимость, снабжая системы хранения данных большим количеством ЭВМ, чем необходимо. Так, какая-то часть аппаратного оборудования латентна, пока ее не задействуют, а когда ее необходимо задействовать, покупатели могут активировать латентные ресурсы за определенную плату. Дополнительное оснащение ЭВМ, однако, влечет за собой не только высокие расходы, но и увеличивает потребление электроэнергии. Увеличение потребления электроэнергии является нежелательным не только с точки зрения охраны окружающей среды, но также и из-за расходов, связанных с увеличенным потреблением электроэнергии. Помимо этого, необходимость активации латентных частей аппаратного оборудования системы хранения данных сама по себе причиняет появление задержек, так как для перехода латентных частей в состояния полной эксплуатационной пригодности требуется время. Более того, оснащение дополнительным ЭВМ к базе данных обусловливает административные накладные расходы. В любом случае, даже система хранения данных с частично латентным ЭВМ рано или поздно достигнет предела своих физических возможностей.
Поэтому в данной области существует необходимость понижать нагрузку на систему хранения данных, особенно в случаях высокой нагрузки. Следовательно, в случаях большого количества одновременных запросов к базе данных и/или сложных запросов.
Целью данного изобретения является предоставление способа и устройства для управления системой хранения данных в случаях высокой нагрузки. Эта цель достигнута в описании формулы изобретения.
КРАТКОЕ ОПИСАНИЕ
С этой целью предоставляется способ для управления системой хранения данных, при этом способ включает в себя, в первую очередь, анализ множества обращений к базе данных. Например, разные обращения к базе данных можно проанализировать с учетом наборов данных, которые они запрашивают и/или операций, необходимых произвести с наборами данных. Запрашиваемые наборы данных указаны в обращениях к базе данных, соответственно, в семантических ключах изначального кода обращения к базе данных. Семантические ключи, таким образом, указывают на наборы данных, по которым происходит выборка из базы данных и/или на наборы данных, на основе которых производятся операции.
После того, как множество обращений к базе данных проанализировано, в системе хранения данных генерируется объект структуры данных, в котором содержится как минимум один набор данных, указанный множеством обращений к базе данных. Объект структуры данных может включать в себя результаты операций, необходимых произвести над наборами данных, указанных в обращениях к базе данных. Например, если обращение к базе данных указывает, что необходимо вычислить сумму доходов по определенному продукту за квартал, объект структуры данных может уже содержать результаты этой операции как один из своих наборов данных. В связи с этим, объект структуры данных может содержать результаты операций, необходимых произвести с наборами данных, хранящихся в базе данных. Таким образом, что именно должен включать в себя объект структуры данных указано с помощью семантических ключей в обращениях к базе данных относительно операций, обозначенных в обращениях к базе данных. В связи с этим, можно сказать, что наборы данных в объекте структуры данных и наборы данных в базе данных связаны между собой. Также можно сказать, что наборы данных в сгенерированном объекте структуры данных создаются на основе наборов данных в объекте структуры данных. Так, объект структуры данных может принимать форму и структуру наборов данных, хранящихся в базе данных или изменять форму и структуру наборов данных, предназначенных для хранения.
Собирая указанные наборы данных в сгенерированном объекте структуры данных, можно гарантировать, что дальнейшие обращения к базе данных, в которых указаны такие же семантические ключи как в изначально проанализированных обращениях к базе данных, могут быть выполнены или отвечены одним объектом структуры данных без необходимости выполнять каждое отдельное обращение к базе данных, т.е. без необходимости обособленно выбирать наборы данных и обособленно производить операции, даже если несколько обращений к базе данных запрашивают те же самые семантические ключи или те же самые результаты операций. Таким образом, применяя объект структуры данных можно избежать двойных накладных расходов и сэкономить вычислительные ресурсы, чтобы избежать необходимости дополнительного оснащения ЭВМ.
С целью оптимизации сгенерированный объект структуры данных динамически модифицируется в зависимости от нагрузки на вычислительные ресурсы. Нагрузку на вычислительные ресурсы можно определить в показателях действительной нагрузки, производимой на процессор и память в системе хранения данных либо спрогнозированной нагрузки на процессор и память в системе хранения данных. Нагрузку на процессор, таким образом, можно определить с помощью такого показателя как время, затраченное на выполнение запроса к базе данных объектом структуры данных, и нагрузку на память можно определить с помощью таких показателей как объем памяти, задействованный объектом структуры данных и объем памяти, задействованный для выполнения операций. Эта нагрузка прямо пропорциональна затраченной электроэнергии системой хранения данных и может быть выражена в таких показателях как затраты электроэнергии на процессор и затраты электроэнергии на память, например, с помощью таких единиц измерения как Ватт и Джоуль. Так как нагрузка на процессор и память прямо пропорциональна затраченной электроэнергии, можно также сказать, что динамическая модификация объекта структуры данных происходит в зависимости от затрат на электроэнергию. Эти затраты на электроэнергию могут быть действительно наблюдаемые или спрогнозированные. Так или иначе, нагрузка сравнивается с заданным порогом, и если этот порог превышается или будет повышаться согласно прогнозу, объект структуры данных модифицируется с целью понижения нагрузки на вычислительные ресурсы. Как минимум один порог предварительно определяется на основе максимально разрешенной нагрузки на процессор или на память, что в свою очередь означает, что как минимум один предварительно заданный порог может выражаться в максимально разрешенных затратах на электроэнергию. С целью достижения наибольшей степени детализации модификации объекта структуры данных, нагрузку на вычислительные ресурсы можно определить для каждого отдельно взятого набора данных, основываясь либо на наблюдениях действительной нагрузки на вычислительные ресурсы, либо на его прогноз. При инициализации объекта структуры данных, т.е. при его изначальной генерации, нагрузку на вычислительные ресурсы можно спрогнозировать, например, на основе наблюдений за нагрузкой во всей системе или статистических значений, на которых ранее генерировались объекты структуры данных. Это позволяет установить матрицы прогноза относительно нагрузки в зависимости от требований к ЭВМ и относительно нагрузки в зависимости от времени выполнения, что позволяет спрогнозировать нагрузку на вычислительные ресурсы, необходимые для генерации объекта структуры данных. Эти матрицы прогноза не только позволяют оценить общую нагрузку на вычислительные ресурсы, необходимую для генерации объекта структуры данных, то также могут разбиваться до уровня каждого отдельно взятого набора данных или даже до уровня данных. Например, можно спрогнозировать, какова будет нагрузка на вычислительные ресурсы для копирования определенного набора данных из базы данных в объект структуры данных, или какова будет нагрузка на вычислительные ресурсы для выполнения какой-то операции с наборами данных и т.д. Когда объект структуры данных сгенерирован, нагрузку на вычислительные ресурсы можно наблюдать в действительности. Например, можно отслеживать, какова нагрузка на вычислительные ресурсы в действительности при обновлении определенных наборов данных в объекте структуры данных, когда происходят изменения в наборах данных, хранимых в базе данных, или какова была нагрузка на вычислительные ресурсы в действительности при выполнении операций с наборами данных, указанных в обращениях к базе данных. И хотя в этой фазе можно отслеживать нагрузку на вычислительные ресурсы, использование прогнозов тоже возможно. Знания об индивидуальной нагрузке на вычислительные ресурсы позволяют модифицировать объект структуры данных по отношению к наборам данных, чтобы оптимально адаптировать объект структуры данных.
Используя объект структуры данных для выполнена запросов к базе данных и динамически модифицируя объект структуры данных в зависимости от нагрузки на вычислительные ресурсы системы хранения данных, можно определить оптимальную рабочую нагрузку на вычислительные ресурсы во избежание пиковых нагрузок и более равномерного распределения рабочей нагрузки по времени, так чтобы не было необходимости дополнительного оснащения ЭВМ, и в то же время было возможным выполнение большого количества одновременных обращений к базе данных с существующим ЭВМ.
Сущность изобретения поясняется графическими материалами, где показано:
На фиг. 1 - Схема системы хранения данных, индивидуально выполняющей запросы к базе данных в памяти;
На фиг. 2 - Схема системы хранения данных на конкретном примере исполнения данного изобретения, выполняющей обращения к базе данных используя сгенерированный объект структуры данных в той же системе хранения данных как показано на фигуре 1;
На фиг. 3 - Рост потребления ресурсов в зависимости от объема данных, количества пользователей/сложности вычислений. изображает графическое сравнение между индивидуальным выполнением запросов к базе данных и выполнением посредством сгенерированного объекта структуры данных;
На фиг. 4 - Логическая схема генерирования объекта структуры данных на конкретном примере исполнения данного изобретения;
На фиг. 5 - логическая схема использования и модификации сгенерированного объекта структуры данных на конкретном примере исполнения данного изобретения;
На фиг. 6 - Сервер базы данных, содержащий систему хранения данных, на конкретном примере исполнения данного изобретения.
В предпочтительном примере воплощения нагрузка на вычислительные ресурсы определяется индивидуально для обновления набора данных сгенерированного объекта структуры данных. Индивидуально в этом случае означает отдельно для каждого набора данных. Таким образом, для каждого набора данных, содержащихся в объекте структуры данных, определяется нагрузка на вычислительные ресурсы, необходимая для обновления этого набора данных. Так, каждую нагрузку на вычислительные ресурсы можно определить для разных степеней разбиения наборов данных. По большому счету, определение нагрузки на вычислительные ресурсы до самой глубокой степени разбиения может означать определение нагрузки на вычислительные ресурсы, необходимой для обновления одной данной в наборе данных. Так как сгенерированный объект структуры данных и наборы данных в нем связаны с наборами данных, хранимых в базе данных, наборы данных в сгенерированном объекте структуры данных подлежат обновлению при изменениях в наборе данных базы данных. Обновление в этом смысле означает, что результаты заданных операций необходимо обновить из-за изменений в наборе данных базы данных. Это обновление будет различным для каждого набора данных в сгенерированном объекте структуры данных, потому что у наборов данных в базе данных различная частота изменений. Например, доходы по продукту будут изменяться ежедневно, в то время как номенклатура продукции будет изменяться в более продолжительные Интервалы. Определив индивидуальную нагрузку на вычислительные ресурсы для обновления набора данных сгенерированного объекта структуры данных, можно соответствующе модифицировать объект структуры данных и учесть различную частоту изменений. Это предоставит возможность для работы объекта структуры данных без лишних затрат дорогих вычислительных ресурсов. Индивидуальную нагрузку на вычислительные ресурсы можно, таким образом, определить в показателях нагрузки на процессор и нагрузки на память системы хранилища данных. Индивидуальную нагрузку на вычислительные ресурсы можно также спрогнозировать, опираясь на знания о частоте изменения наборов данных в базе данных.
Кроме того, известно, что, когда набор данных в базе данных очень часто изменяется, нагрузка на вычислительные ресурсы для обновления набора данных в сгенерированном объекте структуры данных будет высокой, если все данные, подлежащие изменениям в наборе данных, изменяются с с таким же темпом, как и частота изменений, и если все данные, изменившиеся в наборе данных базы данных, также содержат связанный с ними набор данных в сгенерированном объекте структуры данных. И наоборот, если набор данных в базе данных изменяется нечасто, то, даже если связанный с ними набор данных в сгенерированном объекте структуры данных изменяется с с таким же темпом, то нагрузка на вычислительные ресурсы будет низкой, или же никой нагрузки не будет, если этих данных нет в объекте структуры данных. В связи с этим, индивидуальная нагрузка на вычислительные ресурсы позволяет динамически модифицировать объект структуры данных в зависимости от темпа обновления, установленного для наборов данных в сгенерированном объекте структуры данных, связанных с наборами данных базы данных, а также в зависимости оттого, содержатся ли данные в наборе данных в объекте структуры данных, с целью реагировать на частоту изменения наборов данных в базе данных и адаптировать сгенерированный объект структуры данных, чтобы оптимально использовать вычислительные ресурсы.
В другом предпочтительном примере воплощения динамическая модификация включает в себя определение темпа обновления для обновления набора данных в объекте структуры данных, в основе которого лежит, хотя бы частично, индивидуальная нагрузка на вычислительные ресурсы и обновление набора данных в объекте структуры данных в соответствии с установленным темпом обновления. В наборах данных в базе данных изменения происходят с определенной частотой. На изменения, при этом указывают триггеры, так что сравнение с предыдущим значением не всегда определяет изменения. С триггерами можно получить анализ касательно количества изменений и частоты изменений. Как только происходят изменения в наборах данных, находящихся в базе данных, данные должны измениться и в наборах данных в сгенерированном объекте структуры данных. Наборы данных в сгенерированном объекте структуры данных могут, таким образом, обновляться каждый раз, когда происходят изменения в наборах данных базы данных или же могут обновляться время от времени. Следовательно/частота изменений, происходящих с наборами данных базы данных может отличаться от темпа обновления в сгенерированном объекте структуры данных. Например, если темп обновления будет равен частоте изменений, это может вызвать значительные накладные расходы. Так, с целью оптимизации объекта структуры данных с точки зрения нагрузки на вычислительные ресурсы, только при каждом n-ном изменение в наборе данных базы данных (где n - целое число) происходит обновление в объекте структуры данных. При этом нагрузку на вычислительные ресурсы можно определить в параметрах времени, затраченного на обработку данных для обновления индивидуальных наборов данных в сгенерированном объекте структуры данных. Например, можно определить время, необходимое на обработку данных для обновления каждого набора данных в объекте структуры данных. После чего можно выявить максимальное и минимальное значения показателей времени, необходимого на обработку. Темп обновления можно затем определить, сложив максимальное и минимальное значения и разделив сумму на минимальное значение. Этот темп обновления может быть задан пользователем, например, установив значение так называемого соглашения об уровне услуг, позволяющее влиять на актуальность наборов данных в объекте структуры данных. Это значение соглашения об уровне услуг может выражаться временем обработки данных и может быть добавлено к сумме в числитель в вышеупомянутой формуле. При этом, темп обновления можно также определить на основе самих проанализированных обращений к базе данных. Например, если в обращениях к базе данных указывается, что они выполняются только периодически, темп обновления можно установить на значение этого периода, отняв время, необходимое для обновления соответствующих наборов данных в сгенерированном объекте структуры данных. Например, если обращения к базе данных представляют собой поквартальные отчеты, то целесообразно обновлять объект структуры данных раз в три месяца, отняв время, необходимое для обновления объекта структуры данных. Тем не менее, если за период в три месяца частота изменений наборов данных в базе данных высока, то более целесообразно установить темп обновления, меньший трех месяцев, чтобы избежать пиковых нагрузок на вычислительные ресурсы, распределив нагрузку на вычислительные ресурсы, используя формулу вычисления периода, указанную в обращениях к базе данных. Даже если определение темпа обновления основывается на простых вычислениях, специалисту в данной области очевидно, что можно также применить другие стратегии для определения оптимального темпа обновления. Например, темп обновления может быть вектором, полученным в результате анализа нейронной сети, при этом могут учитываться другие факторы и весовые коэффициенты. При этом, можно использовать, к примеру, нейронную сеть прямого распространения. Специалисту в данной области известно, что весовые коэффициенты в нейронной сети могут определяться предпочтениями пользователя или же попросту значением соглашения об уровне услуг и т.п.
В еще одном предпочтительном примере воплощения способ включает в себя мониторинг актуального темпа обновления как минимум двух объектов структуры данных и перемещение момента начала цикла обновления первого объекта структуры данных из как минимум двух объектов структуры данных относительно момента начала цикла обновления второго объекта структуры данных из как минимум двух объектов структуры данных, основываясь на актуальных темпах обновления. Таким образом, если в базе данных хранятся несколько - как минимум два - объекта структуры данных, можно установить правильное соотношение моментов начала их циклов обновления. Моменты начала их циклов обновления можно, тем самым, вычислить на основании темпов обновления, которые представляют собой время между двумя смежными циклами обновления. Так, момент начала цикла обновления - это время, когда начинается обновление сгенерированных объектов структуры данных. Для того, чтобы наилучшим образом распределить нагрузку на вычислительные ресурсы по времени и избежать ее пиков, можно переместить момент начала обновления разных объектов структуры данных. Кроме того, при перемещении момента начала цикла обновления, возможно перемещение таким образом, чтобы учитывалось приоритетное значение сгенерированных объектов структуры данных. Например, в некоторых наборах данных в базе данных могут происходить изменения с высокой частотой, необходимые же данные могут запрашиваться небольшим количеством пользователей. В связи с этим, из-за высокой нагрузки на вычислительные ресурсы, необходимой для обновления соответствующих наборов данных в объекте структуры данных по сравнению с нагрузкой на вычислительные ресурсы для выполнения существующих обращений к базе данных небольшим количеством пользователей, эти данные могут не входить в состав наборов данных сгенерированного объекта структуры данных с целью более равномерного распределения нагрузки. Если у наборов данных в базе данных большая частота изменений, и они также запрашиваются большим количеством пользователей, тогда эти данные остаются в сгенерированном объекте структуры данных, а другими наборами данных, запрашиваемыми небольшим количеством пользователей, можно пожертвовать и не включить в состав сгенерированного объекта структуры данных. С другой стороны, если потребляемые вычислительные ресурсы указывают на то, что некоторые ЭВМ остаются неиспользованными, сгенерированный объект структуры данных можно модифицировать так, чтобы он включал в себя большее количество наборов данных из базы данных, так чтобы сгенерированный объект структуры данных использовался для выполнения запросов к базе данных.
В еще одном предпочтительном примере воплощения, вычислительные ресурсы, на основании которых модифицируется сгенерированный объект структуры данных, определяются показателями индивидуального времени обработки данных, необходимого для каждого набора данных в объекте структуры данных, а также для их обновления. Например, в инициальной фазе после анализа множества обращений к базе данных, объект структуры данных генерируется, к примеру, с каждым набором данных, указанным в запросах к базе данных. Так, у каждого набора данных может быть может быть различная глубина иерархии или степень разбиения. Например, набор данных, указывающий на доходы от продуктов, может включать эти доходы соответственно продукту, сформировавшему эти доходы, соответственно году, месяцу и дню, когда формировались доходы. В связи с этим, у каждого набора данных может быт различная иерархии или же степень разбиения с разной информацией. Например, первая степень разбиения хранящихся доходов может быть годом, вторая степень разбиения - месяцем этого года, третья - днем этого месяца, четвертая - продукт; и пятая - актуальное значение дохода, полученного от конкретного продукта в конкретный день конкретного месяца конкретного года. Очевидно, что каждая степень разбиения включает в себя разное количество последующих степеней разбиения, пока, в конечном счете, в базе данных не останется только актуальное значение. Таким образом, степени разбиения могут представлять собой отношения наследования (по типу родитель-наследник). При определении индивидуальной нагрузки, может учитываться индивидуальная нагрузка для разных степеней разбиения; Например, одну нагрузку на вычислительные ресурсы определяют, как ту, что выражает время обработки данных для обновления всех значений для конкретного года. На более детальной степени разбиения нагрузку можно определить, как время обработки данных для обновления конкретного месяца конкретного года и т.д. Таким образом, можно определить время обработки данных для обновления разных степеней разбиения. Это время обработки может усчитываться при генерации объекта структуры данных. Например, если известно индивидуальное время обработки для какой-то степени разбиения, это время обработки можно сравнить со временем обработки для более высокой степени разбиения (родитель), и если окажется, что на более высокой степени разбиения время обработки лишь немного больше, чем время обработки данных на степень разбиения ниже (наследник), то вся более высокая степень разбиения может оставаться в объекте структуры данных для хранения информации обо всех доступных наследниках. С другой стороны, если окажется, что для более низкого уровня разбиения требуется намного меньше времени на обработку данных, то только эта степень разбиения остается в объекте структуры данных. Индивидуальная нагрузка на вычислительные ресурсы, определяющаяся временем обработки данных, также может учитываться при модификации циклов обновления объекта структуры данных, т.е. времени между обновлениями наборов данных в объекте структуры данных.
Для специалиста в данной области уже очевидно, что вышеупомянутые способы модификации объекта структуры данных относительно темпа обновления и включения наборов данных можно применить по отдельности или в комбинации, так, чтобы добиться оптимальной эксплуатации имеющихся вычислительных ресурсов.
В еще одном предпочтительном примере воплощения, анализ множества обращений к базе данных включает в себя определение комплексности множества обращений к базе данных. Например, обращения к базе данных можно проанализировать с учетом того, содержат ли они простые процедуры базы данных, такие как оперативная аналитическая обработка или процедуры базы данных, применяемые только для набора данных на более низкой иерархической ступени, т.е. с низкой степенью разбиения. Такие простые процедуры базы данных и соответствующие наборы данных можно не включать в сгенерированный объект структуры данных, т.к. ресурсы, необходимые для генерации объекта структуры данных и ресурсы, занимаемые объектом структуры данных, могут превысить ресурсы, необходимые для выполнения этих самых простых процедур базы данных. Так, специалист в данной области распознает, что от системы хранения данных зависит, что именно может считаться простой процедурой базы данных. Более того, анализ обращений к базе данных может включать в себя как минимум один пункт из следующих: определение количества одинаковых обращений к базе данных во множестве обращений к базе данных; определение спрогнозированного времени обработки данных для множества обращений к базе данных, подлежащих обработке; определение спрогнозированной нагрузки на вычислительные ресурсы для множества обращений к базе данных, подлежащих обработке; определение, является ли множество обращений к базе данных простыми процедурами базы данных; и определение степени разбиения множества обращений к базе данных. Вся эта информация указывает на сложность обращений к базе данных и позволяет определить целесообразность генерации объекта структуры данных. Исходя из этого, в зависимости от используемой системы хранения данных; можно предварительно определить порог, указывающий, в каких случаях следует выполнять обращения к базе данных без сгенерированного объекта структуры данных и в каких случаях следует генерировать объект структуры данных.
В одном предпочтительном примере воплощения, база данных системы хранения данных может представлять собой как дисковую систему управления базами данных, так и систему управления базами данных в памяти, или же комбинацию из перечисленного. Специалист в данной области распознает, что это изобретение можно применять к различным формам реализации системы хранения данных. Например, система хранения данных может имплементироваться системой для распределенной обработки очень больших наборов данных.
Вышеописанный способ может так же применяться в программном обеспечении, при этом способ может быть реализован, в частности, распознаваемым процессором энергонезависимым информационным носителем, содержащим инструкции, при выполнении которых применяется вышеописанный способ. Распознаваемый процессором энергонезависимый информационный носителем может представлять собой часть программного продукта для ЭВМ.
Цель данного изобретения достигается также устройством для управления системы хранения данных, при этом устройство включает в себя память для хранения набора данных, имеющегося в базе данных при системе хранения данных. Память, в этом случае, представляет собой оперативную память как минимум одного процессора и/или дисковую память, соединенную с как минимум одним процессором и доступную для него. Устройство может представлять собой сервер базы данных, в котором находится база данных или, как минимум, часть базы данных, и запускает на выполнение систему управления базами данных. Этот процессор устройства сконфигурирован для анализа множества обращений к базе данных, генерации объекта структуры данных в рамках существующей памяти, при этом объект структуры данных содержит как минимум один набор данных, указанный множеством обращений к базе данных, определяет нагрузку на вычислительные ресурсы, т.е. на память и на как минимум один процессор, и динамически модифицирует объект структуры данных в зависимости от выявленной нагрузки на вычислительные ресурсы. Таким образом, процессор может быть дополнительно сконфигурирован для отслеживания потребления электроэнергии вычислительными ресурсами, т.е. памятью и процессором. Это потребление электроэнергии может учитываться при динамической модификации объекта структуры данных таким образом, чтобы предварительно определенные пороги не превышались.