Techniques for generating unique identifiers

US9501290B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9501290-B1
Application numberUS-201514847583-A
CountryUS
Kind codeB1
Filing dateSep 8, 2015
Priority dateJun 21, 2013
Publication dateNov 22, 2016
Grant dateNov 22, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are described for generating a unique identifier by a first processor using a plurality of values including a shared value, the first processor's identifier, a container identifier and a time value. The shared value is a common value used by a plurality of processors including the first processor. The container identifier identifies a memory location. The time value denotes an amount of time that has elapsed since the first processor was last booted.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of generating and using a unique identifier comprising: receiving a request from a client to generate a token representing a data item; responsive to receiving the request, performing first processing by a token driver that generates the unique identifier and that generates the token using the unique identifier, wherein said token driver comprises code of the first processing executed by a first of a plurality of processors to generate the token, said first processing including: obtaining a shared value that is a common value used by the plurality of processors; obtaining a processor identifier of the first processor; obtaining a container identifier identifying a memory location; obtaining a time value denoting an amount of time that has elapsed since the first processor was last booted; generating a unique identifier using a plurality of values including the shared value, the processor identifier, the container identifier and the time value; and generating the token using the unique identifier. 2. The method of claim 1 , further comprising: sending the token to the client; and receiving a second request from the client to perform an operation with respect to the data item, the second request including the token as a representation of the data item rather than having the second request include the data item, the second request being a request to perform a data operation using first data of the data item represented by the token. 3. The method of claim 2 , wherein a system receives the second request and maps the token to the data item to retrieve the first data of the data item and perform the requested data operation. 4. The method of claim 2 , wherein the client includes code executing within the system and the second request is internally generated within the system. 5. The method of claim 2 , wherein the client is external with respect to the system and the second request is an externally generated request generated by the client. 6. The method of claim 3 , wherein the token represents a source location of an I/O (input/output) operation request to copy data from the source location to a target location, said data item being the source location which is identified in the request. 7. The method of claim 6 , wherein the source location identifies at least one device and at least one location on the one device. 8. The method of claim 6 , wherein the source location identifies at least a first logical device and at least one logical address range of the first logical device. 9. The method of claim 2 , wherein the client is unable to determine the source location from the token. 10. The method of claim 6 , wherein the token is generated at a first point in time and represents a copy of data stored at the source location at the first point in time, and the method further comprising: modifying the source location subsequent to the first point in time; and invalidating the token since the token no longer represents the copy of data at the source location at the first point in time. 11. The method of claim 1 , wherein said generating a unique identifier using a plurality of values includes concatenating the shared value, the processor identifier, the container identifier and the time value. 12. The method of claim 1 , wherein the shared value is a randomly selected integer that is incremented each time any one of the plurality of processors is booted thereby producing a revised shared value each time any one of the plurality of processors is booted. 13. The method of claim 12 , wherein the shared value is stored in a memory of the first processor and is incremented by the first processor to produce the revised shared value responsive to booting a second of the plurality of processors, and wherein the first processor communicates the revised shared value to the second processor. 14. The method of claim 1 , wherein the container identifier identifies a memory location of a structure and the method includes storing the unique identifier as a field in the structure and wherein the time value represents an absolute amount of time. 15. The method of claim 1 , wherein the processor identifier is a world wide name uniquely identifying the first processor. 16. The method of claim 1 , wherein said token is a structure including the unique identifier as a field in the structure. 17. The method of claim 1 , wherein the container identifier is a first index value identifying an element in an array, the array is an array of tokens, and each element of said array is a token structure representing a different token, and wherein the first index value identifies a first token structure including the unique identifier. 18. A system comprising: a plurality of processors; and a memory comprising code stored therein that, when executed, performs a method of generating and using a unique identifier comprising: receiving a request from a client to generate a token representing a data item; responsive to receiving the request, performing first processing by a token driver that generates the unique identifier and that generates the token using the unique identifier, wherein said token driver comprises code of the first processing executed by a first of the plurality of processors to generate the token, said first processing including; obtaining a shared value that is a common value used by the plurality of processors; obtaining a processor identifier of the first processor; obtaining a container identifier identifying a memory location; obtaining a time value denoting an amount of time that has elapsed since the first processor was last booted; generating a unique identifier using a plurality of values including the shared value, the processor identifier, the container identifier and the time value; and generating the token using the unique identifier. 19. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of generating and using a unique identifier comprising: receiving a request from a client to generate a token representing a data item; responsive to receiving the request, performing first processing by a token driver that generates the unique identifier and that generates the token using the unique identifier, wherein said token driver comprises code of the first processing executed by a first of a plurality of processors to generate the token, said first processing including: generating a unique identifier using a plurality of values including a shared value that is a common value used by the plurality of processors, a processor identifier of the first processor, a container identifier identifying a memory location, and a time value denoting an amount of time that has elapsed since the first processor was last booted; and generating the token using the unique identifier; sending the token to the client; and receiving a second request from the client to perform a copy operation from a source location to a destination location, wherein the source location is the data item and the second request includes the token representing the source location. 20. The non-transitory computer readable medium of claim 19 , wherein a system receives the second request and maps the token to the first data item used as the source location of the copy operation. 21. The non-transitory computer readable medium of claim 20 , wherein the source location identifies at least one device and at least one location on the on

Assignees

Inventors

Classifications

  • with centralised address assignment · CPC title

  • G06F9/4411Primary

    Configuring for operating with peripheral devices; Loading of device drivers · CPC title

  • Initialisation of multiprocessor systems · CPC title

  • Buffers; Shared memory; Pipes · CPC title

  • Accessing, addressing or allocating within memory systems or architectures (digital input from, or digital output to record carriers, e.g. to disk storage units, G06F3/06) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9501290B1 cover?
Techniques are described for generating a unique identifier by a first processor using a plurality of values including a shared value, the first processor's identifier, a container identifier and a time value. The shared value is a common value used by a plurality of processors including the first processor. The container identifier identifies a memory location. The time value denotes an amount…
Who is the assignee on this patent?
Emc Corp, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0653. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 22 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).