IP Library Granted Patent US 8,655,977
Granted Patent B2
US 8,655,977 · App. 13/685,539 · Granted Feb 18, 2014

System and method for caching inquiry data about sequential access devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,655,977
App. No.
13/685,539
Granted
Feb 18, 2014
Kind
B2
Abstract

An intermediate device communicatively connected to a host device and a sequential device in a storage area network. The host device is configured to issue different kinds of commands to the sequential device, including an inquiry command. The sequential device is configured to sequentially process requests from the host device. The intermediate device is configured to cache inquiry data about the sequential device itself in a cache memory connected to the intermediate device and service inquiry commands from the host device.

Claims (47)

1. A system, comprising:

an intermediate device communicatively connected to a host device and a sequential device in a storage area network,

wherein the host device is configured to issue different kinds of commands to the sequential device,

wherein the different kinds of commands issued by the host device include an inquiry command to obtain information about the sequential device,

wherein the sequential device is configured to sequentially process requests from the host device, and

wherein the intermediate device is configured to:

cache inquiry data about the sequential device itself in a cache memory connected to the intermediate device, the inquiry data containing data about the sequential device itself, the inquiry data provided by the sequential device in response to a first inquiry command from the host device; and

service at least one subsequent inquiry command from the host device with the inquiry data from the cache memory.

2. The system of claim 1 , wherein the data about the sequential device itself comprises information about the sequential device that is static and information about the sequential device that changes relatively infrequently.

3. The system of claim 1 , wherein the intermediate device is further configured to provide the inquiry data from the cache memory to the host device if the at least one subsequent inquiry command from the host device is not serviced by the sequential device in a predetermined amount of time.

4. The system of claim 1 , wherein the intermediate device is further configured to determine whether or not the sequential device is busy.

5. The system of claim 1 , wherein the intermediate device is further configured to:

provide the inquiry data from the cache memory to the host device if the sequential device is busy; and

provide responsive inquiry data from the sequential device to the host device if the sequential device is not busy.

6. The system of claim 1 , wherein the intermediate device is further configured to, prior to caching the inquiry data about the sequential device itself in the cache memory connected to the intermediate device:

receive the first inquiry command from the host device; and

route the first inquiry command from the host device to the sequential device continuously until the sequential device returns the inquiry data about the sequential device itself.

7. The system of claim 1 , wherein the intermediate device is further configured to return the inquiry data from the cache memory to the host device, the inquiry data being returned with an indicator set to indicate to the host device that the inquiry data from the cache memory contains information about the sequential device requested by the host device and that the sequential device is currently missing, broken, unable to respond, or offline.

8. The system of claim 1 , wherein the host device is a Fibre Channel host device and wherein the intermediate device is further configured to convert data received from the Fibre Channel host device from a Fibre Channel protocol to a Small Computer System Interface (SCSI) protocol.

9. The system of claim 1 , wherein the intermediate device resides in the storage area network.

10. The system of claim 1 , wherein the intermediate device resides within the sequential device.

11. A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by an intermediate device, the intermediate device communicatively connected to a host device and a sequential device in a storage area network,

wherein the host device is configured to issue different kinds of commands to the sequential device,

wherein the different kinds of commands issued by the host device include an inquiry command to obtain information about the sequential device,

wherein the sequential device is configured to sequentially process requests from the host device, and

wherein the instructions when translated by the intermediate device cause the intermediate device to:

cache inquiry data about the sequential device itself in a cache memory connected to the intermediate device, the inquiry data containing data about the sequential device itself, the inquiry data provided by the sequential device in response to a first inquiry command from the host device; and

service at least one subsequent inquiry command from the host device with the inquiry data from the cache memory.

12. The computer program product of claim 11 , wherein the data about the sequential device itself comprises information about the sequential device that is static and information about the sequential device that changes relatively infrequently.

13. The computer program product of claim 11 , wherein the instructions when translated by the intermediate device further cause the intermediate device to provide the inquiry data from the cache memory to the host device if the at least one subsequent inquiry command from the host device is not serviced by the sequential device in a predetermined amount of time.

14. The computer program product of claim 11 , wherein the instructions when translated by the intermediate device further cause the intermediate device to determine whether or not the sequential device is busy.

15. The computer program product of claim 11 , wherein the instructions when translated by the intermediate device further cause the intermediate device to:

provide the inquiry data from the cache memory to the host device if the sequential device is busy; and

provide responsive inquiry data from the sequential device to the host device if the sequential device is not busy.

16. The computer program product of claim 11 , wherein the instructions when translated by the intermediate device further cause the intermediate device to, prior to caching the inquiry data about the sequential device itself in the cache memory connected to the intermediate device:

receive the first inquiry command from the host device; and

route the first inquiry command from the host device to the sequential device continuously until the sequential device returns the inquiry data about the sequential device itself.

17. The computer program product of claim 11 , wherein the instructions when translated by the intermediate device further cause the intermediate device to return the inquiry data from the cache memory to the host device, the inquiry data being returned with an indicator set to indicate to the host device that the inquiry data from the cache memory contains information about the sequential device requested by the host device and that the sequential device is currently missing, broken, unable to respond, or offline.

18. The computer program product of claim 11 , wherein the intermediate device resides in the storage area network.

19. The computer program product of claim 11 , wherein the intermediate device resides within the sequential device.

20. A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by at least one processor to perform:

receiving, at an intermediate device communicatively connected to a host device, a first inquiry command from the host device to a sequential device in a network, the intermediate device being communicatively connected to the sequential device, wherein the host device is configured to issue different kinds of commands to the sequential device, wherein the different kinds of commands issued by the host device include inquiry commands to obtain information about the sequential device, wherein the sequential device is configured to sequentially process requests from the host device, the inquiry data containing information about the sequential device that is static and information about the sequential device that changes relatively infrequently;

routing, by the intermediate device, the first inquiry command from the host device to the sequential device continuously until the sequential device returns the inquiry data to the intermediate device;

storing the inquiry data in a cache memory coupled to the intermediate device;

receiving from the host device a second inquiry command for the inquiry data;

if the sequential device is busy, providing at least a portion of the inquiry data from the cache memory to the host device in response to the second inquiry command from the host device; and

if the sequential device is not busy, providing responsive inquiry data from the sequential device to the host device in response to the second inquiry command from the host device.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2015
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 036518/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2014
From: FORTRESS CREDIT CO LLC
To: CF DB EZ LLC
Reel/Frame 033706/0340 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: KIP CR P1 LP
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0937 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: KIP CR P1 LP
Reel/Frame 030935/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2012
From: CULP, BRAD W.
To: HEWLETT-PACKARD COMPANY
Reel/Frame 029430/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2012
From: DALE, STEPHEN G.
To: CROSSROADS SYSTEMS, INC.
Reel/Frame 029430/0963 →