IP Library Granted Patent US 6,842,789
Granted Patent B1
US 6,842,789 · App. 09/686,109 · Granted Jan 11, 2005

Method and apparatus for assigning unique device identifiers across a distributed computing system

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 6,842,789
App. No.
09/686,109
Granted
Jan 11, 2005
Kind
B1
Abstract

One embodiment of the present invention provides a system that facilitates assigning an identifier to a device within a distributed computing system, wherein the identifier is unique across the distributed computing system. The system operates by detecting the presence of the device within a local computer system within the distributed computing system. If an identifier has not been assigned to the device, the system assigns an identifier to the device by, attempting to retrieve the identifier from a local pool of device identifiers within the local computer system. If the local pool is empty, the system retrieves at least one additional identifier for the local pool from a global allocator for device identifiers located within the distributed computing system. Next, the system assigns the retrieved identifier to the device so that the identifier can be used to reference the device.

Claims (51)

1. A method for assigning an identifier to a device within a distributed computing system, wherein the identifier is unique across the distributed computing system, comprising:

detecting the presence of the device within a local computer system that is part of the distributed computing system; and

if an identifier has not been assigned to the device, assigning an identifier to the device by,

attempting to retrieve the identifier from a local pool of device identifiers within the local computer system,

if the local pool is empty, retrieving at least one additional identifier for the local pool from a global allocator for device identifiers located within the distributed computing system, wherein retrieving at least one additional identifier from the global allocator involves retrieving a block of identifiers for the local pool from the global allocator,

wherein if the global allocator is inaccessible, retrieving at least one additional identifier from the global allocator involves assigning a provisional identifier from the local computer system and wherein if the global allocator later becomes accessible the method further comprises:

communicating the provisional identifier to the global allocator,

if the global allocator approves the provisional identifier, recording the provisional identifier as a permanent device identifier, and

if the global allocator rejects the provisional identifier, assigning a new identifier from the global allocator to the device, and

assigning the retrieved identifier to the device so that the identifier can be used to reference the device.

2. The method of claim 1 , wherein the identifier includes a device major number that specifies a device driver to be used to access the device, and a device minor number that identifies the device to be accessed by the device driver, wherein the device minor number includes an instance number that uniquely identifies an instance of the device, and a unit number that identifies an independently addressable sub-unit within the device.

3. The method of claim 2 , wherein attempting to retrieve the identifier from the local pool includes attempting to retrieve the instance number from the local pool, wherein the instance number is combined with the device major number and the unit number to produce the identifier.

4. The method of claim 1 , wherein the device can include:

a disk drive;

a tape drive;

an I/O device; and

a networking device.

5. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for assigning an identifier to a device within a distributed computing system, wherein the identifier is unique across the distributed computing system, the method comprising:

detecting the presence of the device within a local computer system that is part of the distributed computing system; and

if an identifier has not been assigned to the device, assigning an identifier to the device by,

attempting to retrieve the identifier from a local pool of device identifiers within the local computer system,

if the local pool is empty, retrieving at least one additional identifier for the local pool from a global allocator for device identifiers located within the distributed computing system, wherein retrieving at least one additional identifier from the global allocator involves retrieving a block of identifiers for the local pool from the global allocator,

wherein if the global allocator is inaccessible, retrieving at least one additional identifier from the global allocator involves assigning a provisional identifier from the local computer system, and wherein if the global allocator later becomes accessible, the method further comprises:

communicating the provisional identifier to the global allocator,

if the global allocator approves the provisional identifier, recording the provisional identifier as a permanent device identifier, and

if the global allocator rejects the provisional identifier, assigning a new identifier from the global allocator to the device, and

assigning the retrieved identifier to the device so that the identifier can be used to reference the device.

6. The computer-readable storage medium of claim 5 , wherein the identifier includes a device major number that specifies a device driver to be used to access the device, and a device minor number that identifies the device to be accessed by the device driver, wherein the device minor number includes an instance number that uniquely identifies an instance of the device, and a unit number that identifies an independently addressable subunit within the device.

7. The computer-readable storage medium of claim 6 , wherein attempting to retrieve the identifier from the local pool includes attempting to retrieve the instance number from the local pool, wherein the instance number is combined with the device major number and the unit number to produce the identifier.

8. The computer-readable storage medium of claim 5 , wherein the device can include:

a disk drive;

a tape drive;

an I/O device; and

a networking device.

9. An apparatus that facilitates assigning an identifier to a device within a distributed computing system, wherein the identifier is unique across the distributed computing system, comprising:

a detection mechanism that is configured to detect the presence of the device within a local computer system that is part of the distributed computing system; and

an assignment mechanism, wherein if an identifier has not been assigned to the device, the assignment mechanism is configured to:

attempt to retrieve the identifier from a local pool of device identifiers within the local computer system,

if the local pool is empty, to retrieve at least one additional identifier for the local pool from a global allocator for device identifiers located within the distributed computing system, wherein in retrieving at least one additional identifier from the global allocator, the assignment mechanism is configured to retrieve a block of identifiers for the local pool from the global allocator,

wherein if the global allocator is inaccessible, retrieving at least one additional identifier from the global allocator involves assigning a provisional identifier from the local computer system, and wherein if the global allocator later becomes accessible, the method further comprises:

communicating the provisional identifier to the global allocator,

if the global allocator approves the provisional identifier, recording the provisional identifier as a permanent device identifier, and

if the global allocator rejects the provisional identifier, assigning a new identifier from the global allocator to the device, and to

assign the retrieved identifier to the device so that the identifier can be used to reference the device.

10. The apparatus of claim 9 , wherein the identifier includes a device major number that specifies a device driver to be used to access the device, and a device minor number that identifies the device to be accessed by the device driver, wherein the device minor number includes an instance number that uniquely identifies an instance of the device, and a unit number that identifies an independently addressable sub-unit within the device.

11. The apparatus of claim 10 , wherein the assignment mechanism is configured to attempt to retrieve the instance number from the local pool, wherein the instance number is combined with the device major number and the unit number to produce the identifier.

12. The apparatus of claim 9 , wherein the device can include:

a disk drive;

a tape drive;

an I/O device; and

a networking device.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 12, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037278/0790 →