Vectorize update()
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- api, performance
Research direction
Start by reviewing the existing update() entry points and the pybind11 and nanobind wrapper definitions for each sketch. Determine how primitive inputs and item containers are distinguished, then settle whether vectorization uses overloads or a separate method name. Done means all sketches support C++-side iteration with a consistent, transparent Python API.
Written by the indexing model from the issue text.
Description
Looping in python is slow. We should enable update() with multiple inputs where C++ handles the iteration, for all sketches.
For sketches that take primitive types this is simple and can be done by overloading update(). For item containers it may be less straightforward since a list is a type of object, meaning an overloaded may treat the list as a single thing to ingest.
IIRC, the wrappers (both pybind11 and nanobind) iterate through the possible methods in the order ini which they were declared in the wrapper definition, which is not good for API design: Lack of transparency, internal rearranging of code can cause side-effects, etc. So we probably need a different method name. Then we run into the question of whether we should use an overload where practical and a different name where necessary or if we go for more consistency.
- Dominant language
- Jupyter Notebook
- Stars
- 46
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/datasketches-python
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
apache/datasketches-python#65 · 2 reactions ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
apache/datasketches-python#63 · 2 comments ·
-
Difficulty 1/5 Under an hour Newbie friendliness 55/100
apache/datasketches-python#46 · 2 comments ·
All issues in apache/datasketches-python
Similar issues
-
area/sessions comp/cron comp/gateway P2 sweeper:risk-message-delivery sweeper:risk-session-state type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NousResearch/hermes-agent#118863 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
use-agent-os/agent-os#3312 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
needs-acceptance wg/data-plane-networking
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vllm-project/semantic-router#4024 · 1 comment ·