Commit Graph

145 Commits

Author SHA1 Message Date
Joshua Kissoon
a9e5402697 Updated the routing table bucket class to copy the contacts to another data structure before sending them, preventing other parts of the system from modifying the core data structure 2014-05-18 15:17:36 +05:30
Joshua Kissoon
807a9965d0 Added a method to check if the server is running
NodeLookupReceiver
Only use the server if it's running
2014-05-13 11:22:56 +05:30
Joshua Kissoon
9e94a225fe Few minor changes 2014-05-13 11:17:26 +05:30
Joshua Kissoon
c23edf2cb9 Statistician
- Added some handling for 0 based values
2014-05-13 09:54:52 +05:30
Joshua Kissoon
a25b88a9bb Added a method to get the number of failed content lookups 2014-05-12 23:46:02 +05:30
Joshua Kissoon
42da6df375 In the content lookup statistics - added a value "isContentFound" to be passed 2014-05-12 23:41:45 +05:30
Joshua Kissoon
fca4a5fde5 Again set our storageentry to store a string
- we'll have to encode any byte array to base64 if we need to
2014-05-12 17:34:41 +05:30
Joshua Kissoon
cc0cdc42b5 Manage content in byte format since strings may have encoding problems! especially for compression, etc 2014-05-12 15:15:59 +05:30
Joshua Kissoon
66321280e6 Set the Serializable objects to implement the Serializable interface 2014-05-12 13:12:24 +05:30
Joshua Kissoon
0ee1001049 Merge origin/master 2014-05-11 23:55:08 +05:30
Joshua Kissoon
5c067e723a commit 2014-05-11 23:54:20 +05:30
Joshua Kissoon
b7c75c4e38 Changed StorageEntry to store content in String format since it's smaller 2014-05-11 18:59:35 +05:30
Joshua Kissoon
b49e8170f5 Updated content sending test 2014-05-11 16:02:36 +05:30
Joshua Kissoon
24abfe3d2a Storage Entry Usage
- Now we manage storage entries directly from the KadNode 
- rather than creating them all over the place
2014-05-11 15:39:43 +05:30
Joshua Kissoon
7b95d03d96 Moved the HashCalculator to the utils package rather than have it in a package of it's own
Keep the StorageEntry content in the byte[] format it was originally in rather than constantly changing it to a string
2014-05-11 15:15:26 +05:30
Joshua Kissoon
428cab774b Node
- Update the node's getInetAddress method to return InetSocketAddress instead of SocketAddress since we get more methods available with this
-- Specifically we get a comparison method which is needed
2014-05-11 12:36:10 +05:30
Joshua Kissoon
06f9eeae43 Updated the operation timeout to be the same as the response timeout! 2014-05-11 10:40:46 +05:30
Joshua Kissoon
210e3842ca ContentLookupOperation
- Forgot to initialize the route length checker

DHT
- Setup the subfolder for content to be 2 digits in length instead of 10
-- With 10, we only have 1 content in a folder, 2 will be better since > 1 content will be in a folder
-- Content with similar key tend to be in the same user, so they'll be alot in the same folder
2014-05-10 23:34:17 +05:30
Joshua Kissoon
d242e0a13a Route Length Computation
- Before we were doing this by just adding incrementing a value everytime we get a set of nodes as the reply of a FIND_NODE or FIND_VALUE RPC
-- This may be wrong since nodes the same distance away may reply and we'll still be incrementing for both
- Created a route length checker class to properly check route lengths

ContentLookupOperation
- Added the route length check to the CLO operation

Didn't add it to the NodeLookupOperation since I'm not sure we're using it anywhere... Though it can be useful there
2014-05-10 21:17:44 +05:30
Joshua Kissoon
799a4887dd Node Lookup OP
- Removed the unused error boolean
2014-05-10 21:15:24 +05:30
Joshua Kissoon
4fbc29fa24 NodeLookupOperation
- Removed the unused error variable
2014-05-10 21:06:46 +05:30
Joshua Kissoon
ed0a833e1a KadBucket Bug
- We were checking if the contact stale count was ">" stale value rather than ">=" stale value
2014-05-10 20:36:39 +05:30
Joshua Kissoon
673979c29a Routing Table
- We were not resetting the stale count of a contact when we saw it again, did that now
2014-05-10 19:52:21 +05:30
Joshua Kissoon
111cdc9e05 KadBucket
- Updated toString to display stale count of a contact

DHT
- Updated toString to print a count of content.
2014-05-10 19:28:19 +05:30
Joshua Kissoon
58696d627a Made a few KadBucket methods private
Changed the comparison of KademliaId to use the hashcode
2014-05-09 16:05:14 +05:30
Joshua Kissoon
e8f0e20a8f Seems we over-synchronized the DHT
- Removed the blocking synchronizations
2014-05-09 14:11:58 +05:30
Joshua Kissoon
f5409c70e9 Removed the excess method syncs 2014-05-09 13:22:40 +05:30
Joshua Kissoon
565bf50ddb Added some synchronization to the KadBucket and DHT 2014-05-09 11:54:21 +05:30
Joshua Kissoon
3ab6b3d2ab Renamed NodeId to KademliaId Since that's basically what it is! 2014-05-09 11:03:00 +05:30
Joshua Kissoon
ac950720f3 Contact
- Added equals() and hashCode() methods

KadBucketImpl
- Used a TreeSet instead of the TreeMap
2014-05-09 10:00:56 +05:30
Joshua Kissoon
f66d5f662f Routing Table Find Closest
- Added a shorter method
- Create a treeset to sort the nodes
- Add all nodes in the routing table to the treeset
- Then select the top Q nodes required from the treeset
2014-05-09 09:27:35 +05:30
Joshua Kissoon
89d5c48d28 Bucket Refresh Operation
- Just found a major Bug!!! We were doing 160 refreshes looking for nodes with the local nodeId as the lookup ID for all 160 refreshes
- Updated to check for nodes at different distances from the local NodeId

Content Lookup Operation
- We were still using KademliaNode instead of KademliaNode.getNode to use the mini node for comparisons
2014-05-08 22:28:22 +05:30
Joshua Kissoon
98fc727cbe Stop shutting down the server when we catch an exception
Catch a content not found exception in ContentLookupReceiver
2014-05-08 18:41:07 +05:30
Joshua Kissoon
72048ad8a1 Statistician
- Return data sent in KiloBytes instead of bytes
2014-05-08 10:58:24 +05:30
Joshua Kissoon
3705107ce6 KademliaNode
- Removed the isRunning boolean since it's not used
- Made the statistician transient since we only keep stats temporary
2014-05-08 10:41:51 +05:30
Joshua Kissoon
1ff0fb8284 Statistician
- Setup the bootstrap time to be in milliseconds instead of nanoseconds
2014-05-08 00:14:57 +05:30
Joshua Kissoon
32a6d7875b Statistician
- Made it an interface
- Implemented the interface and made the changes in the code to use the interface

- We do this because we'll extend the code for SocialKad
2014-05-07 23:45:23 +05:30
Joshua Kissoon
1d5d8004df KadServer
- Introduced artificial latency when we're in testing mode

ContentLookup & NodeLookup Operations
- Reduce the wait time between data checks to 10 milliseconds
2014-05-07 23:14:49 +05:30
Joshua Kissoon
e771c8fd44 Configuration
- Added Information to specify whether we're in a testing environment or a production environment
-- we can use this information to put in network latency, etc

Statistician
- Adding counting the number of sendData and receiveData operations

KademliaNode
- Removed the counting of contentLookup if we're getting the content from local storage
2014-05-07 22:43:15 +05:30
Joshua Kissoon
70bf6044b3 Added toString to statistician 2014-05-07 21:23:04 +05:30
Joshua Kissoon
718fa78b9d Statistician
- Returns some times in milliseconds instead of microseconds

KadServer
- Made a few operations synchronized
- Handled the exception when the timer is already canceled
2014-05-07 11:22:02 +05:30
Joshua Kissoon
1bee79789d Statistician
- Formatted the double returned by averages
2014-05-07 10:07:12 +05:30
Joshua Kissoon
67f6a0fe07 Statistician
- Added a method to find average content lookup route length
2014-05-07 09:46:48 +05:30
Joshua Kissoon
b90a87b149 Statistician
- Added measuring the route Length (Hop Length) of content lookup operation
2014-05-07 09:26:29 +05:30
Joshua Kissoon
92ce527c0c Statistician
- Changed over to using nanoseconds instead of milliseconds
-- Better Accuracy
-- milliseconds is not always properly measured
2014-05-07 00:54:55 +05:30
Joshua Kissoon
095738dcbc Statistician
- Added Timing Node Bootstrap.
- Added timing content lookup operation.
2014-05-07 00:41:49 +05:30
Joshua Kissoon
baeb656050 Cleaned up the code a bit
- Removed some unnecessary exception throwing
2014-05-06 12:59:43 +05:30
Joshua Kissoon
64dfdda1c3 Added a few utility methods 2014-05-06 09:53:06 +05:30
Joshua Kissoon
2adfc9b277 Statistics
- Added aggregation of total data sent and received by Server
2014-05-06 09:27:40 +05:30
Joshua Kissoon
899390b4a3 Statistics
- Renamed the statistics class to Statistician since that's is what it is - a statistician that manages the Kad statistics
- Passed the statistician to our Server to collect data
2014-05-06 09:21:34 +05:30