Mapping data locations using data transmissions

US9734256B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9734256-B2
Application numberUS-201615293479-A
CountryUS
Kind codeB2
Filing dateOct 14, 2016
Priority dateNov 4, 2015
Publication dateAug 15, 2017
Grant dateAug 15, 2017

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.

A host sends an I/O transaction. The I/O transaction relates to a read or write operation for a first datum. A first listening service which manages I/O transactions for a first set of addresses receives the I/O transaction. The first listening service forwards the I/O transaction to a second listening service. The second listening service manages I/O transactions for a second set of addresses. The second listening service executes the I/O transaction at a selected address of the second set of addresses. The second listening service creates a data packet to respond to the I/O transaction. The header of the data packet includes the selected address. The second listening service transmits the data packet to the host. The host uses the selected address to update a database which includes addresses of data within.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of mapping data addresses, the method comprising: identifying, by a first host that utilizes a first database of addresses of data, a selected address of a storage device from the first database, wherein the selected address is not used to store datums within the storage device according to the first database; creating, by the first host, a first input/output (I/O) transaction, wherein the first I/O transaction is a write request related to a first datum, wherein the first datum is not stored in the storage device, wherein the first I/O transaction requests that the first datum will be written at the selected address; determining, by the first host, that the first database identifies a first listening service as managing the selected address, wherein the first listening service manages I/O transactions for a first set of addresses of the storage device; in response to determining that the first database identifies the first listening service as managing the selected address, transmitting, by the first host, the first I/O transaction to the first listening service; receiving, by the first listening service, the first I/O transaction; executing, by the first listening service, the first I/O transaction at the selected address of the first set of addresses; creating a first data packet to respond to the first I/O transaction, wherein a header of the first data packet includes the selected address; transmitting, by the first listening service, the first data packet to the first host; in response to the header of the first data packet including the selected address, updating, by the first host, the first database of addresses with the selected address; migrating, by the storage device, the first datum from the selected address to a new address; creating, by the first host, a second I/O transaction, wherein the second I/O transaction is a write request related to the first datum; determining, by the first host, that the first database identifies the selected address as the location of the first datum, wherein an amount of time that has elapsed between the identifying of the selected address in response to determining that the first database identifies the selected address as the location of the first datum, determining, by the first host, that the first database identifies the first listening service as managing the selected address; in response to determining that the first database identifies the first listening service as managing the selected address, transmitting, by the first host, the second I/O transaction to the first listening service; receiving, by the first listening service, the second I/O transaction, wherein the first set of addresses does not include the new address; forwarding, by the first listening service, the first I/O transaction to a second listening service that manages I/O transactions for a second set of addresses, wherein the second set of address includes the new address; executing, by the second listening service, the second I/O transaction at the new address of the second set of addresses; creating a second data packet to respond to the second I/O transaction, wherein a second header of the second data packet includes the new address; transmitting, by the second listening service, the second data packet to the first host; in response to the header of the second data packet including the new address, updating, by the first host, the first database of addresses with the new address; deleting, by the first host, the new address from the first database of addresses in response to the first host failing to use the new address within the first database for a period of time that is longer than the time criterion; initializing a connection between a second host and the storage device, wherein initializing the connection includes the second host requesting a complete set of addresses of the storage device; receiving, by the second host, a complete set of addresses of the storage device, wherein every address of the storage device is included in the complete set of addresses; storing, by the second host, the complete set of addresses in a second database of addresses of data; creating, by the second host, a third I/O transaction, wherein the third I/O transaction is a write request related to the first datum; determining, by the second host, that the second database identifies the new address as the location of the first datum; in response to determining that the second database identifies the new address as the location of the first datum, determining, by the second host, that the second database identifies the second listening service as managing the new address; in response to determining that the second database identifies the second listening service as managing the new address, transmitting, by the second host, the third I/O transaction to the second listening service; receiving, by the second listening service, the third I/O transaction; executing, by the second listening service, the third I/O transaction at the new address; determining, by the second listening service, that the second host is using the second database and that the second database correctly stores the new address as the location of the first datum; creating a third data packet to respond to the third I/O transaction, wherein the header does not include the selected address in response to determining that the second host is using the second database and that the second database correctly stores the new address as the location of the first datum; transmitting, by the second listening service, the third data packet to the second host; processing, by the second host, the third data packet; creating, by a third host that does not host a database of addresses and is not configured to read addresses from headers of data packets, a fourth I/O transaction, wherein the fourth I/O transaction is a read request related to the first datum; transmitting, by the third host, the fourth I/O transaction to the first listening service; receiving, by the first listening service, the fourth I/O transaction; forwarding, by the first listening service, the fourth I/O transaction to the second listening service; executing, by the second listening service, the fourth I/O transaction at the new address; creating a fourth data packet to respond to the fourth I/O transaction, wherein the fourth data packet includes the first datum, wherein a header of the fourth data packet includes the new address; transmitting, by the first listening service, the fourth data packet to the third host; processing, by the third host, the fourth data packet, wherein processing the fourth packet includes successfully retrieving the first datum from the fourth data packet; detecting, by the storage device, that the third host is not configured to read addresses from headers of data packets; and in response to detecting that the third host is not configured to read addresses from headers of data packets, disabling, by the storage device, the ability of listening services of the storage device to include addresses within headers for data packets transmitted to the third host.

Assignees

Inventors

Classifications

  • Monitoring of transactions · CPC title

  • where hardware performs an I/O function other than control of data transfer · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • with address mapping · CPC title

  • Bookmark management · 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 US9734256B2 cover?
A host sends an I/O transaction. The I/O transaction relates to a read or write operation for a first datum. A first listening service which manages I/O transactions for a first set of addresses receives the I/O transaction. The first listening service forwards the I/O transaction to a second listening service. The second listening service manages I/O transactions for a second set of addresses.…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F13/4282. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 15 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).