Live data from Hacker News

Show HN: A Database Written in Golang

github.com

21–30 of 80 posts

Re: Show HN: A Database Written in Golang

#22

How do you connect to it and actually use it? Does it behave like a SQL database? Row-based? Column-based? Good for analytical workloads? Document store? Redis/memcached database? What are it's strengths or weaknesses? Cool accomplishment in and of itself but hard for anyone here to really give you any criticism or feedback without understanding where it excels and how to work with it.

It does not seem to speak SQL:

    $ git clone git@github.com:Sahilb315/AtomixDB.git
    Cloning into 'AtomixDB'...
    $ cd AtomixDB/
    $ go run .
    Welcome to AtomixDB
    Available Commands:
      CREATE       - Create a new table
      INSERT       - Add a record to a table
      DELETE       - Delete a record from a table
      GET          - Retrieve a record from a table
      UPDATE       - Update a record in a table
      BEGIN        - Begin new transaction
      COMMIT       - Commit transaction
      ABORT        - Rollback transaction
      EXIT         - Exit the program
    
    > create
    Enter table name: foo
    Enter column names (comma-separated): bar,baz
    Enter column types (comma-separated as numbers): 1,2
    Enter indexes (format: col1+col2,col3, ... or leave empty):
    Table 'foo' created successfully.
    > get
    Enter table name: foo
    
    Select query type:
    1. Index lookup (primary/secondary key)
    2. Range query
    3. Column filter
    Enter choice (1, 2 or 3):

It looks like records are stored in rows: https://github.com/Sahilb315/AtomixDB/blob/64c95afa8e574595c...

I do find the source to be well organized and quite readable. Especially if you runs the commands in the cli and then trace how they are each implemented.

Re: Show HN: A Database Written in Golang

#23

Earlier quoted context omitted.

Yep... but there are dozens of different types of databases out there. There is no way to look at this codebase and give any kind of feedback one way or the other without that understanding, particularly with zero usage examples. Which is what the OP is asking about.

> There is no way to look at this codebase and give any kind of feedback Less than a minute and I know how to use it. It's not complicated. The source code is available and fairly easy. If you can't figure out how to use it in a trivial amount of time, you aren't going to be able to offer anything of value. When did HN go from being about interesting stuff to making bold, ignorant statements like "There is no way to…

[flagged]

Re: Show HN: A Database Written in Golang

#25
post #17

Earlier quoted context omitted.

[flagged]

yeah as a dev/non-go person don't know how it works either. I assume main.go is where it starts but then what... I see a commands maybe it works by CLI? idk either

Yes it's a CLI REPL, you build and run the binary using the instructions in the README and then create/insert/select from it by typing those commands into the CLI.

Currently there's no way to connect to it like you would a normal SQL db, but you could embed it like you would sqlite.

Re: Show HN: A Database Written in Golang

#26
post #25
post #17

Earlier quoted context omitted.

yeah as a dev/non-go person don't know how it works either. I assume main.go is where it starts but then what... I see a commands maybe it works by CLI? idk either

Yes it's a CLI REPL, you build and run the binary using the instructions in the README and then create/insert/select from it by typing those commands into the CLI. Currently there's no way to connect to it like you would a normal SQL db, but you could embed it like you would sqlite.

Hopefully there is a help/man

Re: Show HN: A Database Written in Golang

#27
post #17

Earlier quoted context omitted.

[flagged]

yeah as a dev/non-go person don't know how it works either. I assume main.go is where it starts but then what... I see a commands maybe it works by CLI? idk either

You're a "dev," but don't seek out test folders/files for use case examples?

Don't let your employer know...

Re: Show HN: A Database Written in Golang

#28
post #17

Earlier quoted context omitted.

yeah as a dev/non-go person don't know how it works either. I assume main.go is where it starts but then what... I see a commands maybe it works by CLI? idk either

You're a "dev," but don't seek out test folders/files for use case examples? Don't let your employer know...

They can be a dev and not want to have to clone and explore the code. There's tons of little bits of friction that're not addressed by the "face" of the repo. E.g. The readme doesn't seem to imply how to connect to this database (the answer is you write to its stdin, it's not socket based).

We're not at work here. Low effort posts are allowed though not encouraged. Implying that making a low effort post somehow makes you not a developer ("you're a 'dev' but don't seem out tests?") is it's own low effort post, while also being hurtful.

Please, let's keep things kind, focused, and clear.

Re: Show HN: A Database Written in Golang

#30
post #6

Nice, did you follow a course or any resources to build it? Please share, I have a similar goal. Thank you.

I took a quick glance at the code, I believe it may build upon "Build Your Own Database From Scratch in Go" [0]. The first part of the book is available for free on the author's website, along with information on how to purchase the full book (which includes source code).

I share the same goal and am working through the material after working through Codecrafters' "Build your own SQLite" [1]. Good luck!

I apologize in advance for mistakes (formatting, et cetera). I just registered this account to point you toward resources I found helpful.

[0] https://build-your-own.org/database/

[1] https://app.codecrafters.io/courses/sqlite/overview

Post reply on HN