US20030076786A1 - Peer to peer network - Google Patents
Peer to peer network Download PDFInfo
- Publication number
- US20030076786A1 US20030076786A1 US10/262,597 US26259702A US2003076786A1 US 20030076786 A1 US20030076786 A1 US 20030076786A1 US 26259702 A US26259702 A US 26259702A US 2003076786 A1 US2003076786 A1 US 2003076786A1
- Authority
- US
- United States
- Prior art keywords
- network
- database
- devices
- selecting
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
- G06F16/1837—Management specially adapted to peer-to-peer storage networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
Definitions
- the present invention relates to the field of networks and, more particularly, to peer to peer networks.
- Networks of devices are well known in the field of information technology. Typically, such networks allow different devices in the network to communicate with one another and are generally controlled by a central server that is responsible for managing the communication between the different devices in the network.
- FIG. 1 is a block diagram of such a central server based system according to the prior art.
- a number of devices 101 a to 101 n are connected via a network 104 to a central server 102 . If the device 101 a wishes to distribute data to other devices in the network, e.g. devices 101 b to 101 n, the device 101 a sends the data to the central server 102 .
- the central server 102 knows which devices are connected to it, and therefore is able to distribute the data as appropriate to the devices 101 b to 101 n. If devices are added or removed from the network the central server 102 must be updated accordingly.
- a central server is required to oversee the central administration of the network.
- Freenet One network configuration that does not rely on a central server is the so-called Freenet, details of which can be found at http://freenet.sourceforge.net/
- FIG. 2 is a block diagram showing an example of a network according to the Freenet network.
- a number of devices 200 a to 200 e are shown.
- the device 200 a stores a file 202 in a database or other storage means associated with the device.
- the file 202 is signed with a signing function, for example, a hashing function, to generate a unique signature for the file.
- a signing function for example, a hashing function
- the unique signature is shown as being AAA.
- a user of the device 200 e wishes to retrieve the file 202 from the network it must first of all know the signature of the file to be retrieved. If the requested file does not reside already in the device 200 e the device 200 e sends a request for the file to other devices to which it is connected; in this case the device 200 d. The device 200 d checks to see whether it has a file with the matching signature stored in the device. If the device 200 d does have the requested file 202 , it supplies the requested file to the device 200 e. If the device 200 d does not have the requested file, it too requests the file from other devices to which it is connected.
- the device 200 b requests the file 202 from the device 200 a, which supplies the file to the device 200 b.
- the device 200 b stores the file and transmits it back to the device that made the direct request, i.e. the device 200 c.
- This process continues until requested file is delivered to the device 200 e that made the initial request.
- the file gets overwritten and therefore removed from the network. Where a particular file is accessed frequently, the file will migrate around the network and will eventually be stored on devices close to where the requests for that file are made from.
- One aim of the present invention is to provide an improved network and devices for use thereon which overcome the above-mentioned problems of the prior art.
- the present invention allows data to be distributed amongst devices in a network, without requiring a central server or controller to control and manage the distribution. This is particularly advantageous in large networks with many hundreds or thousands of devices, where having a central server is generally neither feasible nor desired.
- a method of distributing data in a network of devices wherein each device comprises a database and is capable of communicating with at least one other device in the network, the method comprising: maintaining in the database a list of devices in the network; selecting a device from the list devices; selecting a portion of the database; distributing the selected portion of the database to the selected device; receiving data from at least one other device in the network; and updating the database in accordance with the received data.
- a device for distributing data in a network of devices wherein each device comprises a database and is capable of communicating with at least one other device in the network comprising: means for determining a list of devices in the network; means for selecting a device from the list; means for selecting a portion of the database; means for distributing the selected portion of the database to the selected device; means for receiving data from at least one other device in the network; and means for updating the database in accordance with the received data.
- FIG. 1 is a block diagram of such a central server based system according to the prior art.
- FIG. 2 is a block diagram showing an example of a network according to the Freenet network.
- FIG. 3 shows a block diagram of a system according to an embodiment the present invention.
- FIG. 3 shows a block diagram of a system according to an embodiment of the present invention.
- a network 310 of devices 300 a to 300 n is illustrated.
- Each of the devices 300 a to 300 n includes a transceiver ( 302 a to 302 n respectively) enabling them to communicate with other devices in the network and a database ( 304 a to 304 n respectively).
- a transceiver is herein defined as a means for receiving and transmitting signals and data for the purposes of communication.
- a transceiver may be, for example, a network adapter, a modem or other suitable means.
- a transceiver may be either a combined receiver/transmitter, or may comprise separate reception and transmission means.
- the network may be an Internet protocol (IP) or other appropriate network.
- IP Internet protocol
- Each of the devices 300 a to 300 n may be any kind of appropriate device, for example, personal computers, servers, mobile devices including portable radiotelephones and so-called personal digital assistants (PDA), laptop computers etc.
- PDA personal digital assistants
- the description herein will initially only consider a network of personal computers. Those skilled in the art will appreciate that the other types of appropriate devices mentioned above may be substituted in place of a personal computer without detracting from the inventive concepts described herein.
- each of the devices 300 a to 300 n maintain, in their respective databases, details of other devices in the network.
- the contents of each database are arranged into what are herein referred to as database objects.
- the database 304 a of device 300 a contains a list of database objects each of which contain details of a different device in the network 310 with which it may communicate.
- the device 300 a selects at least one database object relating to at least one of the other devices in the network 310 and transmits a portion of its database 304 a to the selected device or devices.
- the transmitted portion of the database contains at least the address or network name of the device 300 a. It should be noted that the transmissions are unsolicited, i.e. they are not requested by the receiving device.
- the device 300 a may select a database object in the database 304 a using a variety of different methods, such as random selection, pseudo-random selection, sequential or other algorithm-based selection.
- a time stamp is included with each database object to indicate the time at which the database object was sent.
- a unique identifier is preferably included with the transmitted database object.
- the unique identifier may be generated by any number of known methods, for example using a combination of the media access controller (MAC) address, the number of seconds since Jan. 1, 1970, and a randomly generate number.
- MAC media access controller
- device 300 a chooses to transmit a portion of its database 304 a to the device 300 c.
- the portion of the database chosen for transmission may, for example, be the whole contents of the database, i.e. all the database objects in the database.
- the chosen portion may contain only to some of the database objects, and hence relate to only a specific device or devices.
- the device 300 c On receiving a database object, the device 300 c checks its database 304 c to determine whether the database object exists already. This may be achieved by checking the unique identifier of the received database object. If the database 304 c of device 300 c does not contain the received database object, the received database object is stored therein. If the database 304 c does contain the received database object the timestamp of the database object is checked against the timestamp of the database object stored in the database 304 c. From the timestamps it is determined whether the received database object is more recent than that already stored. The received database object is stored in the database only where the received database object is more recent than that already stored. In a preferred embodiment, where a database object received by a device is older than that stored on its own database, the receiving device transmits its copy of the database object back to the sending device, thereby,enabling its database to be updated.
- Each device in the network performs the same tasks described above. Over time, each device builds up and maintains a database of database objects, and therefore contains details of other devices in the network.
- Each device may be preprogrammed to determine both the frequency at which it sends database objects to other devices in the network and the number of devices to which database objects are sent. If the frequency of sending database objects is low, the time taken for every device in the network to know about other devices in the network will be long, resulting in inaccurate or out-of-date data in the databases of some devices. At the same time, however, the associated network traffic will be minimal.
- P transmission interval
- N number of peers.
- the database object relating to the unavailable device may either be removed from the database, or, preferably, may be updated to show that the device is unavailable.
- the new device can acquire details of other devices in the network in a number of ways. For example, the new device may send a broadcast message requesting that other devices send their address details. One alternative is to enter into the database of the new device the address of a known device in the network. Once the new device has at least one address in its database, the new device will quickly acquire details of other devices in the network.
- the frequency of transmitting database objects is preferably adapted according to device type.
- a PDA or mobile device may only be connected to the network for short periods of time. It may therefore preferable that the information in the network is updated frequently.
- a server which is permanently connected to the network, may need to transmit database objects from its database less often.
- the frequency at which database objects are transmitted from one device to another varies according to device type. For example, for devices which do not change their status often, such as business PC's, a low frequency, e.g. 1-10 minutes, is sufficient. For mobile devices, on the other hand, a higher frequency, e.g. approximately every 1-10 seconds, may be desirable. This helps to ensure fast convergence of the information in the network.
- the frequency need not be constant for a particular device and may vary over time. For example, it may be preferable to increase the frequency of transmission when a device is initially connected to the network, or if data on the device is changing rapidly.
- Each device on the network is responsible for the management of its own database and may implement any number of ways for managing its database contents. For example, if required database objects may be overwritten according to a least recently used (LRU), least frequently used (LFU) or other appropriate algorithm.
- LRU least recently used
- LFU least frequently used
- the above-described example embodiment illustrates how a network according to this embodiment adapts and converges so that, within a short time, most or all of the devices in the network have details of most or all of the other devices in the network.
- the database objects transmitted between devices may, in addition to including device address information, additionally include information relating to the device type and the availability of resources of the device.
- the information relating to the device type may indicate, for example, whether a device is a personal computer, a server, a PDA, a mobile device etc.
- the information relating to the availability of resources may indicate, for example, the processor type of a device, the amount of memory or disk storage available, whether a device is currently connected to the network etc.
- each database stores database objects relating to both ‘relevant’ and ‘non-relevant’ devices in the network.
- Relevant devices may be defined according to the following criteria: proximity of the device in the network e.g. network latency required to reach the device; computing capability of the device; probabilistic availability. Other criteria may also be used.
- a relevant device may, for example, be a device which is on the same network subnet, has available computing capability (e.g. not a PDA or mobile telephone) and is often in an idle state. It is preferable for each device to store information about local devices, which are generally more useful to the device, than to store details about distant devices. The purpose of storing details of some non-relevant devices is to improve the convergence of data in the network.
- Each device may apply the criteria differently or even have different criteria for determining ‘relevant’ and ‘non-relevant’ devices.
- This embodiment is particularly useful in the field of distributed computing and cluster networks as well as in other fields which allow the resources of other network devices to be known and used remotely. For example, if the device 300 a wishes to carry out a computing task, such as the rendering of a large graphics file the device 300 a may use the information in its database to determine which devices in the network may be used to perform this task.
- a computing task such as the rendering of a large graphics file the device 300 a may use the information in its database to determine which devices in the network may be used to perform this task.
- additional database objects are stored in each device database. These additional database objects are transmitted between devices in the manner described above. These additional database objects may be, for example, file or other data packages.
- the device 300 a may decide to publish a database object (contained in the database 304 a ) to the network. In this context publish means the initial making available to the network of a database object.
- the device 300 a decides to publish a database object to the network.
- One way in which this may be achieved is to store the required database object in the database 304 a.
- the database object is capable of being selected and transmitted to other devices in the network using the above-described mechanism.
- the selection and transmission of database objects is preferably carried out in accordance with the above-description and in addition to the selection and transmission of database objects relating to network devices described above.
- a database object made available in a device database will, after convergence, be stored in most of the other device databases in the network 310 . Thereafter, should another device in the network require the same database object it should be located locally in its database. This enables a device to be able to access a database object locally, without requiring further network access.
- One particularly useful feature is the ease with which a database object can be updated across the whole network. For example, if the device 300 a modifies a database object, the modified database object will quickly be updated on other devices in the network, using the distribution mechanisms described above, without requiring any specific action from a device or user.
- a mechanism to effectively force the update of a device database may be employed. This is particularly useful in the case of mobile devices, or other devices which are not constantly connected to the network.
- a mobile device may only be connected to the network for short periods of time, for example, whilst downloading email or phonebook information. It is possible that the mobile device may be disconnected from the network before it has a chance to receive updated database objects from other devices on the network.
- One way in which such a device can force an update of its database is to choose a device upon connection to the network and to send the contents of its database to the known device. As described above, if the chosen device receives a database object which is the same but older than the one in its database, it will respond by sending back its copy of the database object. This will in turn cause an update, where required, of the database objects in the database of the mobile device.
- the device chosen upon connection to the network is a device which is known to be constantly connected to the network.
- the device databases throughout the network may not necessarily be completely synchronized with the other device databases in the network.
- a device could be disconnected from the network for a period of time thereby preventing its database from being updated with any new database objects.
- a device database may have limited storage capacity, for example on a PDA or mobile device, and therefore be physically unable to store all database objects received.
- the accuracy of each database is not necessarily critical. Consider the situation where a database of a first device inaccurately reports that a second device is unavailable when it is in fact available. In this case, the first device will not be able choose the second the device for a distributed processing task, and will therefore be forced to choose another available device.
- the first device will realize that the second device is not available as soon as it attempts to communicate the second device. This will therefore lead to the device database being updated to reflect the correct status of the device, which will in turn lead to the updating of other device databases in the network.
- the present invention therefore provides a self-sustaining network of devices in which each device (or element) of the network essentially functions independently of each other. This leads to a robust network with no central server and therefore requires no central maintenance or administration.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- The present invention relates to the field of networks and, more particularly, to peer to peer networks.
- Networks of devices are well known in the field of information technology. Typically, such networks allow different devices in the network to communicate with one another and are generally controlled by a central server that is responsible for managing the communication between the different devices in the network.
- FIG. 1 is a block diagram of such a central server based system according to the prior art. A number of
devices 101 a to 101 n are connected via anetwork 104 to acentral server 102. If thedevice 101 a wishes to distribute data to other devices in the network,e.g. devices 101 b to 101 n, thedevice 101 a sends the data to thecentral server 102. Thecentral server 102 knows which devices are connected to it, and therefore is able to distribute the data as appropriate to thedevices 101 b to 101 n. If devices are added or removed from the network thecentral server 102 must be updated accordingly. In a system of this type, a central server is required to oversee the central administration of the network. - One network configuration that does not rely on a central server is the so-called Freenet, details of which can be found at http://freenet.sourceforge.net/
- FIG. 2 is a block diagram showing an example of a network according to the Freenet network. A number of
devices 200 a to 200 e are shown. Thedevice 200 a stores afile 202 in a database or other storage means associated with the device. Thefile 202 is signed with a signing function, for example, a hashing function, to generate a unique signature for the file. In FIG. 2 the unique signature is shown as being AAA. - If a user of the
device 200 e wishes to retrieve thefile 202 from the network it must first of all know the signature of the file to be retrieved. If the requested file does not reside already in thedevice 200 e thedevice 200 e sends a request for the file to other devices to which it is connected; in this case thedevice 200 d. Thedevice 200 d checks to see whether it has a file with the matching signature stored in the device. If thedevice 200 d does have the requestedfile 202, it supplies the requested file to thedevice 200 e. If thedevice 200 d does not have the requested file, it too requests the file from other devices to which it is connected. - Eventually, the
device 200 b requests thefile 202 from thedevice 200 a, which supplies the file to thedevice 200 b. Thedevice 200 b stores the file and transmits it back to the device that made the direct request, i.e. thedevice 200 c. This process continues until requested file is delivered to thedevice 200 e that made the initial request. Typically, if a file stored on the network is not accessed over a long period of time, the file gets overwritten and therefore removed from the network. Where a particular file is accessed frequently, the file will migrate around the network and will eventually be stored on devices close to where the requests for that file are made from. - One of the major problems with the Freenet configuration is that retrieve times can be slow, since file requests are dealt with on an as and when basis. In other words, if a device requests a file that is not stored locally, a search spreads out across the whole network trying to locate the file. This is not only laborious, but can also use large amounts of network bandwidth. Additionally, in order to retrieve a file the signature of the file must be known.
- One aim of the present invention is to provide an improved network and devices for use thereon which overcome the above-mentioned problems of the prior art.
- Accordingly, the present invention allows data to be distributed amongst devices in a network, without requiring a central server or controller to control and manage the distribution. This is particularly advantageous in large networks with many hundreds or thousands of devices, where having a central server is generally neither feasible nor desired.
- According to a first aspect of the present invention, there is provided a method of distributing data in a network of devices, wherein each device comprises a database and is capable of communicating with at least one other device in the network, the method comprising: maintaining in the database a list of devices in the network; selecting a device from the list devices; selecting a portion of the database; distributing the selected portion of the database to the selected device; receiving data from at least one other device in the network; and updating the database in accordance with the received data.
- According to a second aspect of the present invention, there is provided a device for distributing data in a network of devices, wherein each device comprises a database and is capable of communicating with at least one other device in the network comprising: means for determining a list of devices in the network; means for selecting a device from the list; means for selecting a portion of the database; means for distributing the selected portion of the database to the selected device; means for receiving data from at least one other device in the network; and means for updating the database in accordance with the received data.
- An example embodying the invention will now be described, by way of non-limiting example, with reference to the accompanying drawings, in which:
- FIG. 1 is a block diagram of such a central server based system according to the prior art.;
- FIG. 2 is a block diagram showing an example of a network according to the Freenet network; and
- FIG. 3 shows a block diagram of a system according to an embodiment the present invention.
- FIG. 3 shows a block diagram of a system according to an embodiment of the present invention. A
network 310 ofdevices 300 a to 300 n is illustrated. Each of thedevices 300 a to 300 n includes a transceiver (302 a to 302 n respectively) enabling them to communicate with other devices in the network and a database (304 a to 304 n respectively). A transceiver is herein defined as a means for receiving and transmitting signals and data for the purposes of communication. A transceiver may be, for example, a network adapter, a modem or other suitable means. A transceiver may be either a combined receiver/transmitter, or may comprise separate reception and transmission means. - The network may be an Internet protocol (IP) or other appropriate network. Each of the
devices 300 a to 300 n may be any kind of appropriate device, for example, personal computers, servers, mobile devices including portable radiotelephones and so-called personal digital assistants (PDA), laptop computers etc. For the sake of simplicity of explanation, however, the description herein will initially only consider a network of personal computers. Those skilled in the art will appreciate that the other types of appropriate devices mentioned above may be substituted in place of a personal computer without detracting from the inventive concepts described herein. - In a first embodiment each of the
devices 300 a to 300 n maintain, in their respective databases, details of other devices in the network. The contents of each database are arranged into what are herein referred to as database objects. - The way in which the contents of each database are acquired and maintained is described below.
- The
database 304 a ofdevice 300 a contains a list of database objects each of which contain details of a different device in thenetwork 310 with which it may communicate. Thedevice 300 a selects at least one database object relating to at least one of the other devices in thenetwork 310 and transmits a portion of itsdatabase 304 a to the selected device or devices. The transmitted portion of the database contains at least the address or network name of thedevice 300 a. It should be noted that the transmissions are unsolicited, i.e. they are not requested by the receiving device. - The
device 300 a may select a database object in thedatabase 304 a using a variety of different methods, such as random selection, pseudo-random selection, sequential or other algorithm-based selection. - Preferably a time stamp is included with each database object to indicate the time at which the database object was sent. Additionally, a unique identifier is preferably included with the transmitted database object. The unique identifier may be generated by any number of known methods, for example using a combination of the media access controller (MAC) address, the number of seconds since Jan. 1, 1970, and a randomly generate number.
- In the example shown in FIG. 3,
device 300 a chooses to transmit a portion of itsdatabase 304 a to thedevice 300 c. The portion of the database chosen for transmission may, for example, be the whole contents of the database, i.e. all the database objects in the database. Alternatively the chosen portion may contain only to some of the database objects, and hence relate to only a specific device or devices. - On receiving a database object, the
device 300 c checks itsdatabase 304 c to determine whether the database object exists already. This may be achieved by checking the unique identifier of the received database object. If thedatabase 304 c ofdevice 300 c does not contain the received database object, the received database object is stored therein. If thedatabase 304 c does contain the received database object the timestamp of the database object is checked against the timestamp of the database object stored in thedatabase 304 c. From the timestamps it is determined whether the received database object is more recent than that already stored. The received database object is stored in the database only where the received database object is more recent than that already stored. In a preferred embodiment, where a database object received by a device is older than that stored on its own database, the receiving device transmits its copy of the database object back to the sending device, thereby,enabling its database to be updated. - Each device in the network performs the same tasks described above. Over time, each device builds up and maintains a database of database objects, and therefore contains details of other devices in the network.
- Each device may be preprogrammed to determine both the frequency at which it sends database objects to other devices in the network and the number of devices to which database objects are sent. If the frequency of sending database objects is low, the time taken for every device in the network to know about other devices in the network will be long, resulting in inaccurate or out-of-date data in the databases of some devices. At the same time, however, the associated network traffic will be minimal.
- If the frequency of sending database objects is high, the data in the databases of the devices in the network will be more accurate, and will adjust more quickly to changes in individual devices. Consequently, the associated network traffic will be high.
- It can be estimated that the convergence of the network is of the order of P.log(N), where P=transmission interval and N=number of peers. For example, in a network with 1000 devices each having a transmission interval of 5 seconds, the overall convergence is of the order of 5×log(1000)=50. This means that half convergence is reached after only 50 seconds.
- If a device is removed from the network it will no longer be available should another device attempt to transmit a database object to it. In this case, the database object relating to the unavailable device may either be removed from the database, or, preferably, may be updated to show that the device is unavailable.
- When a new device is connected to the network, the new device can acquire details of other devices in the network in a number of ways. For example, the new device may send a broadcast message requesting that other devices send their address details. One alternative is to enter into the database of the new device the address of a known device in the network. Once the new device has at least one address in its database, the new device will quickly acquire details of other devices in the network.
- The frequency of transmitting database objects is preferably adapted according to device type. For example, a PDA or mobile device may only be connected to the network for short periods of time. It may therefore preferable that the information in the network is updated frequently. On the other hand, a server, which is permanently connected to the network, may need to transmit database objects from its database less often.
- In a preferred embodiment the frequency at which database objects are transmitted from one device to another varies according to device type. For example, for devices which do not change their status often, such as business PC's, a low frequency, e.g. 1-10 minutes, is sufficient. For mobile devices, on the other hand, a higher frequency, e.g. approximately every 1-10 seconds, may be desirable. This helps to ensure fast convergence of the information in the network. The frequency need not be constant for a particular device and may vary over time. For example, it may be preferable to increase the frequency of transmission when a device is initially connected to the network, or if data on the device is changing rapidly.
- Each device on the network is responsible for the management of its own database and may implement any number of ways for managing its database contents. For example, if required database objects may be overwritten according to a least recently used (LRU), least frequently used (LFU) or other appropriate algorithm.
- The above-described example embodiment illustrates how a network according to this embodiment adapts and converges so that, within a short time, most or all of the devices in the network have details of most or all of the other devices in the network.
- In a further embodiment, the database objects transmitted between devices may, in addition to including device address information, additionally include information relating to the device type and the availability of resources of the device. The information relating to the device type may indicate, for example, whether a device is a personal computer, a server, a PDA, a mobile device etc. The information relating to the availability of resources may indicate, for example, the processor type of a device, the amount of memory or disk storage available, whether a device is currently connected to the network etc.
- It is preferred that each database stores database objects relating to both ‘relevant’ and ‘non-relevant’ devices in the network. Relevant devices may be defined according to the following criteria: proximity of the device in the network e.g. network latency required to reach the device; computing capability of the device; probabilistic availability. Other criteria may also be used. A relevant device may, for example, be a device which is on the same network subnet, has available computing capability (e.g. not a PDA or mobile telephone) and is often in an idle state. It is preferable for each device to store information about local devices, which are generally more useful to the device, than to store details about distant devices. The purpose of storing details of some non-relevant devices is to improve the convergence of data in the network. Each device may apply the criteria differently or even have different criteria for determining ‘relevant’ and ‘non-relevant’ devices.
- In a preferred embodiment, around 0 to 10% of the database of a device is used to store database objects of non-relevant devices. In a private or closed network there may be no devices designated as non-relevant.
- This embodiment is particularly useful in the field of distributed computing and cluster networks as well as in other fields which allow the resources of other network devices to be known and used remotely. For example, if the
device 300 a wishes to carry out a computing task, such as the rendering of a large graphics file thedevice 300 a may use the information in its database to determine which devices in the network may be used to perform this task. - In yet a further embodiment additional database objects are stored in each device database. These additional database objects are transmitted between devices in the manner described above. These additional database objects may be, for example, file or other data packages. For example, the
device 300 a may decide to publish a database object (contained in thedatabase 304 a) to the network. In this context publish means the initial making available to the network of a database object. - Referring again to FIG. 3, the
device 300 a decides to publish a database object to the network. One way in which this may be achieved is to store the required database object in thedatabase 304 a. By doing so the database object is capable of being selected and transmitted to other devices in the network using the above-described mechanism. The selection and transmission of database objects is preferably carried out in accordance with the above-description and in addition to the selection and transmission of database objects relating to network devices described above. - In this way, a database object made available in a device database will, after convergence, be stored in most of the other device databases in the
network 310. Thereafter, should another device in the network require the same database object it should be located locally in its database. This enables a device to be able to access a database object locally, without requiring further network access. - One particularly useful feature is the ease with which a database object can be updated across the whole network. For example, if the
device 300 a modifies a database object, the modified database object will quickly be updated on other devices in the network, using the distribution mechanisms described above, without requiring any specific action from a device or user. - In a still further embodiment, a mechanism to effectively force the update of a device database may be employed. This is particularly useful in the case of mobile devices, or other devices which are not constantly connected to the network. A mobile device may only be connected to the network for short periods of time, for example, whilst downloading email or phonebook information. It is possible that the mobile device may be disconnected from the network before it has a chance to receive updated database objects from other devices on the network. One way in which such a device can force an update of its database is to choose a device upon connection to the network and to send the contents of its database to the known device. As described above, if the chosen device receives a database object which is the same but older than the one in its database, it will respond by sending back its copy of the database object. This will in turn cause an update, where required, of the database objects in the database of the mobile device. Preferably the device chosen upon connection to the network is a device which is known to be constantly connected to the network.
- It will be appreciated that the device databases throughout the network may not necessarily be completely synchronized with the other device databases in the network. For example, a device could be disconnected from the network for a period of time thereby preventing its database from being updated with any new database objects. Also, a device database may have limited storage capacity, for example on a PDA or mobile device, and therefore be physically unable to store all database objects received. In the above-described embodiment relating to distributed computing, for example, the accuracy of each database is not necessarily critical. Consider the situation where a database of a first device inaccurately reports that a second device is unavailable when it is in fact available. In this case, the first device will not be able choose the second the device for a distributed processing task, and will therefore be forced to choose another available device. On the other hand, if the database of the first device reports that a second device is available when in fact it is not, the first device will realize that the second device is not available as soon as it attempts to communicate the second device. This will therefore lead to the device database being updated to reflect the correct status of the device, which will in turn lead to the updating of other device databases in the network.
- The present invention therefore provides a self-sustaining network of devices in which each device (or element) of the network essentially functions independently of each other. This leads to a robust network with no central server and therefore requires no central maintenance or administration.
Claims (11)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01410124A EP1298854A1 (en) | 2001-10-01 | 2001-10-01 | Distribution of data in a peer-to-peer network |
EP01410124.0 | 2001-10-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20030076786A1 true US20030076786A1 (en) | 2003-04-24 |
Family
ID=8183122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/262,597 Abandoned US20030076786A1 (en) | 2001-10-01 | 2002-09-30 | Peer to peer network |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030076786A1 (en) |
EP (1) | EP1298854A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050125456A1 (en) * | 2003-12-09 | 2005-06-09 | Junichi Hara | File migration method based on access history |
US20070136306A1 (en) * | 2005-12-14 | 2007-06-14 | International Business Machines Corporation | Distributed method for synchronizing and updating bookmarks on multiple computer devices |
US20090249204A1 (en) * | 2008-03-27 | 2009-10-01 | Brother Kogyo Kabushiki Kaisha | File management system, mobile terminal, and computer-readable recording medium recording mobile terminal program |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2400200A (en) * | 2003-04-05 | 2004-10-06 | Hewlett Packard Development Co | Use of nodes to monitor or manage peer to peer network |
GB2419199A (en) | 2004-10-18 | 2006-04-19 | Sony Uk Ltd | Storage of content data in a peer-to-peer network |
US20140108615A1 (en) * | 2012-10-16 | 2014-04-17 | Norifumi Takaya | Method and apparatus for managing a catalog of media content |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265092A (en) * | 1992-03-18 | 1993-11-23 | Digital Equipment Corporation | Synchronization mechanism for link state packet routing |
US5781908A (en) * | 1995-12-18 | 1998-07-14 | J.D. Edwards World Source Company | File data synchronizer in a distributed data computer network |
US6067567A (en) * | 1997-02-20 | 2000-05-23 | International Business Machines Corporation | Message distribution capability which uses distribution nodes to collect acknowledgements for a primary node |
US20020049903A1 (en) * | 2000-10-23 | 2002-04-25 | Ussery Troy A. | Database management systems and methods of operating the same |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189043B1 (en) * | 1997-06-09 | 2001-02-13 | At&T Corp | Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation |
-
2001
- 2001-10-01 EP EP01410124A patent/EP1298854A1/en not_active Withdrawn
-
2002
- 2002-09-30 US US10/262,597 patent/US20030076786A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265092A (en) * | 1992-03-18 | 1993-11-23 | Digital Equipment Corporation | Synchronization mechanism for link state packet routing |
US5781908A (en) * | 1995-12-18 | 1998-07-14 | J.D. Edwards World Source Company | File data synchronizer in a distributed data computer network |
US6067567A (en) * | 1997-02-20 | 2000-05-23 | International Business Machines Corporation | Message distribution capability which uses distribution nodes to collect acknowledgements for a primary node |
US20020049903A1 (en) * | 2000-10-23 | 2002-04-25 | Ussery Troy A. | Database management systems and methods of operating the same |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050125456A1 (en) * | 2003-12-09 | 2005-06-09 | Junichi Hara | File migration method based on access history |
US20070136306A1 (en) * | 2005-12-14 | 2007-06-14 | International Business Machines Corporation | Distributed method for synchronizing and updating bookmarks on multiple computer devices |
US8001077B2 (en) * | 2005-12-14 | 2011-08-16 | International Business Machines Corporation | Distributed method for synchronizing and updating bookmarks on multiple computer devices |
US20090249204A1 (en) * | 2008-03-27 | 2009-10-01 | Brother Kogyo Kabushiki Kaisha | File management system, mobile terminal, and computer-readable recording medium recording mobile terminal program |
Also Published As
Publication number | Publication date |
---|---|
EP1298854A1 (en) | 2003-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102523256B (en) | Content management method, device and system | |
US8468250B2 (en) | Method for monitoring and providing information over a peer to peer network | |
RU2413981C2 (en) | Distributed file caching in network | |
CN111200657B (en) | Method for managing resource state information and resource downloading system | |
CN100588172C (en) | System and method for realizing network reserved storage | |
US8010488B2 (en) | Information distribution system, information processing device and memory medium | |
US6795864B2 (en) | System using lookup service proxy object having code and request rate for managing rate at which client can request for services from server are transmitted | |
EP2057823B1 (en) | Cache structure | |
US8250171B2 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
US8140645B2 (en) | Index server support to file sharing applications | |
US20090319502A1 (en) | Distributed peer location in peer-to-peer file transfers | |
US20110099226A1 (en) | Method of requesting for location information of resources on network, user node and server for the same | |
US8086629B2 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
US20030187931A1 (en) | Facilitating resource access using prioritized multicast responses to a discovery request | |
US20090154420A1 (en) | Method of and apparatus for managing neighbor node having similar characteristic to that of active node and computer-readable recording medium having recorded thereon program for executing the method | |
US7075895B1 (en) | System and method for facilitating discovery of network addresses and selected charateristics of computer systems and the like which are connected in digital data networks | |
US7739364B2 (en) | Method and apparatus for dynamically reconfiguring a server system | |
JP6500166B2 (en) | Randomized peer-to-peer synchronization of shared content items | |
US20030076786A1 (en) | Peer to peer network | |
US20100257256A1 (en) | Method for downloading file in parallel | |
US20080307045A1 (en) | Method, system and apparatus for managing directory information | |
US8676924B2 (en) | Server and simultaneous access control method thereof | |
KR100693724B1 (en) | File Distribution Method Using IP Address Information and Client and Client-Server Systems Implementing It | |
EP4057577B1 (en) | Addressing method and addressing apparatus | |
US20080288447A1 (en) | Methods and apparatus for improving peer efficiency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA Free format text: ASSIGNMENT BY OPERATION OF LAW;ASSIGNORS:HP FRANCE SAS;RICHARD, BRUNO;REEL/FRAME:013605/0678 Effective date: 20021112 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |