Таким чином досягається атомарность операцій над файлами засобами ОС EMC Centera Linux.
Доставка результату
Клієнтський компонент, що очікує закінчення виконання свого запиту до серверного компоненту відстежує наявність файлу з результатом або зміна змісту такого файлу використовуючи з'єднання SSH. Файл з результатом повинен містити статус виконання запиту та його прогрес. Після завершення обробки запиту клієнтський компонент самостійно копіює результату з вузла СГД через з'єднання SSH.
Види допустимих запитів, їх параметри і можливі результати їх обробки
Кожен запит повинен мати свій унікальний ідентифікатор, щоб уникнути колізій між обробкою запитів. Відповідальність за унікальність ідентифікатора покладається на клієнтський компонент, як створює еапроси. Ідентифікатор повинен бути об'єктом типу «ціле» (4 байти).
Кожен запит повинен мати час життя своїх результатів, яке виражається в секундах, після закінчення яких вони будуть стерті з вузла СГД щоб уникнути заповнення дискового простору непотрібними даними.
Стан обробки запиту може бути одним з п'яти: - запит створений, але ще не переданий в обробку серверним компонентом; - запит передано в обробку серверним компонентом, але ніякі результати ще не відомі; - запит обробляється сервером, відомий прогрес (скільки кроків всього в запиті, скільки кроків виконано і скільки з них - з помилкою) і можуть бути доступні проміжні результати (список файлів з результатами, розташованими в директорії результатів); - запит оброблений, результати доступні; - запит оброблений, але результати недоступні або доступні не повністю в результаті помилки, інформація про яку доступна.
Параметри запитів і результатів їх виконання вказані в табл. 3.1.
Формат запису запиту і результатів
Як формат запису параметрів запиту та результа був обраний синтаксис мови розмітки XML [7], як гнучкий спосіб вираження різних структур даних, легко піддається модифікації і має безліч реалізацій, що знижують витрати на розробку серіалізациі власних структур даних. Приклад завдання копіювання файлів, зверненої в документ XML, приведений нижче:
lt;? xml version=1.0 encoding=utf - 8? gt;
lt; task gt;
lt; parameter name=task_id value=223/ gt;
lt; parameter name=task_type value=DOWNLOAD/ gt;
lt; parameter name=creation_date value=1303033975/ gt;
lt; parameter name=modification_date value=1303036333/ gt;
lt; parameter name=task_expiration value=86400/ gt;
lt; state gt;
lt; parameter name=name value=Running/ gt;
lt; parameter name=total_steps value=4/ gt;
lt; parameter name=complete_steps value=2/ gt;
lt; parameter name=failed_steps value=0/ gt;
lt;/state gt;
lt; results gt;
lt; result_1 gt;
lt; parameter name=node value=c001n01/ gt;
lt; parameter name=path value=/ var/log/messages.log/ gt;
lt; parameter name=size value=65821/ gt;
lt; parameter name=is_successful value=true/ gt;
lt;/result_1 gt;
lt; result_2 gt;
lt; parameter name=node value=c001n03/ gt;
lt; parameter name=path value=/ var/log/messages.log/ gt;
lt; parameter name=size value=365112/ gt;
lt; parameter name=is_successful value=true/ gt;
lt;/result_2 gt;
lt;/results gt;
lt;/task gt;
Параметри запитів протоколу клієнт-серверної взаємодії
Таблиця 3.1
Тип запросаПараметриВремя жізніМетріка прогрессаРезультатПоіск повідомлення в журналахFrom: дата початку періоду To: дата закінчення періоду Nodes: список вузлів для пошуку LogTypes: список типів переглядаються журналів Pattern: шаблон для пошуку IsRegExp: прапор регулярного виразу в шаблоне1 суткіВсего: кількість вузлів, помножене на 100% Виконано: сума часток переглянутих журналів на всіх вузлах (у відсотках) Помилки: кількість неудочно переглянутих журналовСпісок файлів журналів, збережених на вузлі серверного компонентаГенерірованіе налагоджувальних журналовStartDate: дата початку генерування журналу Nodes: список вузлів LogLevel: мінімальний рівень важливості повідомлень Loggers: список компонентів - джерел повідомлень Filters: список фільтрів сообщеній30 сутокВсего: кількість вузлів Виконано: кількість оброблених вузлів Помилки: кількість вузлів, вернувших ошібкуОтладочние журнали, збережені на генеруючих узлахСозданіе журналу мережевих пакетовStartDate: дата початку генерування журналу Nodes: список вузлів Nic: мережевий інтерфейс для захоплення пакетів Filters: список фільтрів пакетов30 доби -//- Журнали мережевого трафіку, збережені на генеруючих узлахПрериваніе завдання генерування налагоджувальних або мережевих журналовTaskId: ідентифікатор завдання генерування журналов10 хвилин -//- ОтсутствуетПоіск файлів журналів або к...