Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Creating a new PR for semiring_application #1499

Closed
wants to merge 74 commits into from

Commits on Oct 14, 2024

  1. chore(hydroflow_datalog): update rust-sitter (#1495)

    The latest Rust Sitter drops the dependency on `tree-sitter-cli`, which
    eliminates many transitive dependencies.
    shadaj authored Oct 14, 2024
    Configuration menu
    Copy the full SHA
    4f6d400 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2024

  1. Configuration menu
    Copy the full SHA
    e564b13 View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2024

  1. style: fixes for nightly clippy (#1505)

    a couple few spurious `too_many_arguments` and a spurious
    `zombie_processes` still on current nightly (`clippy 0.1.84 (4392847410
    2024-10-21)`)
    MingweiSamuel authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    47cb703 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2024

  1. fix(hydroflow): cleanup temp tcp networking code, fix race condition fix

     #1458 (#1446)
    
    consolidate into one task to prevent races
    MingweiSamuel committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    b961233 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2024

  1. feat: generalized hash trie indexes for relational tuples (#1503)

    Generalized Hash Tries are part of the SIGMOD '23 FreeJoin
    [paper](https://dl.acm.org/doi/abs/10.1145/3589295) by
    Wang/Willsey/Suciu. They provide a compressed ("factorized")
    representation of relations. By operating in the factorized domain, join
    algorithms can defer cross-products and achieve asymptotically optimal
    performance.
    
    ---------
    
    Co-authored-by: Mingwei Samuel <[email protected]>
    Co-authored-by: Andre Giron <[email protected]>
    3 people authored Oct 29, 2024
    Configuration menu
    Copy the full SHA
    f7e740f View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. refactor(paxos): start splitting out leader election into a separate …

    …module (#1485)
    
    ---
    [//]: # (BEGIN SAPLING FOOTER)
    Stack created with [Sapling](https://sapling-scm.com). Best reviewed
    with
    [ReviewStack](https://reviewstack.dev/hydro-project/hydroflow/pull/1485).
    * #1493
    * #1492
    * #1489
    * #1488
    * #1487
    * #1486
    * __->__ #1485
    shadaj authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    dff2a40 View commit details
    Browse the repository at this point in the history
  2. docs: update setup.md --server-addr -> --address (#1457)

    changed --server-addr flag to --address
    
    Co-authored-by: Mingwei Samuel <[email protected]>
    Jameson-Crate and MingweiSamuel authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    48c7fb7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    32e2970 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8b7b1c6 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2024

  1. Configuration menu
    Copy the full SHA
    3064693 View commit details
    Browse the repository at this point in the history
  2. chore: remove unexpected file (#1511)

    git push --set-upstream origin clean
    
    Co-authored-by: “Dee <[email protected]>
    IceCoooola and “Dee authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    b6e5426 View commit details
    Browse the repository at this point in the history
  3. fix(paxos): be more careful about which parts of proposer and accepto…

    …r have to be maintained atomically (#1488)
    shadaj authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    275a0ed View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e7f4909 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0ba4265 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    871dc01 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    57a2b81 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2024

  1. Configuration menu
    Copy the full SHA
    38b17cd View commit details
    Browse the repository at this point in the history
  2. refactor(hydroflow_plus, paxos)!: simplify intervals and split Paxos-…

    …KV into separate module (#1516)
    shadaj authored Nov 3, 2024
    Configuration menu
    Copy the full SHA
    e5b456b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0a5abab View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2024

  1. refactor(hydroflow_plus)!: fold Tick vs NoTick into the location …

    …type parameter (#1519)
    
    Now, when the location is a top-level `Process` or `Cluster` that
    corresponds to a `NoTick`, and for streams inside a tick we wrap the
    location type (e.g. `Tick<Process<...>>`). This simplifies type
    signatures for a lot of our example code.
    shadaj authored Nov 4, 2024
    Configuration menu
    Copy the full SHA
    5657563 View commit details
    Browse the repository at this point in the history
  2. fix(hydroflow_lang): cross_singleton() forgot value if multiple run…

    …s in a tick, fix #1518 (#1520)
    
    Adds the minimal reproducer test from @shadaj
    
    Note this may have negative performance implications, as the singleton value now is stored in the state API (heap) instead of locally. If we use singleton syntax this duplicate allocation could probably be avoided.
    
    > Confirmed that this fixed the bugs in our Paxos implementation, no noticeable performance impact. @shadj
    MingweiSamuel authored Nov 4, 2024
    Configuration menu
    Copy the full SHA
    16b730c View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2024

  1. Configuration menu
    Copy the full SHA
    534fe97 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d9634f2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3143bf5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bf9dcd5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    244207c View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2024

  1. refactor(hydroflow_plus)!: dedup signatures for Singleton and `Opti…

    …onal` (#1526)
    
    Also renames `cross_singleton` to `zip` when both sides are
    singleton-like.
    shadaj authored Nov 6, 2024
    Configuration menu
    Copy the full SHA
    919099e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2faffdb View commit details
    Browse the repository at this point in the history
  3. fix(hydroflow_lang)!: fix #1401 lattice_bimorphism() double-emit, a…

    …dd docs (#1522)
    
    Fixes the issue by combining the all values generated per subgraph
    execution into one, which effectively de-duplicates the values.
    
    Adds basic docs.
    
    BREAKING CHANGE: changes exact behavior of `lattice_bimorphism()`,
    instead of emitting multiple items, will emit a single item which is the
    merge of what would've been all the old outputs. `Output: Merge<Output>`
    is a new required bound.
    MingweiSamuel authored Nov 6, 2024
    Configuration menu
    Copy the full SHA
    e796200 View commit details
    Browse the repository at this point in the history
  4. refactor(hydroflow_plus): deduplicate some error messages and drop un…

    …used `Interval` IR node (#1540)
    shadaj authored Nov 6, 2024
    Configuration menu
    Copy the full SHA
    5b819a2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4fcba1d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8442d1b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9f74405 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e9d05bf View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a1b4520 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    656ee32 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2024

  1. feat(Gossip KV): Cleanup Local and AWS Deployments (#1545)

    Closes #1529 (P0), #1528 (P1).
    
    Summary of changes:
    1. Local Deployments use Terraform.
    2. Both Local / AWS Terraform projects have been split into separate
    "infra" and "application" sections because there are intervening steps
    (building images, etc.) that need to be done before applications can be
    deployed.
    3. Independent documentation for each local/AWS deployment - should make
    it less confusing because these are expected to diverge.
    rohitkulshreshtha authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    33c2de2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f7b9559 View commit details
    Browse the repository at this point in the history
  3. ci: increase timeout for CI for Build CLI (Windows), fix #1547 (#1549)

    `Compiling pythonize v0.20.0` seems to take a long time
    
    Took 36m 46s for the record,
    https://github.com/MingweiSamuel/hydroflow/actions/runs/11728824729/job/32673130852
    MingweiSamuel authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    b43e6c7 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2024

  1. feat(hydroflow_plus)!: add an explicit API for creating tick contexts (

    …#1550)
    
    Previously, each location had a (semantic) global clock that drives
    ticks, and so all streams in a tick domain were all in the same atomic
    block. For future optimizations, we'd like developers to be able to
    place streams on the same location into different clocks to eliminate
    synchronization between them, which in turn would allow the computations
    in those separate clocks to be potentially decoupled across machines.
    shadaj authored Nov 8, 2024
    Configuration menu
    Copy the full SHA
    5d5209b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c7b5f32 View commit details
    Browse the repository at this point in the history
  3. refactor(hydroflow_plus)!: location type parameter before boundedness (

    …#1551)
    
    When looking at a prefix in an IDE, the location type argument is
    generally more useful.
    shadaj authored Nov 8, 2024
    Configuration menu
    Copy the full SHA
    9107841 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    baedf23 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0bd3a2d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1d35639 View commit details
    Browse the repository at this point in the history
  7. feat(hydroflow_plus)!: implicitly apply default optimizations (#1557)

    This also changes the behavior of `with_default_optimize` to be
    terminal, if users want to apply optimizations after these they should
    explicitly invoke the optimizations.
    shadaj authored Nov 8, 2024
    Configuration menu
    Copy the full SHA
    8d8b4b2 View commit details
    Browse the repository at this point in the history
  8. Release hydroflow_lang v0.10.0, hydroflow_datalog_core v0.10.0, hydro…

    …flow_datalog v0.10.0, hydroflow_deploy_integration v0.10.0, hydroflow_macro v0.10.0, lattices_macro v0.5.7, variadics v0.0.7, variadics_macro v0.5.5, lattices v0.5.8, multiplatform_test v0.3.0, pusherator v0.0.9, hydroflow v0.10.0, hydro_deploy v0.10.0, stageleft_macro v0.4.0, stageleft v0.5.0, stageleft_tool v0.4.0, hydroflow_plus v0.10.0, hydro_cli v0.10.0, safety bump 8 crates
    
    SAFETY BUMP: hydroflow_datalog_core v0.10.0, hydroflow_datalog v0.10.0, hydroflow_macro v0.10.0, hydroflow v0.10.0, hydro_deploy v0.10.0, stageleft v0.5.0, hydroflow_plus v0.10.0, hydro_cli v0.10.0
    hydro-project-bot[bot] committed Nov 8, 2024
    Configuration menu
    Copy the full SHA
    dcd48fc View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    5c53e12 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2024

  1. chore(docs): upgrade to Docusaurus v3 (#1558)

    Main breaking change is MDX parsing, which trips up on unescaped `<` in
    the generated docs, so we have to adjust the generator logic.
    shadaj authored Nov 9, 2024
    Configuration menu
    Copy the full SHA
    c58f13c View commit details
    Browse the repository at this point in the history
  2. ci: Update RELEASING.md (#1548)

    Some rephrasing, extra details, after working thru with Rohit.
    MingweiSamuel authored Nov 9, 2024
    Configuration menu
    Copy the full SHA
    ee2d4c8 View commit details
    Browse the repository at this point in the history
  3. fix(hydroflow_plus): restrict lifetime parameters to be actually inva…

    …riant (#1559)
    
    Our lifetimes were accidentally made covariant when the lifetime `'a`
    was removed from the process/cluster tag type. This fixes that typing
    hole, and also loosens some restrictions on the lifetime of deploy
    environments.
    shadaj authored Nov 9, 2024
    Configuration menu
    Copy the full SHA
    f6989ba View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f2213af View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2c17d65 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2024

  1. refactor(hydroflow_plus)!: don't re-export all of hydroflow (#1562)

    Reduces namespace pollution when wildcard-importing `hydroflow_plus`.
    shadaj authored Nov 12, 2024
    Configuration menu
    Copy the full SHA
    9f3c8c4 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2024

  1. fix(hydroflow_plus)!: rename union to chain and restrict LHS to b…

    …e bounded (#1565)
    
    Returning a `Stream` from `union` on unbounded streams was unsound,
    since the order of outputs is not deterministic.
    shadaj authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    eb1ad3a View commit details
    Browse the repository at this point in the history
  2. feat(hydroflow_plus): add round_robin helpers for networking (#1566)

    Also fixes compiler crashes when using `.enumerate()` on an un-batched
    stream.
    shadaj authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    22de01f View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2024

  1. Configuration menu
    Copy the full SHA
    971c5f1 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2024

  1. fix(docs): update hydro stack diagram and discussion (#1539)

    - Remove TODO.md (contents filed as an issue, #1538)
    - Update stack diagram
    - Update discussion of stack diagram
    jhellerstein authored Nov 17, 2024
    Configuration menu
    Copy the full SHA
    531bf81 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2024

  1. fix(docs): improve initial doc reading (#1570)

    - Change `README.md` to reflect the project as a whole, not just
    hydroflow.
    - Copy Rust getting-started info from Hydroflow docs to HF+ docs
    jhellerstein authored Nov 18, 2024
    Configuration menu
    Copy the full SHA
    f8f970e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    69668c3 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2024

  1. fix(hydroflow): avoid pulling in clap as a dependency (#1578)

    We only need it for examples, so this reduces compilation burden for
    `trybuild`.
    shadaj authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    64578f3 View commit details
    Browse the repository at this point in the history
  2. feat(hydro_deploy): use regular println when no tasks are active (#1577)

    Significantly improves the appearance of Hydroflow+ logs when the
    terminal causes wrapping.
    shadaj authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    8d550b9 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2024

  1. Configuration menu
    Copy the full SHA
    7c99294 View commit details
    Browse the repository at this point in the history
  2. docs(hydroflow_plus): polish quickstart and drop stale pages (#1576)

    I've decided to leave some more challenging TODOs as comments for now,
    just so we can get the live site back into decent shape.
    
    Also changes the "Get Started" button on the landing to point to the HF+
    quickstart.
    shadaj authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    8e1aed9 View commit details
    Browse the repository at this point in the history
  3. fix(docs): use async API required by Mermaid v10 (#1579)

    Docusaurus v3 broke Mermaid in the playground due to an API change.
    shadaj authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    0c104c5 View commit details
    Browse the repository at this point in the history
  4. feat(hydroflow_plus)!: introduce an unordered variant of streams to s…

    …trengthen determinism guarantees (#1568)
    
    Previously, sending data from a `Cluster` would return a stream assumed
    to have deterministic contents **and** ordering, which is false. This
    introduces another type parameter for `Stream` which tracks whether
    element ordering is expected to be deterministic, and restricts
    operators such as `fold` and `reduce` to commutative aggregations
    accordingly.
    shadaj authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    4c5ca31 View commit details
    Browse the repository at this point in the history
  5. feat(hydroflow_plus, stageleft)!: allow cluster self ID to be referen…

    …ced as a global constant (#1574)
    
    This eliminates the need to store `cluster.self_id()` in a local
    variable first, instead you can directly reference `CLUSTER_SELF_ID`.
    shadaj authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    a93a5e5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f96676d View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2024

  1. Configuration menu
    Copy the full SHA
    ec55910 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2024

  1. feat(hydroflow_plus)!: mark non-deterministic operators as unsafe and…

    … introduce timestamped streams (#1584)
    
    Big PR.
    
    First big change is we introduce a `Timestamped` location. This is a bit
    of a hybrid between top-level locations and `Tick` locations. The idea
    is that you choose where timestamps are generated, and then have a
    guarantee that everything after that will be atomically computed (useful
    for making sure we add payloads to the log before ack-ing).
    
    The contract is that an operator or module that takes a `Timestamped`
    input must still be deterministic regardless of the stamps on messages
    (which are hidden unless you `tick_batch`). But unlike a top-level
    stream (which has the same constraints), you have the atomicity
    guarantee. Right now the guarantee is trivial since we have one global
    tick for everything. But in the future when we want to apply
    @davidchuyaya's optimizations this will be helpful to know when there
    are causal dependencies on when data can be sent to others.
    
    Second change is we mark every non-deterministic operator (modulo
    explicit annotations such as `NoOrder`) with Rust's `unsafe` keyword.
    This makes it super clear where non-determinism is taking place.
    
    I've used this to put `unsafe` blocks throughout our example code and
    add `SAFETY` annotations that argue why the non-determinism is safe (or
    point out that we've explicitly documented / expect non-determinism). I
    also added `#![warn(unsafe_op_in_unsafe_fn)]` to the examples and the
    template, since this forces good hygiene of annotating sources of
    non-determinism even inside a module that is intentionally
    non-deterministic.
    
    Paxos changes are mostly refactors, and I verified that the performance
    is the same as before.
    shadaj authored Nov 27, 2024
    Configuration menu
    Copy the full SHA
    9393899 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2024

  1. Configuration menu
    Copy the full SHA
    6688e97 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2024

  1. Configuration menu
    Copy the full SHA
    78f6a32 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2024

  1. Configuration menu
    Copy the full SHA
    0dc709e View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2024

  1. feat(hydroflow_lang): initial flo implementation (#1585)

    Basic first pass implementation, without changing the current scheduler,
    no breaking behavior. Adds the flo syntax (`loop { ... }`), basic graph
    structure checks, nested loop blocks, and two basic windowing operators
    (`batch()` and `all_once()`).
    
    Next steps:
    - Needs scheduler changes:
      - Implement un-windowing operators
      - Implement windowing operator `repeat_n()` - 
    - Pipeline flags: Needs checking of bounded vs unbounded for `batch()`
    vs `all_once()`
    - Needs checking that all inputs into a loop agree
    - State type negotiations (for `batch()` and handoffs (?) - don't always
    use `Vec`)
    - Dag performance optimizations (lots of things)
    MingweiSamuel authored Dec 3, 2024
    Configuration menu
    Copy the full SHA
    b8acd84 View commit details
    Browse the repository at this point in the history