Most active commenters

    71 points murat3ok | 16 comments | | HN request time: 0.597s | source | bottom
    1. Arcuru ◴[] No.46240387[source]
    > Time-Travel Queries: Query historical data at any point in time:

    The example here looks like it may be storing the full history of transactions? Is that right? That's a pretty high cost to pay for something that's not touted as a marquee feature.

    I'm working on a DB[1] that stores full transaction history but it's so that I can support decentralized synchronization. It's in service of my marquee feature so I need to pay the cost of storing history, but I'm surprised that Stoolap also seems to be doing it for a local embedded database.

    [1] https://github.com/arcuru/eidetica

    replies(1): >>46242020 #
    2. rich_sasha ◴[] No.46240431[source]
    Looks very interesting!

    Some comparison to another embedded SQL DB, i.e. sqlite3, would be useful. How abusable is it? What tradeoffs are taken? Etc.

    3. seg_lol ◴[] No.46240453[source]

        Initial release: Stoolap - A Modern Embedded SQL Database in Pure Rust
        
        Stoolap is a high-performance embedded SQL database featuring:
        
        Core Features:
        - Full ACID transactions with MVCC (READ COMMITTED & SNAPSHOT isolation)
        - Cost-based query optimizer with adaptive execution
        - Parallel query execution via Rayon
        - 101+ built-in functions (string, math, date/time, JSON, aggregate, window)
        - Multiple index types: B-tree, Hash, Bitmap (auto-selected or explicit)
        - Multi-column composite indexes
        - WAL + snapshots with crash recovery
        
        SQL Support:
        - JOINs (INNER, LEFT, RIGHT, FULL OUTER, CROSS)
        - Subqueries (scalar, IN, EXISTS, correlated)
        - Common Table Expressions (WITH and WITH RECURSIVE)
        - Window functions (ROW_NUMBER, RANK, LAG, LEAD, etc.)
        - ROLLUP, CUBE, GROUPING SETS
        - Temporal queries (AS OF TIMESTAMP/TRANSACTION)
        - Views, RETURNING clause, ON DUPLICATE KEY UPDATE
        
        104K lines of Rust | No C dependencies | Full documentation at stoolap.io
    4. jdub ◴[] No.46240783[source]
    What an impressive release!

    It makes me very curious.

    Delivered to GitHub fully-formed: A grand total of 9 commits (mostly docs and CI fixes), all in the last 5 hours, and v0.1.0 released 3 hours ago.

    No external database/storage-layer dependencies, so it's not "just" a CLI/server/parser wrapper around other libraries doing the "real work".

    It appears to have a substantial test suite (76% code coverage, not skipping the scary bits), and great documentation.

    There's a bit of context on https://github.com/stoolap but not much else about the author, project goals, relationship to other systems, e.g. it could be the data layer for something else.

    (Interestingly, there's an archived stoolap-go repo with a very similar Go implementation of a columnar/hybrid database, so this is not the author's "first draft".)

    replies(2): >>46240813 #>>46241173 #
    5. forgotpwd16 ◴[] No.46240813[source]
    Can assume they worked on this last few months when they stopped development in the, now archived, Go attempt, but they scrapped the entire git history on publication. Still, even if consider heavy AI use, looks like they put quite the effort in this.
    6. Sytten ◴[] No.46240959[source]
    In the same area, I am tracking the Rust rewrite of sqlite by Turso [1]. The big advantage is the file format compatibility.

    [1] https://github.com/tursodatabase/turso

    7. esafak ◴[] No.46241173[source]
    I too am curious how to the first commit came about: https://github.com/stoolap/stoolap/commit/768eb836de0ff072b8...

    Note to owner: CI is broken.

    8. sudarshnachakra ◴[] No.46241294[source]
    Does this support concurrent writers (unlike sqlite)? Quite an impressive feature set for a one-person project.

    Also is this a single file DB? If so is the format stable?

    9. edf13 ◴[] No.46241870[source]
    Sounds very interesting - I’ve used SQLite in a few Rust based projects where performance was the deciding factor… a perf comparison with this would be very useful
    10. dash2 ◴[] No.46241928[source]
    I think the name is not good. It sounds like "stool app". Among other things, "stool" means poo.
    replies(4): >>46242017 #>>46242257 #>>46242283 #>>46242320 #
    11. duttish ◴[] No.46242017[source]
    Yea, my first association was stool -> poo.

    I've been trying to think of what other meaning they could have gone for but got nothing. Stoo lap? Sto olap?

    12. rich_sasha ◴[] No.46242020[source]
    I would imagine (but haven't looked at it at all) that it's a byproduct of an append only data format. Then having a historical PoV is cheap - you simply disregard changes after a certain time.

    Append-only has many other benefits, including zero contention between many readers and (single) writers. In the vanilla version, writers still contend though.

    13. kolektiv ◴[] No.46242257[source]
    Another voice basically begging them to change the name here, yeah. It might be quite interesting as a tool, but please...
    14. ◴[] No.46242283[source]
    15. ◴[] No.46242320[source]