Find Jobs
Hire Freelancers

A Distributed Hash Table Implementation

$10-30 USD

Imefungwa
Imechapishwa about 3 years ago

$10-30 USD

Kulipwa wakati wa kufikishwa
Consider a set S of p strings: S = {s1, s2, . . . , sp} and a set N of q nodes: N = {n1, n2, . . . , nq}. Your purpose in this project is to implement a distributed hash table that will help find out efficiently whether a given string s exists in S (i.e., check if s ∈ S). In the meanwhile, insertion of new strings, and deletion of existing strings will be supported. The distributed hash table will be a composition of local hash tables maintained by each node separately. Let H denote the global (distributed) hash table and Hi (for 1 ≤ i ≤ q) denote the local hash table at node ni. The following should always hold true: s ∈ S ⇒ ∃i s.t. 1 ≤ i ≤ q, s ∈ Hi (1) ∀s ∈ S, @(i, j) s.t. 1 ≤ i ≤ q, 1 ≤ j ≤ q, i 6= j, s ∈ Hi, s ∈ Hj (2) ∀i, 1 ≤ i ≤ q, s /∈ Hi ⇒ s /∈ S (3) Equation 1 states that every string s in S should be inserted into at least one local hash table. Equation 2 gives an upper bound: a string s in S cannot be inside two distinct local hash tables. Equation 3 is implied by (1) and (2): if a string s is not in any of the local hash tables, then it cannot not be in S. A distinct node nc ∈ N is elected to be the coordinator node. Duties of the coordinator nc involve: • Distributing strings inside S to nodes of N in the setup phase (see below for details). • Managing user queries on a string s (a query is a set membership test on H): 1. Directing queries to all nodes of N (including itself). 2. Obtaining responses of the nodes on a query. 3. Calculating the final response based on local responses (s /∈ S if no ni has it). 4. Telling the final response to the user. • Keeping track of the number of strings in each Hi • Updating these counts as new strings are inserted and existing strings are deleted. • Managing insertion requests on a string s from the user: 1. Finding a node that has the minimal number of strings. 2. Sending s to that node for insertion. • Managing deletion requests on a string s from the user: 1. Finding the node that holds s (if any). 2. Asking that node to delete s. 1 Setup phase • The non-coordinator nodes start first. Each such node opens a server socket on a specific port number (passed to the program as a command-line parameter) and starts listening for a connection (from the coordinator). • The coordinator nc starts with the path to a configuration file passed as a command-line argument. The configuration file (say “[login to view URL]”) contains the following: – The number of nodes q on the first line; – One line per non-coordinator node (q − 1 lines total) listing each node’s IP address and the port number it is listening on; – The path to an input file (say “[login to view URL]”) that contains the strings (i.e., set S); – The number of strings p in S. The input file is structured such that every line contains a single string. You may assume that there are no duplicates in the input file (so that Equation 2 holds trivially). • Once started, nc establishes a socket connection with each non-coordinator node. • nc then reads the input file and sends each non-coordinator node (including itself) roughly p/q strings. Once setup phase is over, nc presents the user with 4 options: 1. Query a string s. 2. Insert a new string s. 3. Delete an existing string s. 4. Exit For each possible action, nc contacts relevant nodes as necessary. If the user wants to exit, then all socket connections will be closed properly and every node will terminate one by one. Example configuration file (“[login to view URL]”): 3 [login to view URL],4444 [login to view URL],4445 [login to view URL] 4 Example input file (“[login to view URL]”): Uzaktan egitim ne hos Ali ucaga bin Ahmet topu tut Ayse kalem al Sample command that starts the first non-coordinator node: java -cp . [login to view URL] 4444 Sample command that starts the coordinator node: java -cp . [login to view URL] [login to view URL]
Kitambulisho cha mradi: 29844409

Kuhusu mradi

5 mapendekezo
Mradi wa mbali
Inatumika 3 yrs ago

Unatafuta kupata pesa?

Faida za kutoa zabuni kwenye Freelancer

Weka bajeti yako na muda uliopangwa
Pata malipo kwa kazi yako
Eleza pendekezo lako
Ni bure kujiandikisha na kutoa zabuni kwa kazi
5 wafanyakazi huru wana zabuni kwa wastani $26 USD kwa kazi hii
Picha ya Mtumiaji
Hello JAVA EXPERT I have read your description and I am so interested in your project. You can see well experienced and skillful Java +15 years of experience in software development. Confident in your project and I can finish it clearly on time. Working with me, you will have a good experience and a good friend and save more time and money. ★★★★★★★★★★★★ Best regards!
$50 USD ndani ya siku 1
5.0 (41 hakiki)
5.4
5.4
Picha ya Mtumiaji
Hi sir I am interested to work with you. I can provide you professional web design services. I can design for you according to your requirements. I will give you unlimited revision until you will not satisfy for your design.I will deliver you this according to your time frame after your award. I can assure you several things. * I have expertise in Twitter Bootstrap, Angularjs, HTML5/CSS3, Php, java se,j2ee.... * I have a great web development sense. * Well organized and clean code easy to understand. * Validate according to w3c standards. * I can start it immediately. * Compatible with all modern browsers and mobile devices. Looking forward to hearing from you soon. Thank
$10 USD ndani ya siku 2
4.9 (26 hakiki)
4.6
4.6
Picha ya Mtumiaji
Hello :D I can help you finish the development I am good at JAVA. All the aspect will be built on your preference We can built it under 40$ We will provide live review , so that you can see the live updates I can also help you with any kind of future updates Pls text me, if you need an assistance Thank Yo
$30 USD ndani ya siku 1
5.0 (13 hakiki)
3.6
3.6
Picha ya Mtumiaji
Hello, Hope you're doing well. I am a senior Java developer with 5 years and can complete your project on time and within your budget. I have much knowledge in JavaFX and Java Spring. I have worked on similar projects to what you are looking for, and I am confident I can exceed your expectations. I can start working immediately if you give me a go. I can get familiar with the code written by other developers so that I can grab the current project and start to add/modify features on them. Thanks. ~Elena~
$30 USD ndani ya siku 1
5.0 (4 hakiki)
2.4
2.4
Picha ya Mtumiaji
Hello, Thank you for your care. I've just checked your job description carefully. I'm a senior developer with 8+ years of Java. By using Java, I used to make lots of projects and so on. Java is my major so you will feel satisfaction. Let's discuss your job in chat. With good English skills, I'm going to discuss the job with you. You want hire a reliable developer, don't you? If that's right, contact me. I would love to work with you. Look forward to hear from you soon. Thank you. Best Regards. Pavel
$10 USD ndani ya siku 1
5.0 (1 hakiki)
1.2
1.2

Kuhusu mteja

Bedera ya TURKEY
Adana, Turkey
0.0
0
Mwanachama tangu Jan 29, 2021

Uthibitishaji wa Mteja

Asante! Tumekutumia kiungo cha kudai mkopo wako bila malipo kwa barua pepe.
Hitilafu fulani imetokea wakati wa kutuma barua pepe yako. Tafadhali jaribu tena.
Watumiaji Waliosajiliwa Jumla ya Kazi Zilizochapishwa
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Onyesho la kukagua linapakia
Ruhusa imetolewa kwa Uwekaji wa Kijiografia.
Muda wako wa kuingia umeisha na umetoka nje. Tafadhali ingia tena.