Joshua Kissoon
a2f48d2241
Content Refresh Operation improvement
...
- Added the improvement for content refresh operation from the paper, we keep the last time a content was republished, and on content update operations, we only republish if the last republish was before (current time - republishing time interval)
2014-04-26 23:19:13 +05:30
Joshua Kissoon
67c12438d1
Few minor updates and removal of completed @todos
2014-04-26 22:21:51 +05:30
Joshua Kissoon
41fb630515
Content Lookup Operation Update
...
Before the content lookup operation used to lookup a specified set of nodes then return the latest content; a short review of the paper showed that we only lookup until we find the Value then exit as soon as we do. Made the updates to the code.
2014-04-26 22:09:45 +05:30
Joshua Kissoon
4fab4320df
Routing Table Contact Management
...
- Added last seen data to contact
- Contacts are not sorted by lastSeen
- Contact updating last seen time is handled
Built a simulation to test the contact last seen updates
2014-04-26 21:26:02 +05:30
Joshua Kissoon
6253ad0ca6
Removed a few completed @todo comments
2014-04-25 16:21:23 +05:30
Joshua Kissoon
7c24ed7cff
Finished a few of the Todos
...
- Populate all of the K-Buckets on bootstrap
2014-04-25 16:17:09 +05:30
Joshua Kissoon
21b6667eb8
Routing Table Improvement
...
- Setup the RoutingTable to store contact instead of node
- This helps since we'll need more information in the routing to evict contacts, etc
2014-04-25 16:04:05 +05:30
Joshua Kissoon
c902ba26ab
Removed a useless copy of the GetParameter class
2014-04-25 15:25:40 +05:30
Joshua Kissoon
bf3280f62e
Few renames and minor changes
2014-04-25 15:23:34 +05:30
Joshua Kissoon
6978a8023b
Moved the receiver interface to the message/receiver package
2014-04-19 20:11:10 +05:30
Joshua Kissoon
6503c79681
ContentLookupOperation
...
Had a bug in the content lookup operation, if the total amount of content needed was not found, a Routing exception was thrown instead of returning what was found. Fixed the issue!
2014-04-19 15:09:07 +05:30
Joshua Kissoon
8e6052de23
ContentLookupOperation
...
CLO was timing out even if it had found the specified amount of content needed. Fixed that by exiting after the specified # of content required has been found
2014-04-13 19:15:24 +05:30
Joshua Kissoon
c31e0002e2
Change the wait time on operations to 50ms
2014-04-13 18:58:40 +05:30
Joshua Kissoon
4888bf4dd4
Improve response check time
...
When doing a NodeLookup, Content Lookup or Connect operation, after sending the message, we used to wait(operation_timeout) time before checking for a result.
Now what I'm doing is waiting for 100 ms and check for a result every 100ms; I keep a count of total time waited, and only when the total time > operation_timeout do we make a timeout.
So now we can handle the response if it comes in before Operation_timeout time is finished
2014-04-13 18:57:54 +05:30
Joshua Kissoon
eaeffeb0ba
Store content in string so saved file is easily readable.
2014-04-06 17:01:27 +05:30
Joshua Kissoon
1a5991404d
Updated the HashCalculator class to add some more functionality
2014-04-05 22:45:01 +05:30
Joshua Kissoon
33f9eea09f
Updated HashCalculator to add MD5 hashing in there
2014-04-05 22:39:33 +05:30
Joshua Kissoon
51de9cbc82
Re-Arranged a few packages a bit
...
Added a HashCalculator class
2014-04-05 22:36:46 +05:30
Joshua Kissoon
2dde2a75e0
Setup Content Updating
...
- Didn't do this before, but now it's setup: content will be updated on the DHT if a StoreContentMessage is sent with a newer version of the content
GetParameter
- Updated the GetParameter so that it can be constructed from a KadContent object or a StorageEntryMetadata object
- Move it to the DHT package
Others
- Added a few methods to StorageEntryMetadata, StorageEntryManager& DHT to simplify conversions between KadContent, GetParameter & StorageEntryMetadata
Tests
- Written a test to check content updating
2014-04-05 21:07:57 +05:30
Joshua Kissoon
cc1d03ba81
Some comments and fixes
2014-04-02 18:39:16 +05:30
Joshua Kissoon
3e236f4d17
Now we use a StorageEntry class to send data accross peers
...
Out KadContent interface also now specifies a set of methods to force it's subclasses to do their own toByte conversions
2014-04-02 18:05:14 +05:30
Joshua Kissoon
9190b122c7
The current mechanism for serializing content will not work for complex content types.
...
Now we need to add methods to KadContent objects to provide the byte[] format of their content and to re-read the byte format of their content.
2014-04-02 16:35:08 +05:30
Joshua Kissoon
5b3e01df4e
Fixed the bug "Getting content from reloaded node(Node whose state have been saved and re-loaded from file) NullPointerException".
...
Wrote a test to show getting content from reloaded node
2014-04-01 10:42:43 +05:30
Joshua Kissoon
1995682992
Had some issues with saving node state since saving configuration had a problem. We do not need to save configuration! Fixed the bug by making the configuration transient
2014-03-31 22:50:57 +05:30
Joshua Kissoon
b1ab1be760
Content Lookup wasn't working! Fixed the issue! stupid "!" in the damn statement!
2014-03-31 21:28:45 +05:30
Joshua Kissoon
a259579f4a
Created a KadConfiguration interface that allows passing in a configuration file as needed.
...
This allows other applications to create their own configuration files
2014-03-29 14:37:01 +05:30
Joshua Kissoon
6462722227
Fixed the bug where refreshing content routed content to wrong new nodes and also deleted content from localnode even if it was one of the closest!
2014-03-29 12:29:13 +05:30
Joshua Kissoon
c232fccc69
Added the getNodeStorageFolder method to the Configuration class rather than having it repeated in DHT and Kademlia
...
Added a getDHT method to Kademlia
Changed the folder structure in which content is stored in the DHT from Kademlia/substr(contentid, 10)/hash(content).kct TO Kademlia/ownerId/substr(contentid, 10)/hash(content).kct
2014-03-29 10:52:55 +05:30
Joshua Kissoon
426af4d345
Removed the Save_state decision from configuration and allow the user to specify if to save the state when they call shutdown
2014-03-26 16:23:17 +05:30
Joshua Kissoon
219e6073ed
Content deletion from a node that is no longer one of the K-Closest is working!
2014-03-22 15:52:37 +05:30
Joshua Kissoon
d9fdcc57fd
Fixed the bug that was causing replication of content files and StorageEntries. RefreshOperation working well!!
2014-03-22 15:27:22 +05:30
Joshua Kissoon
b93133337c
Added a method to store content only locally
...
Updated the StoreOperation to store content locally if the local Node is a part of the K-Closest to the content
2014-03-22 14:33:31 +05:30
Joshua Kissoon
42be8498c0
Finished the todos:
...
* @todo Make the KadBucket represent the Bucket interface
* @todo Change the code to reflect the bucket interface and not the specific KadBucket implementation
* @todo Update this interface and use this as parameter type, etc... instead of the KadBucket implementation used throughout the application
Now we're coding to the Bucket interface rather than the KadBucket implementation
2014-03-22 13:03:10 +05:30
Joshua Kissoon
6fdff97429
Setup the get bucket ID computation in one method.
...
Added Javadoc
2014-03-22 12:55:19 +05:30
Joshua Kissoon
104f20775f
Fixed the bug that was causing the problem when adding the local node to the routing table when the routing table is created.
...
- The problem was that we were creating the RoutingTable before the Node initialization was finished, which was causing some problems since the RoutingTable needs the NodeId which is not available until after the Node initialization
2014-03-22 12:41:46 +05:30
Joshua Kissoon
3f82c4a0ef
Did some code cleanups
...
- Add Comments
- Remove println statements
- Deleted useless comments, etc
2014-03-22 12:35:00 +05:30
Joshua Kissoon
21053a16ff
Fixed the Distance Comparison bugs by using a new KeyComparator class of type Comparable<NodeId> and using BigIntegers to represent the keys and letting BigInteger do the comparisons
2014-03-22 11:32:41 +05:30
Joshua Kissoon
0cc24d42f3
Trying to fix an issue in the nodelookupoperation where the k-Closest nodes system doesn't work.
...
Lots of extra code added, but we're still in devel! so ...
2014-03-22 10:53:05 +05:30
Joshua Kissoon
22fee9116a
Problem with serializing the DHT also, had to create a DHT specific Serializer class
2014-03-10 14:37:08 +05:30
Joshua Kissoon
e2ca9326c9
Got system state storage and retrieval of state to work!
2014-03-10 13:45:13 +05:30
Joshua Kissoon
e1e6e4e40d
Got storage to work!
2014-03-10 11:08:51 +05:30
Joshua Kissoon
d31f0e337f
Still working on saving node state, the code is a huge mess right now
2014-03-09 21:04:18 +05:30
Joshua Kissoon
eb7d7b53a4
Setup storing of System state on shutdown
2014-03-09 20:12:11 +05:30
Joshua Kissoon
630f8c2f28
2014-03-07 11:18:04 +05:30
Joshua Kissoon
46147eddd1
Finished a Basic version of the content refresh operation
2014-03-07 11:14:45 +05:30
Joshua Kissoon
a97905e431
Started working on the ContentRefreshOperation
...
- Setup a method to get all storage entries for the different content
- Started setting up the content refresh operation functionality
2014-03-06 20:42:30 +05:30
Joshua Kissoon
689a35b7bf
Cleaned up the core code, added comments and removed all Netbeans generated warnings
2014-03-06 16:51:42 +05:30
Joshua Kissoon
796e41dd9a
Updated the bucket refresh operation to use 1 thread to update each bucket
2014-03-06 16:38:46 +05:30
Joshua Kissoon
cabb5af742
Finish Bucket Refresh Operation :)
2014-03-06 16:24:50 +05:30
Joshua Kissoon
f91dea9e5f
NodeId.getFirstSetBitIndex was actually returning a distance value, but without a comparison, was confusing things.
...
Created a distance function to replace that.
Still working on Refresh Operations
2014-03-06 12:49:15 +05:30
Joshua Kissoon
acd7885dba
Started working on the RefreshOperations
2014-03-06 11:21:08 +05:30
Joshua Kissoon
e4726b93f8
Content Store, Retrieve and DHT File and Table management working well
...
Got a few Todos now to finish off
2014-02-26 21:35:37 +05:30
Joshua Kissoon
a12e075cec
Working on The ContentLookupReceiver
2014-02-26 19:16:44 +05:30
Joshua Kissoon
58f9157c9d
Finished coding the lookup content functionality
2014-02-26 18:58:55 +05:30
Joshua Kissoon
a2d0be6124
Finished DHT content storage and retrieval
...
Started working on Content lookup and sending content
2014-02-26 17:07:18 +05:30
Joshua Kissoon
b5e89c6ddb
Keeping with some good coding standards - Code to Interfaces not implementations
...
Changed the use of ArrayList to List and HashMap to Map
2014-02-26 11:57:59 +05:30
Joshua Kissoon
9f14c66a31
Persistent content storage now working perfectly!!!
2014-02-26 11:40:06 +05:30
Joshua Kissoon
c67e501df6
Content Sending working between nodes
2014-02-25 22:57:46 +05:30
Joshua Kissoon
fa4b29305e
Finished implementing a JsonSerializer to serialize Content
2014-02-25 18:58:32 +05:30
Joshua Kissoon
995da2cffb
Continuing work on message sending
2014-02-25 13:42:08 +05:30
Joshua Kissoon
faef3d03ec
Started working on sending content messages
2014-02-25 13:01:06 +05:30
Joshua Kissoon
44077d344d
Started working on Node refreshing the K-Buckets and DHT content at every time interval t
...
Started working on PUT, GET, STORE operation and on DHT Storage
2014-02-24 21:26:49 +05:30
Joshua Kissoon
3344511603
Finished NodeLookupOperation functionality! Finally found the bug
2014-02-22 19:37:04 +05:30
Joshua Kissoon
9eca0614f2
Still working on NodeLookupRequest
...
Updated the NodeId equals() and hashCode() methods; fixes the bug where several same NodeIds were being added to the routing table
2014-02-19 21:21:18 +05:30
Joshua Kissoon
1de348fc72
Working on NodeLookups
2014-02-19 15:54:15 +05:30
Joshua Kissoon
58df7be300
Started working on the NodeLookupOperation
...
Created some new Messages
Updated a few minor things
2014-02-19 13:00:29 +05:30
Joshua Kissoon
6ff6e8dc21
Fixed the NodeId Prefix Length method to give the correct prefixLength
2014-02-19 11:38:27 +05:30
Joshua Kissoon
ed1ac876f3
Fixed the bug in NodeConnection operation where the messages were still being re-sent even after an acknowledgement was received.
...
Fixed by canceling the TimerTask
2014-02-19 10:30:42 +05:30
Joshua Kissoon
b3e1403872
Initial Commit
2014-02-19 02:07:07 +05:30