RU2595903C2 - Прозрачное восстановление после отказа - Google Patents
Прозрачное восстановление после отказа Download PDFInfo
- Publication number
- RU2595903C2 RU2595903C2 RU2013158710/08A RU2013158710A RU2595903C2 RU 2595903 C2 RU2595903 C2 RU 2595903C2 RU 2013158710/08 A RU2013158710/08 A RU 2013158710/08A RU 2013158710 A RU2013158710 A RU 2013158710A RU 2595903 C2 RU2595903 C2 RU 2595903C2
- Authority
- RU
- Russia
- Prior art keywords
- file
- server
- client
- request
- session
- Prior art date
Links
- 238000011084 recovery Methods 0.000 title claims description 15
- 230000002085 persistent effect Effects 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 27
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013500 data storage Methods 0.000 abstract 1
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Between Computers (AREA)
- Retry When Errors Occur (AREA)
Abstract
Изобретение относится к способу и системе осуществления, хранения данных при сбоях сети и восстановлении работы серверов после отказов. Технический результат заключается в обеспечении высокой доступности сервиса хранения данных и достигается за счет резервирования информации, хранящейся на кластере. Постоянные дескрипторы запрашиваются клиентом после того, как установлен сеанс с файловым сервером. Запрос постоянного дескриптора содержит идентификатор дескриптора, сгенерированный клиентом. Сервер использует идентификатор дескриптора для соотнесения с информацией о состоянии. При сбое сеанса или восстановлении после отказа сервера и возобновлении соединения с клиентом идентификатор дескриптора используется для идентификации повторных запросов, которые в случае повторения могут создавать несогласованное состояние на сервере. Затем повторные запросы обрабатываются соответствующим образом. 3 н. и 7 з.п. ф-лы, 5 ил.
Description
Предшествующий уровень техники
[01] Серверные кластеры обычно используются для обеспечения восстановления после отказа и максимальной доступности информации для клиентов. Использование серверного кластера обеспечивает клиентам прозрачное восстановление после отказа так, что при любом сбое сервер остается прозрачным для приложений, требующих операций сервера на клиентах. Серверные кластеры могут быть полезны в совместно используемых файловых системах для обеспечения доступа нескольких клиентов в сети к файловой информации. Однако проблемы могут возникнуть, когда совместно используемая файловая система использует протокол с сопровождением состояния, такой как протокол блока серверных сообщений (SMB). Когда отказывает сервер в серверном кластере, некоторые протоколы с сопровождением состояния не обеспечивают способа для передачи состояния клиента с отказавшего сервера на альтернативный сервер. Кроме того, те протоколы доступа к файлам, которые обеспечивают сохранение некоторой информации о состоянии, не обеспечивают различающимся компонентам сохранение различающейся информации о состоянии.
[02] Именно в отношении этих и других соображений были выполнены данные варианты осуществления. Кроме того, хотя обсуждались относительно конкретные проблемы, следует понимать, что варианты осуществления не должны ограничиваться решением конкретных проблем, выявленных в уровне техники.
Сущность изобретения
[03] Данное краткое изложение сущности изобретения приведено, чтобы в упрощенной форме представить подборку концепций, которые дополнительно описаны ниже в разделе Подробное описание. Данное краткое изложение сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения и не предназначено для использования как помощь при определении объема заявленного изобретения.
[04] Описаны варианты осуществления, которые используют постоянные дескрипторы в совместно используемой файловой системе. Постоянные дескрипторы используются для сохранения состояния при сбоях сети и восстановлениях после отказа серверов. Постоянные дескрипторы запрашиваются клиентом после того, как установлен сеанс с файловым сервером. Запрос постоянного дескриптора содержит идентификатор дескриптора, сгенерированный клиентом. Сервер использует идентификатор дескриптора для установления соответствия с информацией о состоянии. При сбое сеанса или восстановления после отказа сервера и восстановлении соединения с клиентом, идентификатор дескриптора используется для идентификации повторных запросов, которые при повторе создают на сервере несогласованное состояние. Повторные запросы затем обрабатываются соответствующим образом.
[05] Варианты осуществления могут реализовываться в виде компьютерного процесса, компьютерной системы или промышленного изделия, такого как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может быть компьютерным носителем данных, который может быть считан компьютерной системой и на котором закодирована программа из компьютерных команд для выполнения компьютерного процесса. Компьютерный программный продукт также может быть сигналом, передающимся с помощью несущей, который считывается компьютерной системой и в котором закодирована программа из компьютерных команд для выполнения компьютерного процесса.
Краткое описание чертежей
[06] Неограничивающие и неисчерпывающие варианты осуществления описаны со ссылкой на следующие чертежи.
[07] На фиг.1 показана система, которая может использоваться для реализации вариантов осуществления.
[08] На фиг.2 показана блок-схема клиента и кластера файлового сервера, осуществляющих обмен данными с использованием протокола доступа к файлу в соответствии с некоторыми вариантами осуществления.
[09] На фиг.3 показан операционный поток для обеспечения защиты воспроизведения информации при восстановлении сервера после отказа в соответствии с некоторыми вариантами осуществления.
[10] На фиг.4 показан операционный поток для поддержания целостности файловой информации в соответствии с некоторыми вариантами осуществления.
[11] На фиг.5 приведена блок-схема вычислительной среды, подходящей для реализации вариантов осуществления.
Подробное описание
[12] Различные варианты осуществления более подробно описаны ниже со ссылкой на прилагаемые чертежи, которые составляют его часть и которые показывают конкретные примерные варианты осуществления. Тем не менее, варианты осуществления могут быть реализованы во многих других формах и не должны рассматриваться как ограничивающими вариантами осуществления, изложенными в данном документе; скорее, эти варианты осуществления представлены таким образом, чтобы данное описание являлось исчерпывающим и полным и полностью передавало специалистам в данной области техники объем вариантов осуществления. Варианты осуществления могут применяться как способы, системы или устройства. Соответственно, варианты осуществления могут принимать форму аппаратной реализации, полностью программной реализации или реализации, совмещающей программные и аппаратные аспекты. Нижеследующее подробное описание, следовательно, не должно пониматься в ограничивающем смысле.
[13] На фиг.1 показана система 100, которая может использоваться для реализации некоторых вариантов осуществления. Система 100 включает в себя клиенты 102 и 104 и серверный кластер 106. Клиенты 102 и 104 осуществляют связь с серверным кластером 106 через сеть 108. Серверный кластер 106 хранит информацию, к которой осуществляется доступ приложениями клиентов 102 и 104. Клиенты 102 и 104 устанавливают сеансы с кластером 106 для доступа к информации в кластере 106. Хотя на фиг.1 показаны только клиенты 102 и 104, осуществляющие связь с кластером 106, в других вариантах осуществления число клиентов, осуществляющих доступ к информации с серверного кластера 106, может быть больше двух.
[14] Как показано на фиг.1, серверный кластер 106 включает в себя серверы 106А, 106В, 106С, которые обеспечивают как максимальную доступность, так и резервирование информации, хранящейся на кластере 106. В вариантах осуществления кластер 106 имеет файловую систему, к которой клиенты 102 и 104 осуществляют доступ. Хотя на фиг.1 показаны три сервера, в других вариантах осуществления кластер 106 может включать в себя более трех серверов или менее трех серверов. В вариантах осуществления приложения клиентов 102 и 104 запрашивают файловую информацию из файловой системы и файловая информация, которая является прозрачной для приложения, извлекается из совместно используемой файловой системы на серверный кластер 106.
[15] В соответствии с одним вариантом осуществления серверы 106А, 106В и 106С используются для обеспечения постоянной доступности файловой системы, хранящейся на кластере 106. Это достигается путем использования компонентов клиентов 102 и 104 и серверов 106А, 106В и 106С для сохранения информации о состоянии, которая может использоваться для восстановления сеанса между клиентами 102 и 104 и кластером 106 при сбое сети 108 или отказе одного из серверов 106А, 106В и 106С. Как подробнее описано ниже, сохранение информации о состоянии обеспечивает клиентам 102 и 104 согласованный доступ к файлам и прозрачное восстановление после отказа для приложений, работающих на клиентах 102 и 104.
[16] В вариантах осуществления каждый сервер кластера 106, например 106А, 106В, 106С, обеспечивает доступ клиентов к файловой информации и выполнен с возможностью обеспечивать постоянную доступность файловой информации для клиентов. Чтобы проиллюстрировать один вариант осуществления, клиент 102 может послать запрос на установление сеанса с сервером кластера 106. Например, клиент 102 может установить сеанс с сервером 106A для доступа к совместно используемой файловой системе, хранящейся на серверном кластере 106. В качестве части процесса установления сеанса клиент 102 может использовать протокол доступа к файлу. В вариантах осуществления протокол доступа к файлу является версией сетевой файловой системы (NFS) или протоколом блока серверных сообщений (SMB).
[17] Установление сеанса может включать в себя обмен некоторым количеством согласовательных запросов и ответов, передаваемых между клиентом 102 и сервером 106A. В версиях протокола блока серверных сообщений (SMB) имеются специально определенные пакеты согласования, которые используются для согласования точной версии протокола, который будет использоваться в процессе сеанса, а также для объявления друг другу функциональных возможностей, например, как клиента 102, так и, например, сервера 106А. В одном варианте осуществления пакеты согласования могут содержать указание на то, что сервер 106A является частью кластера, например кластера 106. Это позволяет клиенту узнавать о том, что сервер 106 способен обеспечить согласованный доступ или, другими словами, возможности прозрачного восстановления после отказа.
[18] Продолжая пример выше, после того как сеанс установлен, клиент 102 может послать на сервер 106A сообщение, отформатированное в соответствии с протоколом доступа к файлу, на предмет постоянного дескриптора, чтобы осуществить доступ к файлу в файловой системе. Запрос постоянного дескриптора в вариантах осуществления указывает на то, что клиент хочет использовать возможности прозрачного восстановления после отказа, которые являются доступными в результате того, что сервер 106A является частью кластера 106. В вариантах осуществления запрос содержит идентификатор дескриптора, который является глобальным уникальным идентификатором.
[19] Сервер 106A принимает запрос постоянного дескриптора и сохраняет идентификатор дескриптора с информацией о состоянии сеанса с клиентом 102. Сохранение информации о состоянии может просто включать в себя сохранение идентификатора дескриптора файловым сервером и сохранение информации о состоянии в соответствии с идентификатором дескриптора. Как подробнее описано ниже, в некоторых вариантах осуществления различные типы информации о состоянии могут сохраняться с использованием отдельных компонентов, таких как фильтр. При этом в других вариантах осуществления информация, относящаяся к постоянным дескрипторам, реплицируется между узлами и не сохраняется в постоянном запоминающем устройстве в файловой системе. Однако в других вариантах осуществления информация, относящаяся к постоянным дескрипторам, как реплицируется между узлами, так и сохраняется в постоянном запоминающем устройстве в файловой системе.
[20] Сервер 106A посылает ответ клиенту 102, предоставляя постоянный дескриптор и доступ к файловой информации. После этого клиент 102 может продолжить посылать другие запросы для выполнения различных операций с файлом. Например, клиент 102 может послать запросы на чтение файловой информации, запись в файл, перечисление атрибутов файла, закрытие файла и запросить различные блокировки файла. Каждая из операций, запрошенных клиентом, может привести к обновлению информации о состоянии для гарантии того, что если клиент отключен, состояние клиента может быть восстановлено. Данное обновление может включать в себя сохранение дополнительной информации о состоянии совместно с идентификатором дескриптора.
[21] В какой-то момент клиент 102 может отключиться от сервера. Отключение может быть вызвано, например, сбоем сети или поломками. Как вариант отключение может произойти из-за отказа сервера 106A. В тех вариантах осуществления, которые включают в себя сбой сети, клиент 102 может обнаружить, что отключение произошло, и ждать, когда сеть станет доступной для восстановления соединения с сервером 106А. В других вариантах осуществления после того, как клиент 102 обнаруживает неисправность, он посылает запрос на восстановление соединения с кластером 106, который обеспечивает, чтобы сервер, обеспечивающий восстановление после отказа, обработал запрос на восстановление соединения.
[22] В любом случае клиент 102 посылает запрос на восстановление соединения. Запрос содержит идентификатор дескриптора. Сервер 106А или альтернативный сервер (106B или 106C) возвратит информацию о состоянии, основанную на идентификаторе дескриптора, восстановит предыдущее состояние с помощью информации о состоянии, а также пошлет клиенту ответ, указывающий, что восстановление соединения выполнено успешно. В некоторых вариантах осуществления восстановление соединения может оказаться невозможным в случае, если информация о предыдущем состоянии была потеряна или недоступна по другой причине. В данных ситуациях сервер может интерпретировать запрос на восстановление соединения как запрос на установление сеанса и ответить соответствующим образом.
[23] После того как сеанс восстановлен, клиент 102 посылает новые запросы доступа к файлу. В некоторых вариантах осуществления одним из новых запросов доступа к файлу могут быть повторы предыдущих запросов. Повторный запрос может быть такого типа, что при обработке сервером без обнаружения того, что это является повтором, может создать несогласованное состояние на сервере. Точный тип запроса зависит от того, как запросы обрабатываются протоколом, который используется для доступа к файлу. Например, в версии протокола блока серверных сообщений (SMB) осуществление блокировки диапазонов в байтах может запрашиваться и предоставляться на участках файла. Таким образом, если клиент посылает запрос на блокировку участка файла и запрос выполняется, но клиент не уведомляется об этом до отключения, клиент может повторить предыдущий запрос. После идентификации повторные запросы могут обрабатываться, чтобы избежать несогласованного состояния на сервере.
[24] В некоторых вариантах осуществления, чтобы обеспечить прозрачное восстановление после отказа для приложений клиента 102, может использоваться информация о состоянии, сохраняемая на клиенте 102. То есть сервер 106A (или сервер, обеспечивающий восстановление после отказа) может не отвечать за сохранение всей информации о состоянии, которая необходима, чтобы восстановить состояние после возобновления соединения. В некоторых вариантах осуществления за восстановление определенного состояния может отвечать клиент. Например, если запросы на считывание файловой информации были посланы перед отключением, сервер может не нести ответственность за сохранение информации о состоянии в отношении запросов на считывание. Когда происходит возобновление соединения, клиент может нести ответственность за повторные посылки запросов на считывание. Дополнительное описание вариантов осуществления, в которых информация о состоянии восстанавливается другими компонентами, описана более подробно ниже со ссылкой на фиг.2.
[25] Вышеприведенное описание является лишь одним примером того, как может работать вариант, показанный на фиг.1. Как подробнее описано ниже, варианты осуществления могут включать в себя другие этапы или операции. Это может быть реализовано с использованием любого соответствующего программного обеспечения и аппаратных компонентов или модулей.
[26] Теперь обратимся к фиг.2, где показана блок-схема среды 200 с клиентом 202, клиентом 204 и серверным кластером 206 с тремя серверами (сервер 1, сервер 2 и сервер 3). Также показано файловое хранилище 210, где файловая система хранит файловую информацию, и хранилище 212, где информация о состоянии может сохраняться на одном или более серверах из сервера 1, сервера 2 и сервера 3.
[27] Как показано на фиг.2, каждый из клиента 202 и клиента 204 содержит приложение, которое может запрашивать файловую информацию. Приложение может быть, например, текстовым приложением, приложением электронных таблиц, приложением браузера или любым другим приложением, которое запрашивает доступ к файлам. В варианте осуществления, показанном на фиг.2, файлы размещены в совместно используемой файловой системе, хранящейся в файловом хранилище 210. Каждый из клиента 202 и клиента 204 дополнительно содержит модуль переадресации запросов (редиректор), который перенаправляет запрос файлов со стороны приложений на файловый сервер, обеспечивающий доступ к общей файловой системе. Модули переадресации запросов обмениваются данными с файловыми серверами, используя протокол доступа к файлу. В некоторых вариантах осуществления протоколом доступа к файлу может быть версия NFS или протокола блока серверных сообщений (SMB). В целях иллюстрации фиг.2 будет описана в предположении, что модули переадресации запросов клиента 202 и клиента 204 обмениваются данными с файловыми серверами, используя версии протокола блока серверных сообщений, такого как SMB 2.0. Варианты осуществления, однако, не ограничиваются использованием протокола блока серверных сообщений.
[28] На фиг.2 показано, что каждый из сервера 1, сервера 2 и сервера 3 содержит файловый сервер. Как отмечалось выше, файловые серверы могут использовать версию протокола блока серверных сообщений для обмена данными с модулями переадресации запросов клиента 202 и клиента 204. Каждый из сервера 1, сервера 2 и сервера 3 также содержит фильтр возобновления, который используется в некоторых вариантах осуществления для сохранения информации о состояниях сеансов, установленных между модулем переадресации запросов и файловым сервером.
[29] Использование протокола блока серверных сообщений для установления сеанса между клиентом и сервером начинается с модуля переадресации запросов, например модуля переадресации запросов на клиенте 202, посылкой запроса согласования файловому серверу, такому как сервер 1 в серверном кластере 206. Модуль переадресации запросов и файловый сервер обмениваются пакетами согласований, чтобы согласовать версию блока серверных сообщений, которая будет использоваться для сеанса. Дополнительно, во время согласования можно также обмениваться информацией о функциональных возможностях. В одном варианте осуществления файловый сервер может включать в состав ответного пакета согласования, который посылается от файлового сервера клиенту, флажок функциональных возможностей для указания клиенту на то, что файловый сервер поддерживает использование постоянных дескрипторов. В некоторых вариантах осуществления это делается в ситуациях, в которых файловый сервер является частью кластера, который может обеспечить согласованный доступ для клиента, путем аварийного переключения на другой сервер в кластере. В других вариантах осуществления автономные серверы также могут иметь такую возможность для того, чтобы иметь возможность повторно подключиться к клиентам, когда происходит сбой сети.
[30] Когда согласование завершено, модуль переадресации запросов на компьютере клиента и файловый сервер устанавливают сеанс. Модуль переадресации запросов клиента может затем послать на файловый сервер запросы доступа к файлу. В одном варианте осуществления модуль переадресации запросов запрашивает постоянный дескриптор. Версии протокола блока серверных сообщений обеспечивают долговременные дескрипторы, которые могут использоваться отключенными клиентами для повторного возобновления соединения. Тем не менее, они не обязательно обеспечивают сохранение и восстановление состояния после повторного подключения клиента. Таким образом, в вариантах осуществления модуль переадресации запросов может послать запрос на долговременный дескриптор, содержащий некоторую дополнительную метку и/или индикатор, указывающий на то, что модуль переадресации запросов клиента запрашивает постоянный дескриптор. Дополнительно, клиент может содержать идентификатор дескриптора, который может использоваться для идентификации повторных запросов после возобновления соединения. Ниже приведен один вариант осуществления структуры запроса долговременного дескриптора, которая может использоваться в версии протокола блока серверных сообщений для запроса постоянного дескриптора:
struct SMB2_DURABLE_HANDLE_ EQUEST_V2 {
ULONG Flags;
GUID Handheld; // клиент предоставляет уникальный идентификатор
// (ID) для данного дискриптора (используется для обнаружения
// повторных запросов).
ULONG Timeout; // время ожидания в секундах
ULONG Reserved; // должен задаваться как ноль }.
[31] В вариантах осуществления в ответ на запрос файловый сервер на сервере 1 отвечает выдачей постоянного дескриптора и предоставлением файлового идентификатора модулю переадресации запросов на клиенте 202. Тогда модуль переадресации запросов клиента имеет возможность доступа к информации из файла, которому соответствует постоянный дескриптор и идентификатор файла. В некоторых вариантах осуществления модуль переадресации запросов может запросить постоянный дескриптор для каталога. То есть вместо постоянного дескриптора, соответствующего отдельному файлу, дескриптор может соответствовать каталогу.
[32] В дополнение к файловому серверу на сервере 1, который выдает постоянный дескриптор, файловый сервер также сохраняет информацию о состоянии в запоминающем устройстве 212. Информация о состоянии может сохраняться в привязке к идентификатору дескриптора, сгенерированному модулем переадресации запросов, а также может сохраняться в привязке к идентификатору файла, предоставленному модулю переадресации запросов на клиенте 202. Как подробнее описано ниже, файловый сервер может непосредственно сохранять информацию о состоянии как информацию 216 о состоянии файлового сервера. В других вариантах осуществления файловый сервер может использовать фильтр возобновления для сохранения информации о состоянии. Однако в других вариантах осуществления файловый сервер может непосредственно сохранять информацию о состоянии, а также использовать фильтр возобновления для сохранения другой информации о состоянии.
[33] После того как взаимодействие завершено, модуль переадресации запросов посылает запросы на доступ к файлу используя, например, версию протокола блока серверных сообщений. В некоторых вариантах осуществления файловый сервер сохраняет информацию о состоянии для каждого из запросов, принятых от модуля переадресации запросов клиента. В некоторый момент времени может произойти разъединение между клиентом 202 и сервером 1, например в результате сбоя сети или отказа сервера 1. Клиент 202 может переустановить соединение с сервером 1, если отказ произошел из-за сбоя сети или после отказа произошло восстановление сервера (одного из сервера 2 или сервера 3). Как часть процесса переустановления соединения, клиент 202 может послать запрос на переустановление соединения, который будет содержать ранее предоставленный идентификатор дескриптора, а также идентификатор файла, предоставленный файловым сервером при согласовании первоначального сеанса. Поскольку информация о состоянии доступна в запоминающем устройстве 212, которое доступно для всех серверов в серверном кластере 206, сервер, обеспечивающий восстановление после отказа, может идентифицировать информацию о предыдущем состоянии, основываясь на идентификаторе дескриптора и/или идентификаторе файла, предоставляемых клиентом в запросе на переустановление соединения. В данных вариантах осуществления, когда клиент пытается переустановить соединение с сервером 1, файловый сервер на сервере 1 также может осуществить доступ к информации о состоянии, содержащейся в запоминающем устройстве 212, чтобы восстановить предыдущее состояние сеанса с клиентом.
[34] Как было отмечено выше, в некоторых вариантах осуществления различные компоненты среды 200 отвечают за сохранение различных типов информации о состоянии, чтобы обеспечить восстановление состояния клиентов, которые отключены. Как показано на фиг.2, каждый из файловых серверов содержит фильтр возобновления. Фильтр возобновления используется в вариантах осуществления для сохранения информации о состоянии для восстановления состояния, когда клиент повторно возобновляет соединение. Фильтр возобновления не зависит от конкретного протокола доступа к файлу, используемого файловым сервером. В вариантах осуществления, чтобы сохранять информацию о конкретном состоянии, файловый сервер сначала регистрируется в фильтре возобновления. После регистрации файловый сервер может передавать информацию о состоянии на фильтр возобновления, который сохраняет информацию о состоянии как информацию о состоянии фильтра 214 возобновления в запоминающем устройстве 212. В дополнении к информации о состоянии фильтра 214 возобновления сервер может сохранять отдельную информацию о состоянии, показанную как информация 216 о состоянии файлового сервера, в запоминающем устройстве 212. В вариантах осуществления другая информация о состоянии может сохраняться в других местах хранилища, нежели информация о состоянии фильтра 214 возобновления. Информация 216 о состоянии файлового сервера и информация о состоянии фильтра 214 возобновления могут сохраняться любым подходящим способом, например, в файлах регистрации. Как подробнее описано ниже, в вариантах осуществления типы информации о состоянии, которые хранятся в фильтре возобновления, являются общей информацией, в то время как информация о сервере является более конкретной информацией о состоянии.
[35] В некоторых вариантах осуществления клиент также является ответственным за сохранение некоторой информации о состоянии. Как показано на фиг.2, клиенты 202 и 204 сохраняют информацию о состоянии, которая используется для восстановления состояния, когда соединение с клиентом переустановлено после отключения. В данных вариантах осуществления возможна некоторая экономия, если клиент восстанавливает состояние, вместо того чтобы файловый сервер сохранял всю информацию о состоянии для восстановления состояния клиента, когда соединение с ним переустанавливается после отключения. Например, если требуется, чтобы файловый сервер хранил всю информацию о состоянии, то каждый раз, когда от модуля переадресации запросов принимается запрос на выполнение некоторых операций с файлом, требуется, чтобы файловый сервер хранил некоторую информацию о запросах или операциях. Требование, чтобы модуль переадресации запросов клиента сохранял часть информации о состоянии, уменьшает стоимость файлового сервера, который должен сохранять информацию о состоянии для каждого запроса или операции, принимаемой от клиента.
[36] Как можно понять, информация о состоянии, которая хранится на компонентах среды 200, зависит от различных проектных соображений по разработкам. Например, может иметься некоторая достаточно важная информация, которая потребует от файлового сервера гарантий, что в случае если информация о состоянии является внутренне согласованной и постоянно доступной, информация должна сохраняться файловым сервером и/или фильтром возобновления. Например, для того чтобы сервер обеспечивал режимы совместного использования и гарантировал, чтобы новые клиенты, запрашивающие доступ, не мешали доступу существующих клиентов, информация о состоянии должна храниться на сервере в соответствии с вариантами осуществления. Прочая информация о состоянии может быть не такой критической, и определенная несогласованность в информации может допускаться. Например, клиент может иметь локально кэшированные свойства файла. Кэшированные свойства файла могут быть запрошены вновь после того, как клиент восстановит соединение с файловым сервером после отключения.
[37] В одном варианте осуществления, в котором протокол блока серверных сообщений используется для осуществления связи между модулем переадресации запросов и файловым сервером, протокол SMB может обеспечивать, чтобы конкретные состояния сохранялись различными компонентами, показанными в среде 200. В одном варианте осуществления операции, доступные с использованием протокола SMB, разделены на три группы. Информация о состоянии, связанная с каждой группой, сохраняется различными компонентами.
[38] Первую группу можно отнести, в целом, к неидемпотентным операциям, что означает, что если эти операции повторно выполняются, например повторно применяются к файлу после того, как уже применялись перед отключением клиента, это создает несогласованное состояние на файловом сервере. В версиях протокола SMB, блокировки диапазонов байтов представляют пример операций, требующих обнаружения повторного выполнения, потому что вышеуказанные блокировки заносятся в стек и извлекаются из стека. Другие примеры включают в себя добавление записей и открытий/созданий, которые могут менять состояние диска, например, за счет создания новых файлов или перезаписи существующих файлов. В вариантах осуществления состояние, соответствующее данным типам операций, сохраняется файловым сервером, потому что файловый сервер должен распознавать, что эти операции выполняются повторно. В варианте осуществления, показанном на фиг.2, состояние, связанное с этими операциями, будет сохраняться файловыми серверами, которые находятся в каждом из сервера 1, сервера 2 и сервера 3, в хранилище 212, в качестве части информации 216 о состоянии файлового сервера. Идентификатор дескриптора, предоставленный клиенту во время согласования сеанса, как описано выше, используется в некоторых вариантах осуществления для идентификации того, что запрос является повтором предыдущего запроса.
[39] Вторая группа операций относится к операциям открытия данных. Такими операциями могут быть запросы на чтение, запись, исполнение или удаление информации в файле. Чтобы иметь возможность реализовывать режимы совместного использования и предотвращать воздействие других клиентов на уже имеющихся клиентов, состояние, относящееся к операциям открытия, должно сохраняться на стороне сервера в соответствии с вариантами осуществления. Состояние, относящееся к операциям открытия, также сохраняется на стороне сервера, чтобы блокировать локальные операции от воздействия с постоянными дескрипторами. Например, предотвращается изменение или иное воздействие со стороны программ, исполняемых на узлах кластера, в отношении дескрипторов, зарезервированных для клиентов. В вариантах осуществления состояние, относящееся к этим типам операций, сохраняется фильтром возобновления. Как отмечено выше, фильтр возобновления в вариантах осуществления не является специализированным для протокола SMB, но может также использоваться, когда файловый сервер использует другой протокол доступа к файлам, такой как NFS. В варианте осуществления, показанном на фиг.2, фильтр возобновления на каждом из сервера 1, сервера 2 и сервера 3 сохраняет информацию о состоянии для операций открытия в хранилище 212 как часть информации о состоянии фильтра 214 возобновления.
[40] Третья группа операций включает в себя операции, которые при повторном применении на сервере не изменяют конечного состояния сервера. Они могут быть отнесены к идемпотентным операциям. Некоторые операции из этой группы включают в себя, но не в ограничительном смысле, считывания, записи без добавлений, удаления, переименования, операции задания метаданными и операции запросов метаданных. Состояние аренды также может сохраняться клиентом и не требует сохранения сервером. В вариантах осуществления аренда является механизмом, который разработан, чтобы позволить клиентам динамически менять свою стратегию буферизации согласованным образом для увеличения производительности и снижения нагрузки на сеть. Производительность сети для удаленных операций с файлами может увеличиваться, если клиент способен локально буферизовать файловые данные, что уменьшает или исключает необходимость посылать или принимать сетевые пакеты. Клиенту может не требоваться записывать информацию в файл на удаленном сервере, если клиент подтверждает, что никакой другой клиент не осуществляет доступа к данным. Схожим образом, клиент может буферизовать данные при опережающем считывании из удаленного файла в случае, если клиент подтверждает, что никакой другой клиент не записывает данные в удаленный файл.
[41] В соответствии с вариантами осуществления состояние аренды не нуждается в постоянном поддержании на сервере, потому что фильтр возобновления блокирует все операции создания для данного файла, в то время как клиенты возобновляют свои дескрипторы после восстановления после отказа. Это неявным образом обеспечивает гарантию того, что аренды дескрипторов никогда не будут потеряны во время процесса восстановления после отказа, если клиенты переустанавливают соединение/возобновляют свои дескрипторы в течение периода отсрочки. Другими словами, клиенты всегда получают назад свои аренды дескрипторов во время фазы возобновления. Более того, эксклюзивные аренды, такие как аренды чтение/запись и чтение/запись/дескриптор в каждый момент времени предоставляются только одному клиенту. Это означает, что отсутствуют другие открытия данных для файла со стороны любого другого клиента. Так, во время восстановления после отказа, поскольку фильтр возобновления не разрешает новые операции создания в отношении файла, пока клиент, имеющий эксклюзивную аренду, не возобновит все свои дескрипторы, существует гарантия того, что клиент получит обратно свою эксклюзивную аренду. Совместно используемые аренды, которые не требуют подтверждения, такие как аренда чтения, могут утрачиваться в любое время без ведома либо сервера, либо фильтра возобновления, поскольку используемая файловая система разрешает продолжение операции, вызвавшей нарушение. Для таких аренд клиент в вариантах осуществления предполагает, что аренда нарушается после восстановления после отказа, и очищает свой кэш для предотвращения считывания устаревших данных. Состояние для операций в третьей группе может, следовательно, быть восстановлено клиентом без какой-либо дополнительной поддержки со стороны сервера. В варианте осуществления, показанном на фиг.2, модули переадресации запросов на клиентах 202 и 204 сохраняют информацию о состоянии для третьей группы операций.
[42] В процессе работы среда 200 позволяет приложениям на клиентах 202 и 204 запрашивать доступ к файлам, которые хранятся в файловом запоминающем устройстве 210 в совместно используемой файловой системе. Приложения могут прозрачным образом запрашивать файловую информацию. Модули переадресации запросов клиентов устанавливают сеанс с одним из серверов в кластере 206, как описано выше, запрашивая постоянный дескриптор, так что модуль переадресации запросов может вновь подсоединиться и восстановить сеанс, если произошло отключение. Файловый сервер сохраняет информацию о состоянии в хранилище 212 либо непосредственно как информацию 216 о состоянии файлового сервера, либо как информацию 214 о состоянии фильтра возобновления, используя фильтр возобновления. В некоторых вариантах осуществления клиент также сохраняет некоторую информацию о состоянии. В случае отключения модуль переадресации запросов может запросить возобновление соединения с файловым сервером или с сервером, обеспечивающим восстановление после отказа. Информация о состоянии, сохраненная на стороне сервера, например, в хранилище 212, и на стороне клиента, может затем использоваться для восстановления предыдущего состояния клиента. Все это происходит прозрачным образом для приложений на клиентах 202 и 204.
[43] Как можно понять, вышеприведенное описание среды 200 не предназначено для ограничения вариантов осуществления, описанных в данном документе. Описание на фиг.2 предназначено только для иллюстрации реализации некоторых вариантов осуществления. В других вариантах осуществления другие типы информации о состоянии могут храниться на других компонентах среды 200. Кроме того, как указано выше, могут быть использованы другие протоколы доступа к файлам, которые могут определять тип сохраняемой информации о состоянии, а также то, какой компонент хранит информацию о состоянии. Таким образом, варианты осуществления не ограничены тем, что показано и описано на фиг.2
[44] Приведенное ниже описание на фиг.3 и 4 сделано с использованием протокола SMB в качестве протокола доступа к файлам. Однако варианты осуществления им не ограничены. Любой протокол доступа к файлам, включая другие версии протокола блока серверных сообщений (SMB) или сетевую файловую систему (NFS), могут использоваться в вариантах осуществления в качестве протокола доступа к файлам. Протокол SMB используется в описании просто для удобства и простоты иллюстрации.
[45] Фиг.3 и 4 иллюстрируют операционные потоки 300 и 400 в соответствии с вариантами осуществления. Операционные потоки 300 и 400 могут выполняться в любой приемлемой компьютерной среде. Например, операционные потоки могут выполняться системами и окружениями так, как показано на фиг.1 и 2. Следовательно, описание операционных потоков 300 и 400 может относиться, по меньшей мере, к одному из компонентов на фиг.1 и 2. Однако любая такая ссылка на компоненты на фиг.1 и 2 делается только в описательных целях, и следует понимать, что реализации по фиг.1 и 2 не являются ограничивающими программными средствами для операционных потоков 300 и 400.
[46] Кроме того, хотя операционные потоки 300 и 400 показаны и описаны последовательно в определенном порядке, в других вариантах осуществления операции могут выполняться в другом порядке, несколько раз и/или параллельно. Кроме того, одна или более операций могут пропускаться или объединяться в некоторых вариантах осуществления.
[47] Операционный поток 300 иллюстрирует этапы обеспечения защиты от повторения на сервере при восстановлении после отказа. В вариантах осуществления поток 300, показанный на фиг.3, может выполняться файловым сервером, то есть выполняться сервером, который является частью серверного кластера, например сервером 1, сервером 2 и сервером 3 кластера 206 (фиг.2). Поток 300 начинается с операции 302, где принимается запрос на подсоединение к файловому серверу. Запрос, принятый в операции 302, является запросом на установление сеанса с файловым сервером для доступа к файловой информации, сохраняемой в совместно используемой файловой системе, доступной через файловый сервер. Запрос может быть послан клиентом, например клиентами 202 и 204 (фиг.2). После операции 302 поток 300 переходит к операции 304, где посылается ответ, указывающий, что сеанс был установлен. В некоторых вариантах осуществления запрос и ответ, посланные в операциях 302 и 304, могут быть несколькими сообщениями, которыми обмениваются клиент и сервер для согласования сеанса. Обмен сообщениями может включать в себя обмен функциональными возможностями, включая возможность файлового сервера обеспечить постоянные дескрипторы.
[48] Операционный поток переходит от операции 304 к операции 306, где принимается второй запрос на постоянный дескриптор. Запрос посылается клиентом и содержит идентификатор дескриптора, сгенерированный клиентом. Идентификатор дескриптора используется в вариантах осуществления сервером для сохранения информации о состоянии относительно сеанса, установленного между клиентом и файловым сервером. В рамках сохранения информации о состоянии в вариантах осуществления поток 300 может включать в себя операцию 308, в которой файловый сервер регистрируется в фильтре возобновления для того, чтобы сохранить некоторую информацию о состоянии. В вариантах осуществления фильтр возобновления располагается между уровнем протокола и используемой системой хранения и может использоваться в вариантах осуществления для сохранения информации о состоянии сеанса, установленного между файловым сервером и клиентом.
[49] В операции 310 информация о состоянии сохраняется в соответствии с идентификатором дескриптора. Информация о состоянии может сохраняться в любой подходящей форме, например в таблице, базе данных или файле регистрации. Запоминающее устройство является постоянным и доступным файловому серверу, чтобы при необходимости восстановить состояние. Информация о состоянии может сохраняться непосредственно файловым сервером. В других вариантах осуществления поток 300 включает в себя операцию 312, в которой для сохранения информации о состоянии используется фильтр возобновления. Как указано выше, для сохранения информации о состоянии в некоторых вариантах осуществления файловый сервер может регистрироваться в фильтре возобновления.
[50] Поток 300 переходит от операции 312 к операции 314, где клиенту посылается ответ, предоставляющий доступ к файлу с использованием постоянного дескриптора. Ответ содержит идентификатор файла, который в ответе обеспечивается файловым сервером и также сохраняется в привязке к информации о состоянии, сохраненной в операции 310, и опционально в операции 312.
[51] Поток 300 затем переходит к операции 316, где в необязательном порядке принимается ряд запросов доступа к файлу. Запросы доступа к файлу могут включать в себя перечень файловых операций, которые надо выполнить при работе с файлом, связанным с постоянным дескриптором. Операции могут быть, например, такие как открытие для чтения/записи данных, перечисление атрибутов, запросы аренд для обеспечения возможности локального кэширования данных, или другие операции доступа к файлу. Различные состояния, связанные с получением запросов доступа к файлу в операции 316, могут обновляться в операции 318. То есть когда эти запросы удовлетворяются для клиента, информация о состоянии, сохраненная в предыдущих операциях (310 и 312), обновляется для отображения дополнительной информации о состоянии.
[52] После операции 318 существует ряд дополнительных операций, определенных в блоке 319. Эти операции могут выполняться в результате отключения клиента от файлового сервера. Как можно понять, в ситуациях, когда файловый сервер, который первоначально выполнял операции 302-318, из-за отказа оказывается недоступным, дополнительные операции в блоке 319 выполняются сервером, обеспечивающим восстановление после отказа. В других вариантах осуществления, в которых отказ является результатом проблемы с сетью, операции в блоке 319 выполняются тем же файловым сервером.
[53] В операции 320 принимается запрос на восстановление соединения. Запрос включает в себя дескриптор файла, ранее предоставленный файловым сервером, а также идентификатор дескриптора, который клиент использовал при запросе постоянного дескриптора. Файловый сервер, который принимает запрос в операции 320, может использовать идентификатор дескриптора и идентификатор файла для поиска информации о состоянии. Как указано выше, эта операция может включать в себя использование фильтра возобновления для извлечения информации о состоянии, которая ранее была сохранена с помощью фильтра возобновления.
[54] Поток 300 переходит от операции 320 к операции 322, где информация о состоянии используется для переустановления соединения с клиентом и его предыдущего состояния. После операции 322 поток переходит к операции 324, где принимаются новые запросы доступа к файлу. Операция 324, следовательно, может включать в себя ряд операций, где каждая включает в себя прием от клиента запроса доступа к файлу.
[55] Некоторые из запросов, принятых в операции 324, могут быть повторами предыдущих запросов, посланных до прекращения соединения между файловым сервером и клиентом. В результате некоторые из этих операций при их повторном применении на файловом сервере могут создать несогласованное состояние. В операции 326 обнаруживаются новые запросы доступа к файлу, являющиеся повторами. В вариантах осуществления эта операция может включать в себя идентификацию запросов доступа к файлу при помощи идентификатора дескриптора, ранее предоставленного клиентом. После того как в операции 326 обнаруживается повтор, запросы соответствующим образом обрабатываются в операции 328. То есть если бы повторные операции создали несогласованное состояние на файловом сервере, они бы могли быть проигнорированы при условии успешного выполнения предыдущей операции. Альтернативно, если предыдущая операция не была успешно выполнена, то может применяться повторная операция. Затем поток 300 заканчивается на 330.
[56] Операционный поток 400 иллюстрирует этапы осуществления поддержки согласованной доступности. В вариантах осуществления поток 400 может выполняться модулями переадресации запросов на клиентах, таких как клиенты 202 и 204 (фиг.2), которые осуществляют взаимодействие с файловым сервером для доступа к файлам в совместно используемой файловой системе. В вариантах осуществления клиент осуществляет взаимодействие с файловым сервером, используя протокол доступа к файлам, такой как версия протокола SMB или версия NFS.
[57] Поток 400 начинается с операции 402, где посылается запрос на подсоединение к файловому серверу. Запрос, посланный при операции 402, является запросом на установление сеанса с файловым сервером для доступа к файловой информации, хранящейся в совместно используемой файловой системе, доступной через файловый сервер. Запрос может посылаться файловым сервером на сервер, например сервер 1, сервер 2 и сервер 3, являющийся частью серверного кластера (фиг.2). Запрос форматируется в соответствии с протоколом доступа к файлам, таким как версия протокола SMB или NFS.
[58] После операции 402 поток 400 переходит к операции 404, где принимается ответ, указывающий на то, что сеанс установлен. В некоторых вариантах осуществления операции 402 и 404 могут быть частью ряда сообщений, которыми обмениваются клиент и сервер для согласования сеанса. Обмен сообщениями может включать в себя обмен функциональными возможностями, включающими в себя возможность файлового сервера обеспечивать постоянные дескрипторы.
[59] Операционный поток переходит от операции 404 к операции 406, где посылается запрос на постоянный дескриптор. В результате процесса согласования (операции 402 и 404) клиент может быть уведомлен о том, что файловый сервер способен обеспечить постоянные дескрипторы. Чтобы гарантировать, что состояния приложений на клиенте могут быть восстановлены после разъединения и возобновления соединения, клиент может запросить постоянный дескриптор в операции 406. Запрос включает в себя идентификатор дескриптора, сгенерированный клиентом.
[60] Поток 400 переходит от операции 406 к операции 408, где принимается ответ, предоставляющий доступ к файлу при помощи постоянного дескриптора. Ответ содержит идентификатор файла, который в ответе предоставляется файловым сервером.
[61] В операции 410 информация о состоянии в некоторых вариантах осуществления сохраняется клиентом. Информация о состоянии сохраняется в привязке к идентификатору дескриптора и идентификатору файла, обеспечиваемым в принятом ответе, в котором предоставляется постоянный дескриптор. Информация о состоянии может сохраняться в любой подходящей форме, например в таблице, базе данных или файле регистрации. Хранение является постоянным и доступным клиенту для восстановления состояния, когда необходимо. Как можно понять, информация о состоянии, сохраняемая клиентом, является в вариантах осуществления информацией о состоянии для операций, которые могут безопасно воспроизводиться на файловом сервере без создания несогласованного состояния на файловом сервере. Воспроизведенными операциями могут быть, например, аренда для локального кэширования данных, чтения, записи, удаления и учета метаданных.
[62] Поток 400 переходит от операции к операции 410 412, где клиент посылает ряд запросов доступа к файлу. Операция 412, таким образом, может включать в себя посылку нескольких запросов на выполнение файловых операций согласно вариантам осуществления. Вслед за операцией 412 выполняется операция 414, где информация о состоянии клиента обновляется. Понятно, что операция 414 может происходить много раз, а именно каждый раз, когда при выполнении операции 412 клиент посылает запрос доступа к файлу.
[63] От операции 414 поток переходит к операции 416, где обнаруживается отключение. Обнаружение может происходить вследствие истечения лимита времени ожидания, уведомления о событии или некоторыми другими путями. После операции 416 посылается запрос на восстановление соединения и переустановление сеанса, ранее установленного с файловым сервером при выполнении операции 418. Запрос включает в себя дескриптор файла, ранее предоставленный файловым сервером, а также идентификатор дескриптора, который использовался клиентом при запросе постоянного дескриптора.
[64] Поток 400 переходит от операции 418 к операции 420, где определяется, что восстановление соединения прошло успешно. После операции 420 поток переходит к операции 422, где информация о состоянии, сохраненная на клиенте, используется для восстановления предыдущего состояния. Операция 422 может содержать передачу ряда различных запросов, включая чтение, запись, перечисление, запросы на блокировки или другие операции для восстановления предыдущего состояния. Поток переходит от операции 422 к операции 424, где клиент посылает новые запросы на доступ к файлу. Поток заканчивается на этапе 426.
[65] Фиг.5 иллюстрирует общую компьютерную систему 500, которая может использоваться для реализации вариантов осуществления, описанных в данном документе. Компьютерная система 500 является лишь одним примером вычислительных сред и не предназначается для введения каких-либо ограничений как на объем использования, так и на функциональные возможности компьютера и сетевых архитектур. Не следует также рассматривать компьютерную систему 500 как имеющую какую-либо зависимость или требования, относящиеся к любому одному или комбинации компонентов, проиллюстрированных в примере компьютерной системы 500. В вариантах осуществления система 500 может использоваться как клиент и/или как сервер, описанные выше со ссылкой на фиг.1.
[66] В своей самой базовой конфигурации система 500 обычно включает в себя, по меньшей мере, один процессорный блок 502 и память 504. В зависимости от точной конфигурации и типа вычислительного устройства память 504 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ, флэш-память и т.д.) или некоторой комбинацией этих двух. Данная наиболее общая конфигурация показана на фиг.5 пунктирной линией 506. В вариантах осуществления системная память 504 сохраняет приложения, такие как приложение 523, которое запрашивает доступ к файловой информации. Системная память 504 также включает в себя модуль 522 переадресации запросов, который перехватывает запрос и передает его на файловый сервер в соответствии с вариантами осуществления.
[67] Термин «считываемый компьютером носитель», используемый в данном документе, может включать в себя компьютерные носители данных. Компьютерные носители данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Системная память 504, съемное запоминающее устройство и несъемное запоминающее устройство 508 являются примерами компьютерных носителей данных (то есть устройств памяти). В вариантах осуществления данные, такие как, например, информация 520 о состоянии, сохраняются. Компьютерные носители данных могут включать в себя, но не в ограничительном смысле, ОЗУ, ПЗУ, электрически стираемое ПЗУ (EEPROM), флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться для хранения информации и к которому может быть осуществлен доступ компьютерной системой 500. Любой такой компьютерный носитель данных может быть частью компьютерной системы 500. Компьютерная система 500 может также иметь устройство(а) 514 ввода, такое как клавиатура, мышь, перо, устройство ввода звука, устройство сенсорного ввода и т.д. Устройство(а) 516 вывода, такое как дисплей, динамики, принтер и т.д., также могут быть включены в ее состав. Вышеупомянутые устройства являются примерами, но и другие могут использоваться.
[68] Термин «считываемый компьютером носитель», используемый в данном документе, может также включать в себя коммуникационные среды. Коммуникационные среды могут воплощать команды, считываемые компьютером структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой механизм передачи, и включают в себя любые среды доставки информации. Термин «модулированный сигнал данных» может описывать сигнал, который имеет одну или большее число характеристик, устанавливаемых или меняющихся таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения коммуникационные среды могут включать в себя проводные среды передачи данных, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (РЧ), инфракрасные и другие беспроводные среды.
[69] В данном описании была сделана ссылка на «один вариант осуществления» или «вариант осуществления», что означает, что конкретный описанный признак, структура или характеристика включена в состав, по меньшей мере, одного варианта осуществления. Таким образом, использование таких фраз может означать больше чем просто один вариант осуществления. Кроме того, описанные признаки, структуры или характеристики могут быть объединены любым подходящим образом в одном или более вариантах осуществления.
[70] Специалист в соответствующей области техники, однако, может признать, что варианты осуществления могут быть реализованы на практике без одной или нескольких конкретных деталей или с помощью других способов, ресурсов, материалов и т.д. В других случаях общеизвестные структуры, ресурсы или операции не были показаны или подробно не описаны, только чтобы избежать аспектов, затрудняющих понимание вариантов осуществления.
[71] Хотя примерные варианты осуществления и приложения были проиллюстрированы и описаны, должно быть понятно, что варианты осуществления не ограничиваются точной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации, очевидные для специалистов в данной области, могут быть сделаны в компоновке, работе и деталях способов и систем, описанных в данном документе, без отхода от объема заявленных вариантов осуществления.
Claims (10)
1. Компьютерно-реализуемый способ обеспечения согласованной доступности для клиентов, осуществляющих доступ к совместно используемой файловой системе на серверном кластере, содержащий этапы, на которых:
принимают на файловом сервере запрос на подсоединение к файловому серверу для доступа к файловой информации в совместно используемой файловой системе, причем данный запрос форматирован в соответствии с протоколом доступа к файлам, при этом файловый сервер является одним из множества серверов в серверном кластере;
посылают ответ от файлового сервера, причем данным ответом устанавливается сеанс с клиентом для предоставления доступа к файловой информации в совместно используемой файловой системе, при этом ответ форматируется в соответствии с упомянутым протоколом доступа к файлам;
принимают на файловом сервере запрос на открытие постоянного дескриптора на файловом сервере для доступа клиента к файлу в совместно используемой файловой системе, причем этот запрос содержит идентификатор дескриптора, предоставленный клиентом;
в ответ на прием данного запроса посредством файлового сервера:
сохраняют первую информацию о состоянии для сеанса в привязке к идентификатору дескриптора, и
посылают на клиент ответ, разрешающий доступ к файлу;
после отсоединения клиента принимают запрос на переустановление сеанса с использованием постоянного дескриптора; и
переустанавливают сеанс, используя первую информацию о состоянии.
принимают на файловом сервере запрос на подсоединение к файловому серверу для доступа к файловой информации в совместно используемой файловой системе, причем данный запрос форматирован в соответствии с протоколом доступа к файлам, при этом файловый сервер является одним из множества серверов в серверном кластере;
посылают ответ от файлового сервера, причем данным ответом устанавливается сеанс с клиентом для предоставления доступа к файловой информации в совместно используемой файловой системе, при этом ответ форматируется в соответствии с упомянутым протоколом доступа к файлам;
принимают на файловом сервере запрос на открытие постоянного дескриптора на файловом сервере для доступа клиента к файлу в совместно используемой файловой системе, причем этот запрос содержит идентификатор дескриптора, предоставленный клиентом;
в ответ на прием данного запроса посредством файлового сервера:
сохраняют первую информацию о состоянии для сеанса в привязке к идентификатору дескриптора, и
посылают на клиент ответ, разрешающий доступ к файлу;
после отсоединения клиента принимают запрос на переустановление сеанса с использованием постоянного дескриптора; и
переустанавливают сеанс, используя первую информацию о состоянии.
2. Способ по п.1, в котором первая информация о состоянии включает в себя состояние операции, которая в случае, если она повторно посылается клиентом, приводит к завершению работы файловым сервером в несогласованном состоянии.
3. Способ по п.1, дополнительно содержащий этап, на котором:
после переустановления сеанса принимают новый запрос от клиента, причем этот запрос содержит идентификатор дескриптора.
после переустановления сеанса принимают новый запрос от клиента, причем этот запрос содержит идентификатор дескриптора.
4. Способ по п.1, в котором отсоединение клиента происходит по причине отказа файлового сервера и переустановление соединения выполняется вторым файловым сервером в серверном кластере.
5. Машиночитаемый носитель, содержащий машиноисполняемые команды, которыми при их исполнении процессором осуществляется способ поддержания согласованного состояния, содержащий этапы, на которых:
посылают посредством клиента запрос на подсоединение к серверу для доступа к файловой информации, причем этот запрос форматируется в соответствии с протоколом доступа к файлам;
принимают ответ от сервера, причем данным ответом устанавливается сеанс с клиентом для доступа к файловой информации на сервере, при этом ответ форматируется в соответствии с упомянутым протоколом доступа к файлам;
посылают запрос на открытие постоянного дескриптора на сервере для доступа клиента к файлу на сервере, причем этот запрос включает в себя идентификатор дескриптора, предоставленный клиентом;
принимают на клиенте ответ, предоставляющий доступ к файлу;
обнаруживают, что клиент отсоединен от сервера,
посылают запрос на переустановление сеанса с использованием постоянного дескриптора, причем запрос на переустановление сеанса включает в себя идентификатор дескриптора;
определяют, что сеанс переустановлен; и
посылают новый запрос.
посылают посредством клиента запрос на подсоединение к серверу для доступа к файловой информации, причем этот запрос форматируется в соответствии с протоколом доступа к файлам;
принимают ответ от сервера, причем данным ответом устанавливается сеанс с клиентом для доступа к файловой информации на сервере, при этом ответ форматируется в соответствии с упомянутым протоколом доступа к файлам;
посылают запрос на открытие постоянного дескриптора на сервере для доступа клиента к файлу на сервере, причем этот запрос включает в себя идентификатор дескриптора, предоставленный клиентом;
принимают на клиенте ответ, предоставляющий доступ к файлу;
обнаруживают, что клиент отсоединен от сервера,
посылают запрос на переустановление сеанса с использованием постоянного дескриптора, причем запрос на переустановление сеанса включает в себя идентификатор дескриптора;
определяют, что сеанс переустановлен; и
посылают новый запрос.
6. Система для обеспечения согласованной доступности файловой информации, содержащая:
первый сервер, который содержит:
по меньшей мере один процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
первый файловый сервер, выполненный с возможностью:
принимать запрос на открытие постоянного дескриптора для доступа клиента к файлу на первом файловом сервере, причем данный запрос включает в себя идентификатор дескриптора, предоставленный клиентом;
сохранять первую информацию о состоянии в привязке к идентификатору дескриптора;
регистрироваться в фильтре ключа возобновления для сохранения второй информации о состоянии в привязке к коду восстановления; и
посылать на клиент ответ, разрешающий доступ к файлу;
фильтр ключа возобновления, выполненный с возможностью:
принимать запрос на регистрацию от первого файлового сервера;
сохранять вторую информацию о состоянии с ключом возобновления; и
посылать вторую информацию о состоянии на первый файловый сервер в ответ на запрос о второй информации состоянии от первого файлового сервера.
первый сервер, который содержит:
по меньшей мере один процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
первый файловый сервер, выполненный с возможностью:
принимать запрос на открытие постоянного дескриптора для доступа клиента к файлу на первом файловом сервере, причем данный запрос включает в себя идентификатор дескриптора, предоставленный клиентом;
сохранять первую информацию о состоянии в привязке к идентификатору дескриптора;
регистрироваться в фильтре ключа возобновления для сохранения второй информации о состоянии в привязке к коду восстановления; и
посылать на клиент ответ, разрешающий доступ к файлу;
фильтр ключа возобновления, выполненный с возможностью:
принимать запрос на регистрацию от первого файлового сервера;
сохранять вторую информацию о состоянии с ключом возобновления; и
посылать вторую информацию о состоянии на первый файловый сервер в ответ на запрос о второй информации состоянии от первого файлового сервера.
7. Система по п.6, дополнительно содержащая:
по меньшей мере один клиент, который содержит:
по меньшей мере один дополнительный процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
модуль переадресации доступа к файлу, выполненный с возможностью:
посылать запрос на открытие постоянного дескриптора на первом сервере для доступа клиента к файлу на первом сервере, причем данный запрос содержит идентификатор дескриптора;
принимать ответ, разрешающий доступ к файлу;
обнаруживать, что клиент отсоединен от первого файлового сервера;
посылать запрос на переустановление сеанса с использованием постоянного дескриптора, причем запрос на переустановление сеанса содержит идентификатор дескриптора;
определять, что сеанс был переустановлен; и
посылать новый запрос.
по меньшей мере один клиент, который содержит:
по меньшей мере один дополнительный процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
модуль переадресации доступа к файлу, выполненный с возможностью:
посылать запрос на открытие постоянного дескриптора на первом сервере для доступа клиента к файлу на первом сервере, причем данный запрос содержит идентификатор дескриптора;
принимать ответ, разрешающий доступ к файлу;
обнаруживать, что клиент отсоединен от первого файлового сервера;
посылать запрос на переустановление сеанса с использованием постоянного дескриптора, причем запрос на переустановление сеанса содержит идентификатор дескриптора;
определять, что сеанс был переустановлен; и
посылать новый запрос.
8. Система по п.6, в которой первый файловый сервер является одним из множества серверов в серверном кластере, при этом второй сервер из этого множества серверов в серверном кластере содержит:
по меньшей мере один дополнительный процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
второй файловый сервер, выполненный с возможностью:
принимать запрос на переустановление сеанса с использованием постоянного дескриптора, при этом ранее сеанс был установлен первым файловым сервером.
по меньшей мере один дополнительный процессор, выполненный с возможностью исполнять машиноисполняемые команды;
по меньшей мере один машиночитаемый носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении по меньшей мере одним процессором обеспечивают:
второй файловый сервер, выполненный с возможностью:
принимать запрос на переустановление сеанса с использованием постоянного дескриптора, при этом ранее сеанс был установлен первым файловым сервером.
9. Система по п.8, в которой второй сервер из упомянутого множества серверов дополнительно выполнен с возможностью:
использовать информацию о состоянии первого файлового сервера для восстановления предыдущего состояния сеанса.
использовать информацию о состоянии первого файлового сервера для восстановления предыдущего состояния сеанса.
10. Система по п.7, в которой модуль переадресации доступа к файлу использует версию протокола блока серверных сообщений (SMB) для запрашивания файловых операций от первого файлового сервера и первый файловый сервер использует эту версию протокола SMB для обмена данными с модулем переадресации доступа к файлу.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/174,271 | 2011-06-30 | ||
US13/174,271 US8856582B2 (en) | 2011-06-30 | 2011-06-30 | Transparent failover |
PCT/US2012/041703 WO2013003006A2 (en) | 2011-06-30 | 2012-06-08 | Transparent failover |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2013158710A RU2013158710A (ru) | 2015-07-10 |
RU2595903C2 true RU2595903C2 (ru) | 2016-08-27 |
Family
ID=47391942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2013158710/08A RU2595903C2 (ru) | 2011-06-30 | 2012-06-08 | Прозрачное восстановление после отказа |
Country Status (11)
Country | Link |
---|---|
US (2) | US8856582B2 (ru) |
EP (2) | EP3051420B1 (ru) |
JP (2) | JP5974086B2 (ru) |
KR (1) | KR101923245B1 (ru) |
CN (1) | CN103636165B (ru) |
AU (1) | AU2012275906B2 (ru) |
BR (1) | BR112013033646A2 (ru) |
CA (1) | CA2840444A1 (ru) |
MX (1) | MX2013015359A (ru) |
RU (1) | RU2595903C2 (ru) |
WO (1) | WO2013003006A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2749754C1 (ru) * | 2020-09-23 | 2021-06-16 | Владимир Саулович Айзин | Резервированное серверное устройство |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332526B2 (en) | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US9251194B2 (en) * | 2012-07-26 | 2016-02-02 | Microsoft Technology Licensing, Llc | Automatic data request recovery after session failure |
US9961125B2 (en) | 2013-07-31 | 2018-05-01 | Microsoft Technology Licensing, Llc | Messaging API over HTTP protocol to establish context for data exchange |
US10440066B2 (en) | 2013-11-15 | 2019-10-08 | Microsoft Technology Licensing, Llc | Switching of connection protocol |
US20150142982A1 (en) * | 2013-11-15 | 2015-05-21 | Microsoft Corporation | Preservation of connection session |
GB2520343A (en) * | 2013-11-19 | 2015-05-20 | Ibm | A system having a cluster of communication controllers and a method for modification of the latter |
US10313221B1 (en) * | 2014-01-28 | 2019-06-04 | Sprint Communication Company L.P. | Endpoint monitoring for a messaging framework |
US10264071B2 (en) * | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
US10372685B2 (en) | 2014-03-31 | 2019-08-06 | Amazon Technologies, Inc. | Scalable file storage service |
US9665432B2 (en) * | 2014-08-07 | 2017-05-30 | Microsoft Technology Licensing, Llc | Safe data access following storage failure |
US9847918B2 (en) | 2014-08-12 | 2017-12-19 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
GB2531341B (en) * | 2014-10-17 | 2016-10-12 | Ibm | Reconnection of a client to a server in a transaction processing server cluster |
US10348837B2 (en) | 2014-12-16 | 2019-07-09 | Citrix Systems, Inc. | Methods and systems for connecting devices to applications and desktops that are receiving maintenance |
KR101627256B1 (ko) * | 2015-01-08 | 2016-06-03 | (주)넷텐션 | 다수 분산서버를 구비한 네트워크 통신의 세션 이양 방법 |
WO2016123744A1 (zh) * | 2015-02-03 | 2016-08-11 | 华为技术有限公司 | 网络文件系统中处理i/o请求的方法及设备 |
US10303660B2 (en) | 2015-11-12 | 2019-05-28 | Microsoft Technology Licensing, Llc | File system with distributed entity state |
US10038752B2 (en) * | 2015-12-07 | 2018-07-31 | Dell Products L.P. | Method and system for execution of client-initiated operations on file handles in a distributed server system |
US9946726B2 (en) * | 2015-12-07 | 2018-04-17 | Dell Products L.P. | Method and system for execution of disconnection from and reconnection to persistent handles |
US10009428B2 (en) * | 2015-12-07 | 2018-06-26 | Dell Products L.P. | Method and system for reconnecting server message block (SMB) clients to persistent file handles |
US20170230457A1 (en) * | 2016-02-05 | 2017-08-10 | Microsoft Technology Licensing, Llc | Idempotent Server Cluster |
CN106095606B (zh) * | 2016-06-12 | 2019-07-23 | 北京三快在线科技有限公司 | 一种服务器的软件故障处理方法和装置 |
CN106571968B (zh) * | 2016-11-10 | 2020-02-21 | 华为技术有限公司 | 一种业务切换方法和系统 |
CN106557390A (zh) * | 2016-11-15 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种分布式存储文件连续访问方法及系统 |
CN108352995B (zh) * | 2016-11-25 | 2020-09-08 | 华为技术有限公司 | 一种smb业务故障处理方法和存储设备 |
US10095700B2 (en) * | 2017-01-18 | 2018-10-09 | HGST, Inc. | Persistent file handle object container memory expiry |
US11165868B2 (en) * | 2017-03-30 | 2021-11-02 | Microsoft Technology Licensing, Llc | Systems and methods for achieving session stickiness for stateful cloud services with non-sticky load balancers |
WO2018235224A1 (ja) * | 2017-06-22 | 2018-12-27 | 株式会社東芝 | ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム |
US11327857B2 (en) * | 2018-04-04 | 2022-05-10 | Netapp Inc. | Faster replay of metadata and data operations using inode number based dependency graph |
US10884863B2 (en) | 2018-07-20 | 2021-01-05 | Red Hat, Inc. | Client session reclaim for a distributed storage system |
US10866870B2 (en) | 2019-01-31 | 2020-12-15 | Hewlett Packard Enterprise Development Lp | Data store and state information handover |
CN112749142B (zh) * | 2019-10-31 | 2023-09-01 | 上海哔哩哔哩科技有限公司 | 句柄管理方法和系统 |
CN112948158A (zh) * | 2021-02-19 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种文件共享方法、装置、设备及计算机可读存储介质 |
US11888905B2 (en) * | 2021-08-06 | 2024-01-30 | Meta Platforms, Inc. | Systems and methods for preserving media streams |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2365983C2 (ru) * | 2003-12-15 | 2009-08-27 | Майкрософт Корпорейшн | Система и способ для службы распространения программного обеспечения |
RU2368944C2 (ru) * | 2004-09-15 | 2009-09-27 | Самсунг Электроникс Ко., Лтд. | Средство хранения информации для хранения метаданных, поддерживающих множество языков, системы и способы обработки метаданных |
RU2380749C2 (ru) * | 2003-10-24 | 2010-01-27 | Майкрософт Корпорейшн | Способ и система для транзакционных файловых операций по сети |
Family Cites Families (242)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS571681A (en) | 1980-05-24 | 1982-01-06 | Makita Electric Works Ltd | Holder for attitude of nail of nail driver |
US4399504A (en) | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
JPS6019341Y2 (ja) | 1982-01-29 | 1985-06-11 | エスエムケイ株式会社 | ロツク付コネクタ |
JPS613496U (ja) | 1984-06-13 | 1986-01-10 | 株式会社東芝 | タ−ビンミサイルの防護装置 |
US4825354A (en) | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4736369A (en) | 1986-06-13 | 1988-04-05 | International Business Machines Corp. | Adaptive session-level pacing |
JPS6327678A (ja) | 1986-07-21 | 1988-02-05 | 清水建設株式会社 | 鉄板サイロの構築方法 |
US4780821A (en) | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4914570A (en) | 1986-09-15 | 1990-04-03 | Counterpoint Computers, Inc. | Process distribution and sharing system for multiple processor computer system |
JPS6361148U (ru) | 1986-10-08 | 1988-04-22 | ||
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
JPS63205747A (ja) | 1987-02-13 | 1988-08-25 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 通信方法及びデータ処理システム |
US5202971A (en) | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
US4791566A (en) | 1987-03-27 | 1988-12-13 | Digital Equipment Corporation | Terminal device session management protocol |
JPS6461148A (en) | 1987-08-31 | 1989-03-08 | Nec Corp | Flow control system |
US5008853A (en) | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US4891785A (en) | 1988-07-08 | 1990-01-02 | Donohoo Theodore J | Method for transferring data files between computers in a network response to generalized application program instructions |
US5124909A (en) | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
JPH02101847U (ru) | 1989-01-24 | 1990-08-14 | ||
CA1323448C (en) | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
US5109519A (en) | 1989-03-28 | 1992-04-28 | Wang Laboratories, Inc. | Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer |
US5560008A (en) | 1989-05-15 | 1996-09-24 | International Business Machines Corporation | Remote authentication and authorization in a distributed data processing system |
US5113519A (en) | 1989-05-15 | 1992-05-12 | International Business Machines Corporation | Maintenance of file attributes in a distributed data processing system |
US5218696A (en) | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
US5261051A (en) | 1989-08-14 | 1993-11-09 | Microsoft Corporation | Method and system for open file caching in a networked computer system |
US5265261A (en) | 1989-08-14 | 1993-11-23 | Microsoft Corporation | Method and system for network communications using raw mode protocols |
JP2575543B2 (ja) | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
US5130986A (en) | 1990-04-27 | 1992-07-14 | At&T Bell Laboratories | High speed transport protocol with two windows |
JPH0675890B2 (ja) | 1990-06-25 | 1994-09-28 | 河村化工株式会社 | 釣竿の製造方法 |
JPH04172039A (ja) | 1990-11-05 | 1992-06-19 | Matsushita Electric Ind Co Ltd | パケット通信装置 |
JPH0589048A (ja) | 1991-09-25 | 1993-04-09 | Nec Corp | コマンド処理方式 |
JPH05143488A (ja) | 1991-11-18 | 1993-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 複数コマンドの転送方法 |
JPH0619771A (ja) | 1992-04-20 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | 異種のクライアントによる共用ファイルのファイル管理機構 |
US5349642A (en) | 1992-11-03 | 1994-09-20 | Novell, Inc. | Method and apparatus for authentication of client server communication |
US5452447A (en) | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
US5493728A (en) | 1993-02-19 | 1996-02-20 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
US5491752A (en) | 1993-03-18 | 1996-02-13 | Digital Equipment Corporation, Patent Law Group | System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens |
JPH0675890U (ja) | 1993-04-02 | 1994-10-25 | 市光工業株式会社 | コーナリングランプ点灯回路 |
US5522042A (en) | 1994-01-28 | 1996-05-28 | Cabletron Systems, Inc. | Distributed chassis agent for distributed network management |
US5588117A (en) | 1994-05-23 | 1996-12-24 | Hewlett-Packard Company | Sender-selective send/receive order processing on a per message basis |
US5513314A (en) | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
JPH08314784A (ja) * | 1995-05-19 | 1996-11-29 | Toshiba Corp | ファイル管理装置 |
US5628005A (en) | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
US5826027A (en) | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
US5764887A (en) | 1995-12-11 | 1998-06-09 | International Business Machines Corporation | System and method for supporting distributed computing mechanisms in a local area network server environment |
US6343313B1 (en) | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
US6438691B1 (en) | 1996-04-01 | 2002-08-20 | Hewlett-Packard Company | Transmitting messages over a network |
RU2118051C1 (ru) | 1996-04-30 | 1998-08-20 | Лихачев Александр Геннадьевич | Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители |
US6434120B1 (en) | 1998-08-25 | 2002-08-13 | Cisco Technology, Inc. | Autosensing LMI protocols in frame relay networks |
US5933602A (en) | 1996-07-31 | 1999-08-03 | Novell, Inc. | System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network |
US6208952B1 (en) | 1996-10-24 | 2001-03-27 | Microsoft Corporation | Method and system for delayed registration of protocols |
JPH10133971A (ja) | 1996-10-25 | 1998-05-22 | Nec Corp | ファイル転送処理方式 |
US6125122A (en) | 1997-01-21 | 2000-09-26 | At&T Wireless Svcs. Inc. | Dynamic protocol negotiation system |
FR2759518B1 (fr) | 1997-02-07 | 1999-04-23 | France Telecom | Procede et dispositif d'allocation de ressources dans un reseau numerique de transmission par paquets |
US5987621A (en) | 1997-04-25 | 1999-11-16 | Emc Corporation | Hardware and software failover services for a file server |
US5931913A (en) | 1997-05-07 | 1999-08-03 | International Business Machines Corporation | Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol |
JP3341637B2 (ja) * | 1997-06-20 | 2002-11-05 | 日本電気株式会社 | トランザクション処理システムにおける端末状態管理方法及びコンピュータ読み取り可能な記録媒体 |
US6219799B1 (en) | 1997-07-01 | 2001-04-17 | Unisys Corporation | Technique to support pseudo-names |
US6092199A (en) | 1997-07-07 | 2000-07-18 | International Business Machines Corporation | Dynamic creation of a user account in a client following authentication from a non-native server domain |
JPH1155314A (ja) | 1997-07-30 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | データ転送制御方法 |
US6275953B1 (en) | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6247139B1 (en) | 1997-11-11 | 2001-06-12 | Compaq Computer Corp. | Filesystem failover in a single system image environment |
US6085247A (en) | 1998-06-08 | 2000-07-04 | Microsoft Corporation | Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers |
US6131125A (en) | 1997-11-14 | 2000-10-10 | Kawasaki Lsi U.S.A., Inc. | Plug-and-play data cable with protocol translation |
US6516351B2 (en) | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
US7010532B1 (en) | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
US6243862B1 (en) | 1998-01-23 | 2001-06-05 | Unisys Corporation | Methods and apparatus for testing components of a distributed transaction processing system |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
JP3506920B2 (ja) | 1998-08-25 | 2004-03-15 | 日本電信電話株式会社 | 全命令トレースデータの2次記憶装置への格納競合防止方法 |
US6230190B1 (en) * | 1998-10-09 | 2001-05-08 | Openwave Systems Inc. | Shared-everything file storage for clustered system |
US6401123B1 (en) | 1998-11-24 | 2002-06-04 | International Busines Machines Corporation | Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol |
US6883000B1 (en) | 1999-02-12 | 2005-04-19 | Robert L. Gropper | Business card and contact management system |
US6324581B1 (en) | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
US6453354B1 (en) | 1999-03-03 | 2002-09-17 | Emc Corporation | File server system using connection-oriented protocol and sharing data sets among data movers |
US20040139004A1 (en) | 1999-04-08 | 2004-07-15 | Aceinc Pty Ltd. | Secure online commerce transactions |
US6938096B1 (en) | 1999-04-12 | 2005-08-30 | Softricity, Inc. | Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port |
US7562129B1 (en) | 1999-04-15 | 2009-07-14 | Alcatel-Lucent Canada Inc. | Subscription management system for data communication network |
US6349350B1 (en) | 1999-05-04 | 2002-02-19 | International Business Machines Corporation | System, method, and program for handling failed connections in an input/output (I/O) system |
WO2000068856A2 (en) | 1999-05-11 | 2000-11-16 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US7318102B1 (en) | 1999-05-24 | 2008-01-08 | Hewlett-Packard Development Company, L.P. | Reliable datagram |
US6430691B1 (en) | 1999-06-21 | 2002-08-06 | Copytele, Inc. | Stand-alone telecommunications security device |
US6490666B1 (en) | 1999-08-20 | 2002-12-03 | Microsoft Corporation | Buffering data in a hierarchical data storage environment |
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
JP2001077844A (ja) | 1999-09-06 | 2001-03-23 | Axle Linkage Labo Inc | ネットワーク制御方法、サーバ装置、クライアント装置、遊技台装置用ネットワーク制御方法、ホールサーバコンピュータ装置、遊技台装置 |
JP2001094613A (ja) | 1999-09-21 | 2001-04-06 | Canon Inc | 通信制御装置、方法および記録媒体 |
US6775707B1 (en) | 1999-10-15 | 2004-08-10 | Fisher-Rosemount Systems, Inc. | Deferred acknowledgment communications and alarm management |
US6910082B1 (en) | 1999-11-18 | 2005-06-21 | International Business Machines Corporation | Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server |
US6658476B1 (en) | 1999-11-29 | 2003-12-02 | Microsoft Corporation | Client-server protocol support list for standard request-response protocols |
US7050984B1 (en) | 1999-12-22 | 2006-05-23 | Ge Medical Systems, Inc. | Integrated interactive service to a plurality of medical diagnostic systems |
US7111060B2 (en) | 2000-03-14 | 2006-09-19 | Aep Networks, Inc. | Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser |
US6883015B1 (en) | 2000-03-30 | 2005-04-19 | Cisco Technology, Inc. | Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications |
US6993587B1 (en) | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US7225244B2 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US6452903B1 (en) | 2000-05-31 | 2002-09-17 | Fujitsu Network Communications, Inc. | Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis |
US6961858B2 (en) | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
EP1170975B1 (en) | 2000-07-05 | 2004-05-19 | Roke Manor Research Limited | Method of operating a packet reassembly buffer and network router |
US7693976B2 (en) | 2000-07-11 | 2010-04-06 | Ciena Corporation | Granular management of network resources |
US6349250B1 (en) | 2000-10-26 | 2002-02-19 | Detroit Diesel Corporation | Clear historic data from a vehicle data recorder |
US20020062379A1 (en) | 2000-11-06 | 2002-05-23 | Widegren Ina B. | Method and apparatus for coordinating quality of service requirements for media flows in a multimedia session with IP bearer services |
JP2002183000A (ja) | 2000-12-11 | 2002-06-28 | Hitachi Ltd | ネットワークを介するデータ参照方法及びそのシステム |
US20020073211A1 (en) | 2000-12-12 | 2002-06-13 | Raymond Lin | System and method for securely communicating between application servers and webservers |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
KR100750735B1 (ko) | 2001-02-03 | 2007-08-22 | 삼성전자주식회사 | 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템 |
US7055036B2 (en) | 2001-04-06 | 2006-05-30 | Mcafee, Inc. | System and method to verify trusted status of peer in a peer-to-peer network environment |
US8051212B2 (en) | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
US20030093678A1 (en) | 2001-04-23 | 2003-05-15 | Bowe John J. | Server-side digital signature system |
JP2002328828A (ja) | 2001-04-27 | 2002-11-15 | Fujitsu Ltd | ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ |
JP3797236B2 (ja) | 2001-04-27 | 2006-07-12 | 日本ビクター株式会社 | 記録再生装置および記録再生方法 |
US6640226B1 (en) | 2001-06-19 | 2003-10-28 | Informatica Corporation | Ranking query optimization in analytic applications |
US7409420B2 (en) | 2001-07-16 | 2008-08-05 | Bea Systems, Inc. | Method and apparatus for session replication and failover |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
JP2003069610A (ja) | 2001-08-22 | 2003-03-07 | Canon Inc | 通信装置、その制御方法、通信システム、及び制御プログラム |
JP3663627B2 (ja) | 2001-10-18 | 2005-06-22 | ソニー株式会社 | 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム |
US7136982B2 (en) | 2001-11-09 | 2006-11-14 | Danger, Inc. | Apparatus and method for allocating memory blocks |
DE60214590T2 (de) | 2001-12-07 | 2007-09-13 | Research In Motion Ltd., Waterloo | Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen |
US7394764B2 (en) | 2001-12-14 | 2008-07-01 | Sasken Communication Technologies Limited | Technique for improving transmission control protocol performance in lossy networks |
US7313816B2 (en) | 2001-12-17 | 2007-12-25 | One Touch Systems, Inc. | Method and system for authenticating a user in a web-based environment |
JP3969089B2 (ja) | 2001-12-25 | 2007-08-29 | 株式会社日立製作所 | 階層構成サーバシステム |
US7111035B2 (en) | 2001-12-26 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Fault tolerance associations for IP transport protocols |
US20030140129A1 (en) | 2002-01-24 | 2003-07-24 | Noam Livnat | Installing communication protocol in a handheld device |
US20030154398A1 (en) | 2002-02-08 | 2003-08-14 | Eaton Eric Thomas | System for providing continuity between session clients and method therefor |
US6829606B2 (en) | 2002-02-14 | 2004-12-07 | Infoglide Software Corporation | Similarity search engine for use with relational databases |
US7178050B2 (en) | 2002-02-22 | 2007-02-13 | Bea Systems, Inc. | System for highly available transaction recovery for transaction processing systems |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7388866B2 (en) | 2002-03-07 | 2008-06-17 | Broadcom Corporation | System and method for expediting upper layer protocol (ULP) connection negotiations |
US7668306B2 (en) | 2002-03-08 | 2010-02-23 | Intel Corporation | Method and apparatus for connecting packet telephony calls between secure and non-secure networks |
JP2003281091A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | 同時受付制御システム |
JP4315696B2 (ja) | 2002-03-29 | 2009-08-19 | 富士通株式会社 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
CA2385344A1 (en) | 2002-05-08 | 2003-11-08 | Bell Globemedia Inc. | Data transfer method and apparatus |
JP2003337717A (ja) * | 2002-05-22 | 2003-11-28 | Nec Corp | オンライントランザクション処理の障害時復旧同期システム |
JP4000905B2 (ja) | 2002-05-22 | 2007-10-31 | ソニー株式会社 | 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム |
WO2003105439A1 (en) | 2002-06-10 | 2003-12-18 | Caplin Systems Limited | Resource management |
US20040003210A1 (en) | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination |
US7290141B2 (en) | 2002-06-27 | 2007-10-30 | Nokia, Inc. | Authentication of remotely originating network messages |
AU2003246189A1 (en) | 2002-07-01 | 2004-01-19 | Kabushiki Kaisha Toshiba | Seamless system, recording medium, computer system processing continuation method |
CA2393502A1 (en) | 2002-07-15 | 2004-01-15 | Mark J. Frazer | System and method for reliable transport in a computer network |
US20040019660A1 (en) | 2002-07-24 | 2004-01-29 | Sandhya E. | Lock holding multi-threaded processes for distibuted data systems |
US6829473B2 (en) | 2002-07-25 | 2004-12-07 | Utstarcom, Inc. | Roaming and hand-off support for prepaid billing for wireless data networks |
US6928577B2 (en) | 2002-07-29 | 2005-08-09 | Eternal Systems, Inc. | Consistent message ordering for semi-active and passive replication |
US7386855B2 (en) | 2002-08-12 | 2008-06-10 | Ntt Docomo, Inc. | Application mobility service |
US20040032876A1 (en) | 2002-08-19 | 2004-02-19 | Ajay Garg | Selection of transmission channels |
JP3846384B2 (ja) | 2002-08-28 | 2006-11-15 | ブラザー工業株式会社 | 端末装置、接続制御方法、接続制御用プログラム及び記録媒体 |
US6957367B2 (en) | 2002-08-30 | 2005-10-18 | Hewlett-Packard Development Company L.P. | System and method for controlling activity of temporary files in a computer system |
US7109430B2 (en) | 2002-11-05 | 2006-09-19 | Emrise Corporation | Low profile rotary switch with detent in the bushing |
US7386889B2 (en) | 2002-11-18 | 2008-06-10 | Trusted Network Technologies, Inc. | System and method for intrusion prevention in a communications network |
US7475142B2 (en) | 2002-12-06 | 2009-01-06 | Cisco Technology, Inc. | CIFS for scalable NAS architecture |
US7421502B2 (en) | 2002-12-06 | 2008-09-02 | International Business Machines Corporation | Method and system for storage-aware flow resource management |
US7664991B1 (en) | 2002-12-17 | 2010-02-16 | Symantec Operating Corporation | System and method for distributed file system I/O recovery |
US7290051B2 (en) | 2003-01-09 | 2007-10-30 | Sun Microsystems, Inc. | Method and apparatus for hardware implementation independent verification of network layers |
JP3999135B2 (ja) | 2003-01-24 | 2007-10-31 | 株式会社エヌ・ティ・ティ・ドコモ | 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体 |
US7571463B1 (en) | 2003-01-24 | 2009-08-04 | Nortel Networks Limited | Method an apparatus for providing a scalable and secure network without point to point associations |
US7151939B2 (en) | 2003-02-18 | 2006-12-19 | Qualcomm Incorporated | Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7490152B2 (en) | 2003-04-11 | 2009-02-10 | Alcatel-Lucent Usa Inc. | Version caching mechanism |
US7339885B2 (en) | 2003-06-05 | 2008-03-04 | International Business Machines Corporation | Method and apparatus for customizable surveillance of network interfaces |
US20040255202A1 (en) | 2003-06-13 | 2004-12-16 | Alcatel | Intelligent fault recovery in a line card with control plane and data plane separation |
US7363629B2 (en) | 2003-06-19 | 2008-04-22 | International Business Machines Corporation | Method, system, and program for remote resource management |
US7693998B2 (en) | 2003-06-30 | 2010-04-06 | Microsoft Corporation | System and method for message-based scalable data transport |
US7698115B2 (en) | 2003-06-30 | 2010-04-13 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US7526640B2 (en) | 2003-06-30 | 2009-04-28 | Microsoft Corporation | System and method for automatic negotiation of a security protocol |
US20050015511A1 (en) | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
JP4229774B2 (ja) | 2003-07-11 | 2009-02-25 | 日本電信電話株式会社 | セッション制御プログラムと通信端末装置 |
US7296264B2 (en) | 2003-07-18 | 2007-11-13 | Bea Systems, Inc. | System and method for performing code completion in an integrated development environment |
JP4490917B2 (ja) | 2003-07-24 | 2010-06-30 | パナソニック株式会社 | ファイル管理方法及び情報処理装置 |
US8028078B2 (en) | 2003-08-07 | 2011-09-27 | Teamon Systems, Inc. | Communications system including protocol interface device providing enhanced operating protocol selection features and related methods |
CN100547583C (zh) | 2003-08-14 | 2009-10-07 | 甲骨文国际公司 | 数据库的自动和动态提供的方法 |
US7870268B2 (en) | 2003-09-15 | 2011-01-11 | Intel Corporation | Method, system, and program for managing data transmission through a network |
US20050091226A1 (en) | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
US7539722B2 (en) | 2003-10-24 | 2009-05-26 | Microsoft Corporation | Method and system for accessing a file |
US7673066B2 (en) | 2003-11-07 | 2010-03-02 | Sony Corporation | File transfer protocol for mobile computer |
JP4836432B2 (ja) | 2003-11-17 | 2011-12-14 | 株式会社リコー | 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体 |
US7188273B2 (en) | 2003-11-24 | 2007-03-06 | Tsx Inc. | System and method for failover |
US20050111030A1 (en) | 2003-11-25 | 2005-05-26 | Berkema Alan C. | Hard copy imaging systems, print server systems, and print server connectivity methods |
FI20031779A0 (fi) | 2003-12-05 | 2003-12-05 | Nokia Corp | Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa |
US7177941B2 (en) | 2003-12-11 | 2007-02-13 | International Business Machines Corporation | Increasing TCP re-transmission process speed |
US7383483B2 (en) | 2003-12-11 | 2008-06-03 | International Business Machines Corporation | Data transfer error checking |
US7243284B2 (en) | 2003-12-11 | 2007-07-10 | International Business Machines Corporation | Limiting number of retransmission attempts for data transfer via network interface controller |
US20050177635A1 (en) | 2003-12-18 | 2005-08-11 | Roland Schmidt | System and method for allocating server resources |
US7698361B2 (en) | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
US7493394B2 (en) | 2003-12-31 | 2009-02-17 | Cisco Technology, Inc. | Dynamic timeout in a client-server system |
US7383463B2 (en) | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
EP1728249B1 (en) | 2004-03-17 | 2008-08-27 | Koninklijke Philips Electronics N.V. | Method and device for scanning a disc-shaped information storage medium |
US7444536B1 (en) | 2004-04-16 | 2008-10-28 | Sun Microsystems, Inc. | RMI-IIOP request failover mechanism |
US7627627B2 (en) | 2004-04-30 | 2009-12-01 | Hewlett-Packard Development Company, L.P. | Controlling command message flow in a network |
US20050246803A1 (en) | 2004-04-30 | 2005-11-03 | Spencer Andrew M | Peripheral device for processing data from a computing device |
JP2005321953A (ja) | 2004-05-07 | 2005-11-17 | Hitachi Ltd | ストレージ制御装置、その動作プログラム、及びアクセス制御方法 |
JP2005322016A (ja) | 2004-05-10 | 2005-11-17 | Yokogawa Electric Corp | サーバ装置および情報配信方法 |
US7380080B2 (en) | 2004-05-17 | 2008-05-27 | Hewlett-Packard Development Company, L.P. | Calculating unneeded data storage credits for a data transmission to a pair of storage devices |
US7487353B2 (en) | 2004-05-20 | 2009-02-03 | International Business Machines Corporation | System, method and program for protecting communication |
US7330910B2 (en) | 2004-05-20 | 2008-02-12 | International Business Machines Corporation | Fencing of resources allocated to non-cooperative client computers |
US7434087B1 (en) | 2004-05-21 | 2008-10-07 | Sun Microsystems, Inc. | Graceful failover using augmented stubs |
US7080173B2 (en) | 2004-05-27 | 2006-07-18 | Microsoft Corporation | Reducing information reception delays |
US20060059118A1 (en) | 2004-08-10 | 2006-03-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a behavior based algorithm |
US8023417B2 (en) | 2004-08-30 | 2011-09-20 | International Business Machines Corporation | Failover mechanisms in RDMA operations |
US7418709B2 (en) | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
US7418712B2 (en) | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7428655B2 (en) | 2004-09-08 | 2008-09-23 | Hewlett-Packard Development Company, L.P. | Smart card for high-availability clustering |
US20060067244A1 (en) | 2004-09-30 | 2006-03-30 | Microsoft Corporation | Registration identifier reuse |
US7451347B2 (en) | 2004-10-08 | 2008-11-11 | Microsoft Corporation | Failover scopes for nodes of a computer cluster |
JP4398843B2 (ja) | 2004-10-13 | 2010-01-13 | 日本放送協会 | 配信サーバ及び配信プログラム |
CN1767472A (zh) * | 2004-10-27 | 2006-05-03 | 乐金电子(天津)电器有限公司 | 家庭网络系统 |
US8156049B2 (en) | 2004-11-04 | 2012-04-10 | International Business Machines Corporation | Universal DRM support for devices |
US7457722B1 (en) | 2004-11-17 | 2008-11-25 | Symantec Operating Corporation | Correlation of application instance life cycle events in performance monitoring |
JP4451293B2 (ja) * | 2004-12-10 | 2010-04-14 | 株式会社日立製作所 | 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法 |
US8522293B2 (en) | 2004-12-15 | 2013-08-27 | Time Warner Cable Enterprises Llc | Method and apparatus for high bandwidth data transmission in content-based networks |
US8515490B2 (en) | 2004-12-30 | 2013-08-20 | Alcatel Lucent | Method and apparatus for providing same session switchover between end-user terminals |
WO2006084503A1 (en) | 2005-02-08 | 2006-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | On-demand multi-channel streaming session over packet-switched networks |
US7743245B2 (en) | 2005-03-10 | 2010-06-22 | Intel Corporation | Security protocols on incompatible transports |
US7453879B1 (en) | 2005-04-04 | 2008-11-18 | Sun Microsystems, Inc. | Method and apparatus for determining the landing zone of a TCP packet |
US20060281525A1 (en) | 2005-05-17 | 2006-12-14 | Milo Borissov | Slot type game with player input opportunity |
US8332526B2 (en) | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
EP1727055B1 (en) | 2005-05-25 | 2016-09-07 | Microsoft Technology Licensing, LLC | Data communication coordination with sequence numbers |
EP1727056B1 (en) | 2005-05-25 | 2008-11-05 | Microsoft Corporation | Data communication protocol |
JP2007058506A (ja) * | 2005-08-24 | 2007-03-08 | Ricoh Co Ltd | 文書管理サーバ、文書管理システム、及び、文書管理プログラムとその記録媒体 |
GB0519246D0 (en) | 2005-09-21 | 2005-10-26 | Ibm | A method, apparatus and computer program for handling web server failure |
RU2313824C2 (ru) | 2005-09-26 | 2007-12-27 | Михаил Васильевич Беляев | Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса |
US8108548B2 (en) | 2005-12-22 | 2012-01-31 | Microsoft Corporation | Methodology and system for file replication based on a peergroup |
US8051179B2 (en) | 2006-02-01 | 2011-11-01 | Oracle America, Inc. | Distributed session failover |
US8024439B2 (en) | 2006-03-17 | 2011-09-20 | Microsoft Corporation | Server session management application program interface and schema |
US7526668B2 (en) | 2006-06-08 | 2009-04-28 | Hitachi, Ltd. | Failover method of remotely-mirrored clustered file servers |
KR20080057483A (ko) | 2006-12-20 | 2008-06-25 | 삼성전자주식회사 | 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법 |
US7809828B2 (en) * | 2007-04-11 | 2010-10-05 | International Business Machines Corporation | Method for maintaining state consistency among multiple state-driven file system entities when entities become disconnected |
US20090077097A1 (en) | 2007-04-16 | 2009-03-19 | Attune Systems, Inc. | File Aggregation in a Switched File System |
US20090193410A1 (en) | 2007-09-28 | 2009-07-30 | Xcerion Aktiebolag | Network operating system |
EP2066101B1 (en) | 2007-11-28 | 2012-10-17 | Alcatel Lucent | System and method for an improved high availability component implementation |
US20090158221A1 (en) | 2007-12-17 | 2009-06-18 | Nokia Corporation | Device feature manipulation based on presented content |
CN101217483A (zh) | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 用于实现集群服务器内负载分担代理的方法 |
US8458298B2 (en) | 2008-03-03 | 2013-06-04 | Microsoft Corporation | Failover in an internet location coordinate enhanced domain name system |
JP5054618B2 (ja) | 2008-06-10 | 2012-10-24 | 京セラドキュメントソリューションズ株式会社 | ネットワークファイル処理システム |
JP4549408B2 (ja) | 2008-06-24 | 2010-09-22 | 富士通株式会社 | ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置 |
US7840730B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US8700760B2 (en) | 2008-08-18 | 2014-04-15 | Ge Fanuc Intelligent Platforms, Inc. | Method and systems for redundant server automatic failover |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US8185566B2 (en) | 2009-01-15 | 2012-05-22 | Microsoft Corporation | Client-based caching of remote files |
CN101594320B (zh) | 2009-06-23 | 2012-05-09 | 中兴通讯股份有限公司 | 一种基于snmp协议的消息交互方法 |
US9749387B2 (en) | 2009-08-13 | 2017-08-29 | Sap Se | Transparently stateful execution of stateless applications |
JP2011119794A (ja) | 2009-11-30 | 2011-06-16 | Toshiba Corp | 電子機器及び通信制御方法 |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
-
2011
- 2011-06-30 US US13/174,271 patent/US8856582B2/en active Active
-
2012
- 2012-06-08 EP EP16159584.8A patent/EP3051420B1/en active Active
- 2012-06-08 CA CA 2840444 patent/CA2840444A1/en not_active Abandoned
- 2012-06-08 EP EP12804233.0A patent/EP2727287B1/en active Active
- 2012-06-08 WO PCT/US2012/041703 patent/WO2013003006A2/en active Application Filing
- 2012-06-08 AU AU2012275906A patent/AU2012275906B2/en active Active
- 2012-06-08 MX MX2013015359A patent/MX2013015359A/es active IP Right Grant
- 2012-06-08 KR KR1020137034807A patent/KR101923245B1/ko active IP Right Grant
- 2012-06-08 BR BR112013033646A patent/BR112013033646A2/pt not_active Application Discontinuation
- 2012-06-08 CN CN201280032570.8A patent/CN103636165B/zh active Active
- 2012-06-08 RU RU2013158710/08A patent/RU2595903C2/ru active
- 2012-06-08 JP JP2014518599A patent/JP5974086B2/ja active Active
-
2014
- 2014-09-02 US US14/475,081 patent/US9462039B2/en active Active
-
2016
- 2016-07-14 JP JP2016139400A patent/JP6253727B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2380749C2 (ru) * | 2003-10-24 | 2010-01-27 | Майкрософт Корпорейшн | Способ и система для транзакционных файловых операций по сети |
RU2365983C2 (ru) * | 2003-12-15 | 2009-08-27 | Майкрософт Корпорейшн | Система и способ для службы распространения программного обеспечения |
RU2368944C2 (ru) * | 2004-09-15 | 2009-09-27 | Самсунг Электроникс Ко., Лтд. | Средство хранения информации для хранения метаданных, поддерживающих множество языков, системы и способы обработки метаданных |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2749754C1 (ru) * | 2020-09-23 | 2021-06-16 | Владимир Саулович Айзин | Резервированное серверное устройство |
Also Published As
Publication number | Publication date |
---|---|
RU2013158710A (ru) | 2015-07-10 |
AU2012275906B2 (en) | 2016-06-09 |
US9462039B2 (en) | 2016-10-04 |
JP6253727B2 (ja) | 2017-12-27 |
EP2727287A4 (en) | 2015-08-12 |
CN103636165B (zh) | 2017-05-24 |
US8856582B2 (en) | 2014-10-07 |
BR112013033646A2 (pt) | 2017-01-24 |
US20140372521A1 (en) | 2014-12-18 |
JP2016224962A (ja) | 2016-12-28 |
KR20140036345A (ko) | 2014-03-25 |
EP2727287A2 (en) | 2014-05-07 |
JP5974086B2 (ja) | 2016-08-23 |
KR101923245B1 (ko) | 2018-11-28 |
MX2013015359A (es) | 2014-02-11 |
CN103636165A (zh) | 2014-03-12 |
WO2013003006A2 (en) | 2013-01-03 |
JP2014524087A (ja) | 2014-09-18 |
WO2013003006A3 (en) | 2013-06-20 |
EP3051420B1 (en) | 2017-08-30 |
EP3051420A1 (en) | 2016-08-03 |
EP2727287B1 (en) | 2017-04-05 |
CA2840444A1 (en) | 2013-01-03 |
US20130007518A1 (en) | 2013-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2595903C2 (ru) | Прозрачное восстановление после отказа | |
AU2012275906A1 (en) | Transparent failover | |
US11570249B2 (en) | Redundant storage gateways | |
EP2695083B1 (en) | Cluster unique identifier | |
AU2015229864B2 (en) | Reducing data volume durability state for block-based storage | |
RU2595482C2 (ru) | Обеспечение прозрачной отработки отказа в файловой системе | |
US20180152501A1 (en) | Remote storage gateway management using gateway-initiated connections | |
CN107204901B (zh) | 一种提供、接收状态通知的计算机系统 | |
WO2013003713A2 (en) | Shadowing storage gateway | |
EP2726975A1 (en) | Storage gateway activation process | |
EP2742432A2 (en) | Token based file operations | |
US8639921B1 (en) | Storage gateway security model | |
US10754813B1 (en) | Methods and apparatus for block storage I/O operations in a storage gateway | |
US6879999B2 (en) | Processing of requests for static objects in a network server |