Seems we over-synchronized the DHT

- Removed the blocking synchronizations
This commit is contained in:
Joshua Kissoon 2014-05-09 14:11:58 +05:30
parent f5409c70e9
commit e8f0e20a8f
2 changed files with 12 additions and 13 deletions

View File

@ -14,7 +14,7 @@ public class DefaultConfiguration implements KadConfiguration
private final static long RESPONSE_TIMEOUT = 1500; private final static long RESPONSE_TIMEOUT = 1500;
private final static long OPERATION_TIMEOUT = 3000; private final static long OPERATION_TIMEOUT = 3000;
private final static int CONCURRENCY = 10; private final static int CONCURRENCY = 10;
private final static int K = 5; private final static int K = 10;
private final static int RCSIZE = 3; private final static int RCSIZE = 3;
private final static int STALE = 1; private final static int STALE = 1;
private final static String LOCAL_FOLDER = "kademlia"; private final static String LOCAL_FOLDER = "kademlia";

View File

@ -80,7 +80,7 @@ public class DHT
* *
* @throws java.io.IOException * @throws java.io.IOException
*/ */
public synchronized boolean store(StorageEntry content) throws IOException public boolean store(StorageEntry content) throws IOException
{ {
/* Lets check if we have this content and it's the updated version */ /* Lets check if we have this content and it's the updated version */
if (this.contentManager.contains(content.getContentMetadata())) if (this.contentManager.contains(content.getContentMetadata()))
@ -139,10 +139,9 @@ public class DHT
*/ */
return false; return false;
} }
} }
public synchronized boolean store(KadContent content) throws IOException public boolean store(KadContent content) throws IOException
{ {
return this.store(new StorageEntry(content)); return this.store(new StorageEntry(content));
} }
@ -155,7 +154,7 @@ public class DHT
* *
* @return A KadContent object * @return A KadContent object
*/ */
private synchronized StorageEntry retrieve(KademliaId key, int hashCode) throws FileNotFoundException, IOException, ClassNotFoundException private StorageEntry retrieve(KademliaId key, int hashCode) throws FileNotFoundException, IOException, ClassNotFoundException
{ {
String folder = this.getContentStorageFolderName(key); String folder = this.getContentStorageFolderName(key);
DataInputStream din = new DataInputStream(new FileInputStream(folder + File.separator + hashCode + ".kct")); DataInputStream din = new DataInputStream(new FileInputStream(folder + File.separator + hashCode + ".kct"));
@ -169,7 +168,7 @@ public class DHT
* *
* @return boolean Whether any content exist that satisfy the criteria * @return boolean Whether any content exist that satisfy the criteria
*/ */
public synchronized boolean contains(GetParameter param) public boolean contains(GetParameter param)
{ {
return this.contentManager.contains(param); return this.contentManager.contains(param);
} }
@ -183,7 +182,7 @@ public class DHT
* *
* @throws java.io.IOException * @throws java.io.IOException
*/ */
public synchronized StorageEntry get(StorageEntryMetadata entry) throws IOException, NoSuchElementException public StorageEntry get(StorageEntryMetadata entry) throws IOException, NoSuchElementException
{ {
try try
{ {
@ -212,7 +211,7 @@ public class DHT
* *
* @throws java.io.IOException * @throws java.io.IOException
*/ */
public synchronized StorageEntry get(GetParameter param) throws NoSuchElementException, IOException public StorageEntry get(GetParameter param) throws NoSuchElementException, IOException
{ {
/* Load a KadContent if any exist for the given criteria */ /* Load a KadContent if any exist for the given criteria */
try try
@ -241,12 +240,12 @@ public class DHT
* *
* @throws kademlia.exceptions.ContentNotFoundException * @throws kademlia.exceptions.ContentNotFoundException
*/ */
public synchronized void remove(KadContent content) throws ContentNotFoundException public void remove(KadContent content) throws ContentNotFoundException
{ {
this.remove(new StorageEntryMetadata(content)); this.remove(new StorageEntryMetadata(content));
} }
public synchronized void remove(StorageEntryMetadata entry) throws ContentNotFoundException public void remove(StorageEntryMetadata entry) throws ContentNotFoundException
{ {
String folder = this.getContentStorageFolderName(entry.getKey()); String folder = this.getContentStorageFolderName(entry.getKey());
File file = new File(folder + File.separator + entry.hashCode() + ".kct"); File file = new File(folder + File.separator + entry.hashCode() + ".kct");
@ -270,7 +269,7 @@ public class DHT
* *
* @return String The name of the folder * @return String The name of the folder
*/ */
private synchronized String getContentStorageFolderName(KademliaId key) private String getContentStorageFolderName(KademliaId key)
{ {
/** /**
* Each content is stored in a folder named after the first 10 characters of the NodeId * Each content is stored in a folder named after the first 10 characters of the NodeId
@ -292,7 +291,7 @@ public class DHT
/** /**
* @return A List of all StorageEntries for this node * @return A List of all StorageEntries for this node
*/ */
public synchronized List<StorageEntryMetadata> getStorageEntries() public List<StorageEntryMetadata> getStorageEntries()
{ {
return contentManager.getAllEntries(); return contentManager.getAllEntries();
} }
@ -303,7 +302,7 @@ public class DHT
* *
* @param ientries The entries to add * @param ientries The entries to add
*/ */
public synchronized void putStorageEntries(List<StorageEntryMetadata> ientries) public void putStorageEntries(List<StorageEntryMetadata> ientries)
{ {
for (StorageEntryMetadata e : ientries) for (StorageEntryMetadata e : ientries)
{ {