shivendrasoni / algo_practice

This repository is a collection of few algorithms, programming problems and data structures I code in Javascript. Feel free to contribute and add your own.
1 stars 1 forks source link

Sweep: Implement consistent hashing in python in file consistent_hashing.py inside python directory #4

Open shivendrasoni opened 1 year ago

sweep-ai[bot] commented 1 year ago

Here's the PR! https://github.com/shivendrasoni/algo_practice/pull/6.

⚡ Sweep Free Trial: I used GPT-4 to create this ticket. You have 5 GPT-4 tickets left. For more GPT-4 tickets, visit our payment portal.


Step 1: 🔍 Code Search

I found the following snippets in your repository. I will now analyze these snippets and come up with a plan.

Some code snippets I looked at (click to expand). If some file is missing from here, you can mention the path in the ticket description. https://github.com/shivendrasoni/algo_practice/blob/5a24f1218442b6101d4c664dbddde5f8940e50c1/python/bloom-filter.py#L1-L51 https://github.com/shivendrasoni/algo_practice/blob/5a24f1218442b6101d4c664dbddde5f8940e50c1/python/compare_version.py#L1-L34 https://github.com/shivendrasoni/algo_practice/blob/5a24f1218442b6101d4c664dbddde5f8940e50c1/python/subtract-linkedlist.py#L1-L75 https://github.com/shivendrasoni/algo_practice/blob/5a24f1218442b6101d4c664dbddde5f8940e50c1/python/valid-number.py#L1-L37 https://github.com/shivendrasoni/algo_practice/blob/5a24f1218442b6101d4c664dbddde5f8940e50c1/python/merge-two-sorted-lists-ii.py#L1-L39

Step 2: 🧐 Snippet Analysis

From looking through the relevant snippets, I decided to make the following modifications:

File Path Proposed Changes
python/consistent_hashing.py Create a new file named consistent_hashing.py in the python directory. In this file, define a class ConsistentHashing with methods add_node(), remove_node(), and get_node(). Use the built-in hash() function in Python for the hashing function. Store the nodes in a sorted list to maintain the ring structure of consistent hashing. Implement binary search in the get_node() method to find the appropriate node for a given key.

Step 3: 📝 Planning

I have created a plan for writing the pull request. I am now working my plan and coding the required changes to address this issue. Here is the planned pull request:

Implement consistent hashing in Python sweep/feature/consistent-hashing

Description

This PR implements consistent hashing in Python as requested in Issue #4. It introduces a new file consistent_hashing.py in the python directory. The file contains a class ConsistentHashing with methods to add a node, remove a node, and get a node. The hashing function uses the built-in hash() function in Python. The nodes are stored in a sorted list to maintain the ring structure of consistent hashing. The get_node() method uses binary search to find the appropriate node for a given key.

Summary of Changes

  • Created a new file consistent_hashing.py in the python directory
  • Implemented the ConsistentHashing class with methods to add a node, remove a node, and get a node
  • Used the built-in hash() function for the hashing function
  • Stored the nodes in a sorted list to maintain the ring structure of consistent hashing
  • Implemented binary search in the get_node() method to find the appropriate node for a given key

Step 4: ⌨️ Coding

I have finished coding the issue. I am now reviewing it for completeness.


Step 5: 🔁 Code Review

Success! 🚀


I'm a bot that handles simple bugs and feature requests but I might make mistakes. Please be kind! Join Our Discord