Научная статья на тему 'Применение средств триз для поиска путей увеличения емкости кэш-памяти при работе с базами данных'

Применение средств триз для поиска путей увеличения емкости кэш-памяти при работе с базами данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
79
25
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Плаксин Михаил Александрович

При работе с базами данных постоянно приходится сталкиваться с тем, что емкость доступной кэш-памяти (буферной области, куда помещаются записи, считываемые из внешней памяти в оперативную) оказывается недостаточной. В статье описан поиск решения этой проблемы, выполненный с помощью средств теории решения изобретательских задач.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Плаксин Михаил Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение средств триз для поиска путей увеличения емкости кэш-памяти при работе с базами данных»

2009

ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА

Математика. Механика. Информатика Вып. 7(33)

УДК 681.3

Применение средств ТРИЗ для поиска путей увеличения емкости кэш-памяти при работе с базами данных

М. А. Плаксин

Пермский государственный университет, 614990, Пермь, ул. Букирева, 15

При работе с базами данных постоянно приходится сталкиваться с тем, что емкость доступной кэш-памяти (буферной области, куда помещаются записи, считываемые из внешней памяти в оперативную) оказывается недостаточной. В статье описан поиск решения этой проблемы, выполненный с помощью средств теории решения изобретательских задач.

Предлагаемый анализ выполнен по заказу коллег автора, разрабатывающих информационные системы с использованием СУБД Oracle и столкнувшихся при этом с рядом проблем.

В соответствии с рекомендациями ТРИЗ в данной статье максимально упрощена программистская терминология.

1. Постановка задачи увеличения емкости кэш-памяти при работе с базами данных

При работе с базами данных (БД) постоянно возникает необходимость переноса данных из внешней памяти (с магнитных дисков) в оперативную. Эти операции представляются весьма медленными по сравнению с операциями обработки данных, выполняемыми непосредственно в оперативной памяти (ОП). Работа в оперативной памяти проводятся со скоростью электронной, а обмен с внешней памятью требует действий, выполняемых со скоростью механической (поворот диска, подвод головки чтения/записи). Разница скоростей может достигать 6 порядков (механическая операция может оказаться в миллион раз медленней электронной). Такая разница в

© М. А. Плаксин, 2009

скорости вызывает желание минимизировать количество обращений к внешней памяти. Это возможно за счет того, что значение, один раз считанное с диска в оперативную память, может потом использоваться много раз во множестве разных операций. Для этого прочитанные с диска значения ("записи") сохраняются в специальной области памяти, именуемой кэш-памятью. При поступлении запроса на чтение информации с диска система сначала проверяет, нет ли уже требуемой записи в кэше. Если она там уже есть, то обращаться к диску нет необходимости. Реальное чтение данных с диска производится только в том случае, если требуемой записи в кэше нет. При этом если в кэше еще есть свободное место, новая запись помещается на это место. Но если кэш уже заполнен, для прочтения новой записи приходится затирать одну из считанных ранее.

Чем больше данных помещается в кэшпамяти, тем реже требуется обращение к диску и тем быстрее выполняется прикладная программа. Поэтому хочется увеличить объем кэша. Но в оперативной памяти требуется разместить не только кэш, но и множество другой информации. Потребность в оперативной памяти в вычислительной системе всегда превышает наличную память. Каждую из областей, на которые система делит ОП, приходится ограничивать. В результате объем кэш-памяти всегда оказывается меньше, чем

объем перекачиваемой с диска информации. Поэтому весьма полезными представляются любые средства, которые позволят в том же объеме кэш-памяти сохранить большее число записей.

В данной статье рассматривается решение проблемы увеличения емкости кэшпамяти с помощью инструментов теории решения изобретательских задач.

1. Некоторые инструменты ТРИЗ

Теория решения изобретательских задач (ТРИЗ) разработана во второй половине ХХ в. советским ученым Г.С. Альтшуллером и его учениками [1, 2, 3]. ТРИЗ основывается на утверждении, что существуют объективные законы развития систем, эти законы можно познать и использовать для того, чтобы направить развитие нужной системы в нужном направлении. За прошедшие годы ТРИЗов-ские идеи нашли применение в самых разных предметных областях. В данной статье мы рассмотрим пример применения ТРИЗовских методов для решения задачи из области computer science.

ТРИЗ включает в себя развитый комплекс инструментов для анализа систем и принятия решений. Рассмотрим некоторые из них: противоречия, их виды и приемы разрешения; изделие и инструмент; оперативная зона (ОЗ) и оперативное время (ОВ); вещественно-полевые ресурсы (ВПР); идеальный конечный результат (ИКР); алгоритм решения изобретательских задач (АРИЗ).

Противоречия и приемы их разрешения

Одно из базовых понятий ТРИЗа - понятие противоречия. Согласно ТРИЗ, именно противоречие является основой любого развития. Там, где нет противоречий, нет и развития. Развитие требует не сглаживания противоречий, не компромиссных (половинчатых) решений. Наоборот, противоречие следует обострить до предела, а потом разрешить, снять, найти решение, которое будет удовлетворять обоим противоположным требованиям.

Противоречия в ТРИЗ делятся на административные (АП), технические (ТП) и физические (ФП).

Административным противоречием называется ситуация, когда существует некое

негативное явление, которое нас не устраивает. Мы еще не знаем, в чем причина, а уж тем более, как его можно устранить.

Техническим противоречием называется такое взаимодействие в системе, при котором усиление некоторого полезного действия обязательно влечет усиление какого-то вредного действия. Улучшая один параметр, мы обязательно ухудшаем другой. Формулируется ТП в форме "если - то - но".

Физическим противоречием называется ситуация, когда одни тот же объект должен обладать противоположными свойствами (быть тупым и острым, горячим и холодным, широким и узким и т.д.).

Переход от АП к ТП, а затем к ФП выражает последовательное обострение противоречия.

Для разрешения технических и физических противоречий в ТРИЗ разработаны наборы приемов (40 - для ТП и 11 - для ФП). Назовем некоторые из них.

Приемы разрешения ТП:

1. Принцип "наоборот": вместо требуемого действия сделать обратное; сделать подвижную часть неподвижной; перевернуть объект, вывернуть его наизнанку.

2. Принцип местного качества: перейти от однородной структуры объекта к неоднородной; придать разным частям объекта разные функции; поместить каждую часть объекта в наиболее подходящие для нее условия.

3. Принцип дробления: разделить объект на независимые части; сделать объект разборным.

4. Принцип вынесения: отделить ме-

шающую часть объекта или полезную его часть.

5. Принцип копирования: вместо недоступного, сложного, дорогостоящего, неудобного объекта использовать его упрощенные и дешевые копии.

6. Дешевая недолговечность вместо дорогой долговечности: заменить качественный, но дорогой объект менее качественными, но более дешевыми аналогами.

7. Принцип динамичности: характеристики объекта по мере необходимости менять так, чтобы они оптимально соответствовали меняющимся условиям; разделить объект на

двигающиеся части; сделать объект подвижным.

8. Принцип "матрешки": разместить

один объект внутри другого; пропустить объект через полость в другом объекте.

9. Принцип "заранее подложенной подушки": зная потенциальную опасность, заранее подготовить аварийные средства.

10. "Обратить вред в пользу": использовать вредный фактор для получения полезного эффекта; компенсировать два вредных фактора, наложив их друг на друга; усилить вредный фактор до такой степени, чтобы он перестал быть вредным.

11. Принцип перехода в другое измерение: перейти от линии - в плоскость, из плоскости - в пространство; наклонить объект или положить его "набок"; использовать обратную сторону площадки; перейти к многоэтажной компоновке.

Приемы разрешения ФП:

- Разделение в пространстве: одна часть системы обладает свойством С, другая - анти-С (лезвие ножа - острое, ручка - тупая).

- Разделение во времени: в один момент времени система обладает свойством С, в другой - анти-С (на зеленый сигнал светофора по дороге движутся машины, на красный - пешеходы).

- Системный переход 1-а: объединение систем (широкий катамаран из двух узких лодок).

- Системный переход 1-б: переход к антисистеме (чтобы остановить кровотечение к ране прикладывают салфетку, пропитанную кровью другой группы).

- Системный переход 1-в: система в целом наделяется свойством С, а ее части -свойством анти-С (гибкая цепь составляется из жестких звеньев).

- Переход на микроуровень, фазовые переходы, физико-химические переходы.

Изделие и инструмент

Конфликтующую пару элементов следует поделить на изделие и инструмент. Изделием называют элемент, который должен быть "обработан" (в широком смысле слова), инструментом - элемент, воздействующий на изделие.

Оперативная зона, Оперативное время, Вещественно-полевые ресурсы

Оперативное время - промежуток времени, в котором проявляется конфликт.

Оперативная зона - место, в пределах которого возникает конфликт.

Иначе говоря, нас будет интересовать не противоречие "вообще", а противоречие в конкретное время (ОВ) в конкретном месте (ОЗ).

Вещественно-полевые ресурсы. Понятия вещества и поля в ТРИЗ отличаются от физических. В ТРИЗ вещество - это любой объект, а поле - это любое взаимодействие.

Ресурсы делят на внутрисистемные (в том числе ВПР инструмента и ВПР изделия), внешнесистемные (ресурсы среды) и надсис-темные (отходы посторонней системы, "копеечные ресурсы", доступные по пренебрежимо малым ценам, типа воздуха).

Идеальный конечный результат

Идеальный конечный результат - одно из центральных понятий ТРИЗ. ТРИЗ исходит из следующих положений:

Любая система создается для решения определенной проблемы, для достижения определенной цели, для осуществления определенной функции. Например, автомобиль - для того, чтобы перемещать в пространстве людей и грузы. Нам нужна не система, а ее функция. (Нам нужен не автомобиль, а возможность перемещать в пространстве людей и грузы). Система - это, по сути, накладные расходы на выполнение функции, это плата за достижение соответствующей цели. (За возможность перемещать в пространстве людей и грузы мы платим тем, что автомобиль тратит горючее, загрязняет окружающую среду, требует ухода, ремонта, охраны и т.д.) Естественно, чем меньше плата, тем лучше. В идеале плату хотелось бы низвести до нуля. Таким образом, идеальной представляется ситуация, когда цель достигается, а система для достижения цели не нужна, т.е. идеальная система - это система, которой нет, а цель ее достигается.

Для формулировки ИКР в АРИЗ предложен "хитрый" методический ход. Считаем, что для решения задачи мы можем ввести в систему некий "Х-элемент", который обладает нужными нам свойствами и оказывает на сис-

тему требуемое воздействие. Тогда для ИКР появляется стандартная формулировка:

" Х-элемент, абсолютно не усложняя систему и не вызывая вредных явлений, устраняет вредное действие (указать какое) в течение ОВ в пределах ОЗ, сохраняя способность инструмента совершать полезное действие (указать какое) ".

Алгоритм решения изобретательских задач

Алгоритм решения изобретательских задач - один из самых мощных инструментов ТРИЗ, но и один из самых сложных. Алгоритм оттачивался в течение нескольких десятков лет. Последняя версия алгоритма, разработанная непосредственно Альтшуллером, датируется 1985 г. Позднее учениками Альт-шуллера был предложен ряд модификаций АРИЗа. Но на сегодня именно версия «АРИЗ-85-В» считается канонической.

АРИЗ-85-В состоит из 9 частей:

1. Анализ задачи.

Основанная цель первой части АРИЗ - перейти от расплывчатой "проблемной ситуации" к четко построенной и предельно простой схеме (модели) задачи. Для этого следует указать назначение системы и ее состав и выделить противоречие, которое требуется устранить.

2. Анализ модели задачи: уточнение времени и места возникновения конфликта и учет ресурсов, кои могут быть использованы для его разрешения.

3. Определение идеального конечного результата и физического противоречия.

4. Мобилизация и применение ВПР.

5. Применение информфонда.

ТРИЗ обладает огромным фондом, хранящим систематизированную информацию о способах решения задач разных классов.

6. Изменение или замена задачи.

Решение нетривиальных задач часто связано с изменением смысла задачи, снятием первоначальных ограничений, связанных с психологический инерцией. Найденное решение, зачастую, приводит к переформулировке задачи. Решение и уточнение формулировки задачи идут параллельно.

7. Анализ способа устранения ФП.

Цель седьмой части АРИЗ - проверить качество найденного решения, оценить его близость к идеалу. Насколько предложенное ре-

шение затратно? Пришлось ли вводить новые вещества и поля? Является ли решение само-регулируемым? И т.д.

Является ли решение формально новым (в соответствии с данными патентного фонда)?

Важный вопрос: какие подзадачи возникают при разработке сформулированной идеи? Куда необходимо двигаться дальше?

8. Применение полученного ответа.

Хорошая идея, зачастую, годится для решения не одной единственной задачи, но может быть применена более широко. Восьмая часть АРИЗ нацелена на то, чтобы максимально использовать ресурсы найденной идеи.

9. Анализ хода решения.

ТРИЗ - система самосовершенствующаяся. Поэтому АРИЗ требует не только решить задачу, но и проанализировать ход решения, при необходимости, дополнить информационный фонд. В принципе, может быть изменен и сам АРИЗ. Но это происходит весьма редко и по весьма веским основаниям.

2. Применение АРИЗ и приемов

разрешения противоречий для

поиска путей увеличения емкости

кэш-памяти при работе с базами данных

Далее рассматривается решение проблемы увеличения емкости кэш-памяти с помощью АРИЗ и ряда приемов разрешения технических и физических противоречий.

1. Анализ задачи.

1.1. У словие задачи.

Дана система для промежуточного (временного) хранения информации, считываемой из внешней памяти в оперативную. Система состоит из программной части (будем называть ее "системой управления вводом/выводом" - СУВВ) и кэш-памяти - области оперативной памяти, предназначенной для хранения считываемых с диска записей. Кэш-память имеет ограниченный объем. Суммарный размер записей много больше, чем объем кэш-памяти. Записи имеют, вообще говоря, разный размер. Считывание их в оперативную память выполняется последовательно. Порядок запроса записей - не предсказуем. Считывание записи с диска выпол-

няется во много раз медленней, чем ее обработка в оперативной памяти.

Описанная система промежуточного хранения информации является подсистемой некоторой вычислительной системы (ВС), состоящей из аппаратной и программной частей. Кэш-память является частью ОП вычислительной системы, СУВВ - частью программного обеспечения данной ВС. Объем части ОП, которая выделяется под кэшпамять, определяется, исходя из целей глобальной оптимизации работы всей вычислительной системы.

ТП-1 : если объем кэш-памяти велик, то в ней можно сохранить много записей, но тогда не хватит оперативной памяти для хранения другой необходимой информации.

ТП-2 : если объем кэш-памяти мал, то освобождается оперативная память под другую необходимую ВС информацию, но записей в кэш-памяти помещается мало.

Кэш-память должна быть большой, чтобы вмещать много записей, и должна быть маленькой, чтобы не мешать работе других частей ВС.

Необходимо при минимальных изменениях получить систему, которая позволит в кэш-памяти малого объема хранить большое количество записей.

Прежде чем продолжать анализ, уточним одно важное понятие, которым мы постоянно оперируем. Это понятие размера кэшпамяти. Вообще говоря, размер машинной памяти принято измерять в байтах. Байт - это универсальная единица, используемая для измерения объема данных "вообще".

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Но нам надо измерять не объем «вообще», а объем специализированного хранилища - кэша. В данном случае срабатывает принцип местного качества. Кэш является областью ОП, но областью, которая обладает своими особенностями. В частности, единицей измерения в кэше удобней считать не байт, а запись, т.е. "увеличить размер кэша" означает "сделать так, чтобы в кэше можно было сохранить больше записей". Такое изменение формулировки сразу наталкивает на мысль о приеме "наоборот". Для того чтобы увеличить количество записей, помещающихся в кэше, можно увеличить размер кэша при

той же длине записи, а можно уменьшить длину записи при том же размере кэша.

Как уже сказано, размер кэш-памяти определяется исходя из интересов повышения эффективности работы всей вычислительной системы. Менять его по своему желанию мы не можем. Но мы можем использовать прием " наоборот" и попробовать уменьшить размер помещаемых в кэш записей. Тогда сформулированные выше противоречия должны быть переиначены. Акцент будем делать не на размер кэша по отношению к остальной оперативной памяти, а на размер записи по отношению к кэшу.

С чем связан размер записи? Запись нужна для хранения какой-то информации. Значит, чем больше размер записи, тем больше информации в ней поместится. Чем меньше размер записи, тем меньше информации может быть в ней сохранено.

Получим следующие формулировки: ТП-1': если размер помещаемой в кэш записи велик, то в ней может быть сохранено много информации, но самих записей в кэш поместится мало.

ТП-2': если размер помещаемой в кэш записи мал, то записей в кэш поместится много, но в каждой записи может быть сохранено мало информации.

Запись должна быть большой, чтобы вмещать много информации, и должна быть маленькой, чтобы в кэш помещалось много записей.

Необходимо при минимальных изменениях получить систему, которая позволит помещать в кэш много записей, каждая из которых содержит много информации.

1.2. Выберем конфликтующую пару. Вообще говоря, мы рассматриваем три взаимосвязанных параметра: размер записи, количество записей в кэше, количество информации в записи. Можно образовать 3 пары: "размер записи - количество записей", "количество записей - количество информации», "размер записи - количество информации". Первая пара интереса не представляет. Количество записей в кэше и количество информации в записи напрямую не связаны. Связь между ними устанавливает параметр "размер записи". Поэтому наиболее плодотворной

представляется анализ пары "размер записи - Поэтому для дальнейшего анализа выбираем количество информации в записи". ТП-2'.

Здесь необходимо пояснение. При ана-

Рис. 1. Графическая схема задачи увеличения емкости кэш-памяти

лизе информационного объекта необходимо отличать синтаксис (форму представления информации) и семантику (ее смысл). Один и тот же смысл можно выразить в разных формах. (Например, одну и ту же мысль можно высказать на разных языках.) При этом может оказаться, что различные представления информации, отличающиеся по форме, но совпадающие по смыслу, будут иметь разный размер.

В информатике существуют способы измерения "синтаксического количества информации" и "семантического количества информации", существуют два отдельные понятия: информативность (отношение количества синтаксической информации к объему данных) и содержательность (удельная семантическая емкость, отношение количества семантической информации в сообщении к объему данных в нем).

Выше мы не уточняли, какое именно количество информации мы имеем в виду. Сейчас пора это сделать. Под количеством информации будем иметь в виду семантическое количество.

1.3. Графическая схема (рис. 1).

1.4. ГПП исследуемой системы: хранение записей, считываемых из внешней памяти.

1.5. Обостряем конфликт. Размер записи сокращается до нуля, т.е. запись в кэш не находится. Но при этом хранимая в записи информация доступна для операций, выполняемых над данными в кэш памяти.

1.6. Модель задачи:

1) конфликтующая пара: размер записи и количество информации в ней;

2) усиленный конфликт: Размер записи сокращается до нуля, но хранимая в записи информация остается доступной для операций, выполняемых над данными в кэш памяти;

3) необходимо при минимальных изменениях получить систему, которая позволит уменьшить размер помещаемых в кэш записей таким образом, чтобы это уменьшение не сопровождалось потерей (уменьшением количества) информации.

2. Анализ модели задачи.

2.1. ОЗ: кэш-память.

2.2. ОВ:

- конфликтное время: момент переполнения кэш-памяти. Пока размер кэш-памяти достаточен для хранения всех считанных в нее записей, проблем не возникает. Проблема возникает в тот момент, когда очередная запись в кэше не помещается;

- время, непосредственно предшествующее конфликту: время, от начала работы системы до переполнения кэш-памяти. В принципе может быть поделено на более мелкие части:

■ от начала работы ВС до начала заполнения кэша (помещения в него первой записи),

■ от начала заполнения кэша до его заполнения "почти полностью" (может представлять интерес ситуация, когда очередная запись в кэш помещается, но кусок кэш-памяти, оставшийся после этого свободным, идентифицируется системой как "маленький"),

■ от заполнения "почти полностью" до переполнения (вариант: от начала заполнения до переполнения).

2.3. ВПР:

1) внутрисистемные:

для каждой записи известен ее размер, форма ее представления, операция, в результате выполнения которой запись оказалась в кэше. К сожалению, не известно, какие еще операции в будущем будут применены к этой записи и в каком порядке.

Известен предельно допустимый размер

кэша.

Известен набор операций, которые могут быть применены к данным, находящимся в кэше. Известны потребности этих операций в памяти и их специфические требования к представлению данных;

2) внесистемные:

в качестве внесистемных ресурсов можно рассматривать множество допустимых форм представления данных, их теоретические характеристики (в каком случае имеет смысл использовать, минимально допустимый размер, сложность преобразования и т.п.), программные средства для перевода данных из одного представления в другое;

3) надсистемыне:

надсистемных ресурсов в данном случае не видно.

3. Идеальный конечный результат

и физическое противоречие.

3.1. ИКР: Х-элемент, абсолютно не усложняя систему и не вызывая вредных воздействий, уменьшает размер помещаемых в кэш записей таким образом, чтобы это уменьше-

ние не сопровождалось потерей (уменьшением количества) информации.

3.2. Усиливаем ИКР: запрещаем вводить новые вещества и поля. Таким образом отметаются, например, предложения об увеличении объема кэш-памяти.

3.3. ФП: запись, находящаяся в кэшпамяти в момент переполнения кэш-памяти (или в момент ему предшествующий), должна быть мала, чтобы обеспечить размещение в кэш вновь считываемых записей, и должна быть велика, чтобы обеспечить хранение нужного количества информации.

3.4. Механизм деления на макро- и микро уровни в данном случае не используется.

Для разрешения ФП используем системный переход 1в: противопоставление

свойств системы и ее подсистем.

В роли системы рассмотрим помещаемую в кэш запись, в роли подсистем - ее части. Придадим системе свойство С, а ее частям

- свойство анти-С.

Воспользуемся усиленной формулировкой конфликта. Пусть одно из свойств - С или анти-С - означает: "не находится в кэшпамяти".

Тогда для перехода 1в возможны два варианта:

1) запись в целом находится в кэш, а ее части не находятся;

2) запись в целом в кэш не находится, а ее части находятся.

Рассмотрим оба.

1) запись в целом находится в кэш, а ее части не находятся.

Что значит "запись в целом находится в кэш"? Это значит, что я могу выполнять какие-то операции над записью целиком. Например, я могу ее целиком переслать в другую область памяти. Что значит, "ее части в кэш не находятся"? Значит, отдельные части записи сами по себе для обработки недоступны. Я не могу забраться внутрь записи и что-то сделать с ее компонентами. Обработке доступна только запись как единое целое.

Вопрос: существует ли такой способ представления информации, который позволял бы уменьшить требуемый для хранения объем, но в качестве платы за это лишил бы нас возможности манипулировать отдельными частями информационного объекта, со-

хранив за нами возможность манипулировать этим объектом целиком? Да. Такой способ существует. Более того, он общеизвестен. Это архивирование (упаковка) данных. При архивировании происходит перекодировка данных, направленная на их сжатие. Объем памяти, необходимой для хранения информационного объекта, уменьшается. Но новая кодировка не позволяет обрабатывать объект традиционным для него образом (например, упакованный текст нельзя редактировать), не позволяет выполнять специфические операции, требующие знания внутренней структуры объекта. В упакованном объекте эта структура (в чистом виде) не существует. Она будет восстановлена при выполнении операции распаковки (разархивирования). Объект, извлеченный из архива, будет полностью эквивалентен объекту, помещенному в архив. Но до распаковки заархивированный объект можно обрабатывать только как единое целое.

Идея: в случае переполнения кэша записи, предназначенные для удаления из кэша, следует упаковывать. Это уменьшит объем памяти, необходимый для их хранения, и позволит разместить в кэш большее количество записей.

Очевидное слабое место идеи: упаковка/распаковка записей потребует времени.

Ответ на это возражение: упаков-

ка/распаковка будет выполняться в оперативной памяти. Любые операции, выполняемые в ОП, во много раз быстрее операций обмена с внешней памятью. Значит, если в результате нам удастся сократить число необходимых обменов с диском, прием будет оправдан.

Другое возражение: упаков-

ка/распаковка требует работы центрального процессора.

Ответ: Это возражение может быть более серьезным. Но ответ на него может быть получен только при анализе конкретной вычислительной системы. Дело в том, что возможны разные способы организации процесса обмена с внешней памятью. Возможны варианты, в которых ЦП играет в этом обмене существенную роль. Возможны - когда обмен выполняется другими специализированными устройствами, а ЦП в это время занимается своей основной работой. Следовательно, для окончательного решения необходимы дополнительные исследования, для выполнения

которых потребуются уже не методы ТРИЗ, а методы computer science.

З а м е ч а н и е : Вообще говоря, критику предложенного решения имело бы смысл перенести в раздел 7 (п. 7.2, 7.4);

2) запись в целом в кэш не находится, а ее части находятся.

Фраза "запись в целом не находится в кэш" означает, что мне недоступны операции, по обработке записи целиком. Например, я не могу переслать всю запись целиком в другую область памяти. Фраза "части записи находятся в кэш" означает, что я могу выполнять какие-то операции, которые затрагивают не всю запись, а только отдельные ее части.

Вопрос: насколько осмысленна такая ситуация? Существуют ли такие операции, которые требуют для своего исполнения не всю запись, а только каких-то ее частей? Ответ: да, такие операции существуют. Более того, они грают весьма важную роль и представляют собой значительную часть всех операций над записью.

Дело вот в чем:

1. Запись, вообще говоря, состоит из двух частей: ключевой и информационной. Ключевая часть используется для выборки записи, для определения того, удовлетворяет ли она очередному запросу прикладной программы. Информационная часть содержит данные, которые будут обрабатываться прикладной программой, но в процессе выборки записи из базы данных не участвует.

2. Запрос к базе данных на выборку информации может быть (и часто бывает!) весьма сложен. Он может включать в себя целую серию операций над различными полями записи. В сложных случаях система генерирует специальный алгоритм - план исполнения запроса. Иногда запускается специальная процедура для оптимизации этого плана. И во всех вычислениях, выполняемых в процессе реализации этого плана, участвуют только те поля записи, которые указаны в данном запросе. Остальная часть записи в этот момент не нужна. Более того, в процессе выполнения плана запроса может оказаться, что эта запись в формируемое по запросу множество не попадает, т.е. считывать ее в ОП не понадобится вообще.

Идея: на время выполнения плана запроса считывать в кэш не всю запись цели-

ком, а только нужные для данного запроса поля. То есть на время выполнения плана запроса формировать своего рода "образ записи", который будет представлять запись в данном алгоритме. Вместо дорогого - громоздкого - информационного объекта мы будем использовать его дешевую - малоразмерную - копию. И только после окончательного определения множества запрашиваемых записей стоит замещать их образы на сами записи, т.е. считывать записи целиком.

Образ записи будет формироваться динамически в зависимости от обрабатываемого в данный момент запроса, т.е. система будет сама настраиваться на текущий запрос, будет сама минимизировать требования к памяти.

Вопрос, который нуждается в дальнейшем исследовании. Извлечение из записи нужных полей, формирование "образа записи" требуют времени, соответствующих программных средств, работы центрального процессора. Ответы в данном случае целиком повторяют ответы на соответствующие критические замечания к предыдущему варианту

- упаковке записей.

З а м е ч а н и е : предшествующий абзац имеет смысл перенести в раздел 7.

Поскольку задача решена, части 4-6 АРИЗ пропускаем. Нам оказалось достаточно имеющихся внутрисистемных ресурсов. Изменение или замена задачи не понадобились.

7. Анализ способа устранения ФП.

7.1. Контроль ответа.

Задача решается за счет внесистемных ресурсов.

Используемые ресурсы являются само-регулируемыми. Преобразование данных выполняется только тогда, когда это необходимо. Необходимость и конкретный вид преобразования определяются динамически в зависимости от ситуации, сложившейся при обработке конкретного запроса к БД.

7.2. Оценка полученного решения.

Полученное решение:

- увеличивает количество записей, помещаемых в кэш, сохраняя способность этих записей быть операндами соответствующих операций;

- требует некоторого усложнения СУВВ за счет введения в нее процедур преобразования данных.

Для того чтобы оценить выигрыш, даваемый различными способами преобразования данных, требуются специальные исследования; уже не ТРИЗовские, а информатиче-ские. Например, моделирование работы ВС, не использующей предложенные подходы к оптимизации кэширования и использующей их с теми или другими количественными параметрами.

Нуждается в дальнейшем исследовании вопрос о потенциальных нежелательных эффектах. Этот вопрос обсуждался выше при

обсуждении возможных способов разрешения физического противоречия в разделе 3.

7.3. Патентный анализ в данном случае не имеет смысла.

7.4. Анализ подзадач.

С помощью ТРИЗовсикх методов был определен принципиальный подход. Далее требуются исследования для определения количественных параметров этих принципиальных решений, оценки эффекта, который они дадут в том или ином случае. Вопросы, на которые требуется найти ответ, перечислены выше в разделе 3 и в пункте 7.2.

Таким образом, с помощью АРИЗ были найдены 2 возможных пути решения поставленной проблемы - увеличения количества записей, помещаемых в кэш-память:

- ввести процесс упаковки записей, которые находятся в кэш-памяти и предназначены для удаления из нее;

- вместо считывания в кэш-память всей записи сначала считывать некоторый ее "поисковый образ".

Для принятия окончательного решения о целесообразности реализации этих вариантов необходимы дополнительные исследова-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ния особенностей конкретной ВС методами computer science.

Надо отметить, что автору известно про использование в реальных СУБД второго из найденных путей, но он никогда не сталкивался с применением первого и никогда о нем не слышал.

Список литературы

1. Альтшуллер Г.С. Найти идею. Введение в теорию решения изобретательских задач / Г.С.Альтшуллер. Петрозаводск: Скандинавия, 200З. 240 с.

2. Альтшуллер Г.С. Алгоритм решения изобретательских задач АРИЗ^-В / Г.С. Альтшуллер // Правила игры без правил. Петрозаводск: Карелия, 1989. С. 11—50.

3. Злотин Б.Л. Приди на полигон / Б.Л.Злотин, А.В.Зусман // Как стать еретиком: практикум по теории решения изобретательских и научных задач. Петрозаводск: Карелия, 1991. C185-2S0.

Application of means of TRIZ for searching ways of increase of the volume of cache-memory during work with databases

M. A. Plaksin

Perm State University, 614990, Perm, Bukireva st., 15

During work with databases there is the problem: the volume of cache-memory (buffer area for location of records which read out from external memory in operative one) is insufficient. In the article the search of the decision of this problem, executed by means of Theory of the inventive problem solving (TRIZ), is described.

i Надоели баннеры? Вы всегда можете отключить рекламу.