9 ms·
Apply HN: Brodlist – a new type of database
Brodlist (http://brodlist.com) is new ground-breaking database that aims to replace the relational database.
Its features include Schema-on-Need, so that you don't have to model your database, just start using it. History is built in. You can query the current state of your data or how it looked a week or month ago just by specifying 'when' as part of the query. It's performant on commodity hardware and scales horizontally, which is why we can offer it for next-to-nothing. Because it's offered as a REST-ful service where the language is the interface, your API is built-in. What's more, the authorization is specified as queries, so you can easily lock down any set of rows or columns for any user.
Finally, it uses a new query language that is much simpler. To get the list of employee equipment in the Sales Department would be queried like this:
Employee.Equipment : Employee.Department = "Sales"
The same result in SQL requires this query:
SELECT q.* FROM Equipment q INNER JOIN EmployeeEquipment ee ON ee.EquipmentKey = q.ID INNER JOIN Employee e ON ee.EmployeeKey = e.ID INNER JOIN EmployeeDepartment ed ON ed.EmployeeKey = e.ID INNER JOIN Department d ON d.ID = ed.DepartmentKey AND d.Name = 'Sales'
SQL and the relational database has been around for 50 years. It's finally met its match.
- asakurasol 11y agoSounds neat! What's the performance tradeoff, if any? How far along development is it? Beta? Production ready?
- david927 11y agoThank you so much! I don't have direct competitive benchmarks but it reads and writes at around 620k/qps. It's in alpha right now at about 80% of completion.
- ibdknox 11y agoYou have symmetric read and write rates? That's pretty odd. Also if you are writing at that rate, presumably those writes aren't persisted? EDIT: That's also a rate of 1.6us per query. I've never heard of a JSON/REST stack that could take in and return results in that period of time. Are you doing something special to accomplish that?
- david927 11y agoI couldn't remember the write speed but it's about 80% of the read speed. The writes are persisted. The qps rates are for individual look-ups and do not include any HTTP latency, of course.
- extrapickles 11y agoSince this is a distributed database, there are a few questions I have: 1. How does it handle network failures where the nodes have a mixed ability to communicate to each other? (Server A can talk to B, but not C. C can talk to B but not A) 2. How does it manage hosts with widely differing clocks? If these haven't been developed/tested yet, how do you plan on solving those issues?
- david927 11y agoGreat questions. Thank you! Right now it's distributed on the same host and your guess is right, that hasn't been developed yet. The replication is mirrored with a central dispatch so that if a node isn't available , the other two provide a quorum. Widely differing clocks would be an issue and will require a lot of thought. I've already appealed for help to some very smart people I know and might have to do so again.
- davemel37 11y ago> I've already appealed for help to some very smart people I know and might have to do so again. Without knowing anything about this industry, technology or these founders, this phrase alone gives me enough confidence in their ability to execute on this or anything else they commit to.
- jerguismi 11y agoWas that sarcasm? To me it looks like these guys don't have an idea what they are doing. They advertise features which as well might be close to impossible. And their strategy is to appeal for experts? If they can deliver this, they should have quite good picture themselves how to deliver.
- david927 11y agoThe feature set was backed-into, in the sense that the technology came first and it was found it could and does support these features. We didn't make a shopping list of features and are now declaring we want to do that. Our research found a shopping list of features. I'm not saying we have to appeal to experts, I'm saying we want to. We've come this far, out-of-sync clocks on different hosts is certainly not going to stop us. But I mentioned asking experts because we've done it before and we will continue to do it again along the way, because one of the biggest mistakes as a founder that you can make is to think that you have all the answers. Finding smart people and trusting them is a separate skill and it's one to say that I'm proud that we have.
- llovan 11y agoSounds really interesting. When will it be available for testing and how will it be licensed, open source?
- david927 11y agoThanks. At its current pace it will be available for testing in four to six months. I'm not sure yet about open source but I'm very open to it. Licensing is still up in the air.
- deleted 11y ago[deleted]
- minimaxir 11y agoYour product pitch is very similar to the product pitch for Neo4j, a graph database which already has significant adoption: http://neo4j.com/product/ http://neo4j.com/product/ How does your database differ from graph databases?
- david927 11y agoNeo4j is great for what it does but if you look closely at the offering and read through the feature set (look particularly at the query language, for example), you can see the differences. This is a relational database and is chasing that market; its competitors are MySQL, Postgres, etc.
- vr3690 11y agoSo are you just providing an API and the database will be stored on your server? Or will users install it on their own hardware?
- david927 11y agoInitially we're providing an API but the idea of open sourcing it is very much on the table, which of course would allow users to install it on their own hardware.
- vr3690 11y agoCorrect me if I am wrong, but won't latency be an issue if connecting to a DB via an API? I would imagine that would be a deal breaker for most (especially for me).
- david927 11y agoGreat question! This is where other DaaS's have struggled and this is where we shine. The authorization model is robust enough that you can obviate a lot of the business-logic layer. Building a sports site and only friends of team members or the team members themselves can message each other? Build it in your authorization model. The UI will only see appropriate recipients and only be able to send messages to them. In other words, a lot of your architecture could become UI-DB direct and only a portion going through a business layer.
- dangoor 11y agoHow does this compare to Datomic? The model seems similar.
- david927 11y agoDatomic is awesome and I'm a huge Rich Hickey fan. The language is different and I believe better, and having history/versioning of the data baked-in is a big plus in our column. I could make a deeper comparison if you'd like.
- pbh101 11y agoI haven't used Datomic but I thought its entire premise is that the data is immutable and thus history/versioning was baked in. Am I missing something?
- ibdknox 11y agoThat is indeed the premise of Datomic, so I'm not sure how that would be a differentiator in this case. Beyond that, it's hard to make any statements on the difference between the query languages without more examples.
- david927 11y agoBaked-in as part of the language; the query language is where it stands out. I'll get you examples of that.
- ibdknox 11y agoFWIW, You can get transaction-time and the associated wall clock time in datomic's query language as well, though admittedly I can imagine cleaner ways of doing it :) http://stackoverflow.com/questions/11025434/in-datomic-how-do-i-get-a-timeline-view-of-the-changes-made-to-the-values-of-a http://stackoverflow.com/questions/11025434/in-datomic-how-d...
- tyre 11y ago1) Describe the team and why they're qualified to build a distributed database from the ground up. 2) What is the advantage compared with Postgres + Postgrest[1]? Considerations: a) Extensibility (e.g. PostGIS) b) Hosting (for large enterprises, cloud database may be a non-starter.) c) Stability d) Community e) Documentation f) Security Databases are scary.[2] As a developer, you would have to convince me that nothing would ever break since I damn sure am unqualified to be monkeying around in that code. As a CEO, you would have to convince me nothing would ever go down and this provides a significant advantage over Postgres. As a technical co-founder, you would have to convince me that you aren't going anywhere and will be able to build a substantial community. [1]: https://github.com/begriffs/postgrest https://github.com/begriffs/postgrest [2]: That isn't a reason not to do it.
- davemel37 11y agoI find it interesting that your first question is about why the founders are the right ones to build this and the second is about how it's different than existing solutions. Usually the idea gets discussed, than the team and competition. I think it is telling that the top comment on this post doesn't need to validate the idea and demand. That alone should count for considering in the YC Fellowship.
- spotman 11y agoA distinction without a difference. Both are things that investors would care about. Sorry but if this is the first experience the team has with building or maintaining data stores then I would definitely not invest. There is so much to learn from experience. Having said that, I imagine it's not, so it should be an easy question to answer one would hope.
- davemel37 11y agoOf course the questions are important. My only point is that the idea itself seems to resonate really well with the voters on HN, since the questions jump to execution related questions and bypass idea validation questions. > first experience the team has with building or maintaining data stores then I would definitely not invest. To that point, while admittedly I don't know enough about building and maintaining data stores, I think it is a mistake to pass on founders because they lack the experience needed to know what they are up against. Often it is that very quality of being too naive to know what they are up against that allows them to take on a massive project and completely change the world or disrupt an industry. I think the questions are fair and important to answer, I just think that great things are done all the time by people who have no clue what they are doing or up against going into the challenge...as long as they have the perseverance and resourcefulness to deal with whatever gets thrown at them, I would bet on them.
- pjlegato 11y agoHow is this different than Mongo with a little query language DSL on top?
- david927 11y agoIf you want to look at it that way, I won't stop you, but it's really not a popular comparison. Brodlist is a relational database and the query language is both quite powerful and, for some, simpler than SQL.
- pjlegato 11y agoI don't want to look at it in any particular way. I was asking for clarification, to see whether I understand the features correctly, and to determine what customers get by using your product. So the question remains: what does the customer get beyond using, say, Mongo? You say it's a relational database, but the Schema-On-Need feature sounds awfully NoSQLish. What's the point of using a fixed schema at all if it simply creates new fields on demand whenever you try to insert a nonexistent field? Why not just use Mongo in that case? Having a new query language that some people like is nice, but how do you plan to build a company around that? Why is it different or better than the hundreds of other query languages out there?
- david927 11y agoThanks for getting back to me -- to be honest, the question as it stood was confusing for me. Ok, I see what you're asking now and I apologize for not asking for more clarification. It's a really good question as are the additional questions here, so let me get to it. Do you remember when DropBox was announced on HN? One of the top responses was, "1. For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software." MongoDB, like most NoSQL stores, is hard to maintain, complex to query. To make the same query in the example above may be easy for you but it's not easy for most. You might think, therefore, that you're not the target market. I want to convince you you're wrong. You're going to love this. First, as you know Schema-On-Need is not just about adding fields on demand but also about changing the mapping cardinality on demand, and then being able to query that in a clear and simple way. That's one of the big changes this query language brings. If you are maintaining a list of Films, you'd be forgiven for expecting only one Director per film, but "Delicatessen" a 1991 French film has two: Jean-Pierre Jeunet and Marc Caro. If you query Film : Director.Name = "Jean-Pierre Jeunet" you'll get that and "Amelie" for example. You'll get all films where Jean-Pierre Jeunet was one of the directors. But if you want only films which were directed by both Jean-Pierre Jeunet and Marc Caro, you would say Film : Director.Name ^=^ ("Jean-Pierre Jeunet","Marc Caro"). Variations of that same operator will give you either one of those directors or films where directors are both but can be others. The query language also maps very nicely to be used in a BI tool. I'll try to get some examples of that to you, but I think that reason alone is extraordinarily compelling. The final reason why I think you'll come to love Brodlist will be when you use it. I'm going to make one more analogy if you promise not to shoot me for it. When Google came along, it was just another search engine among hundreds. And explaining the Page Rank algorithm didn't convince many people. But that changed when it was used and the hundreds of other search engines dissipated. My point is simply that hundreds of competitors can reflect not that it's solved, but possibly the opposite: that it's still unsolved. And the other point is that I can talk about it for a long time but what I'm looking forward to most is the chance to prove it to you.
- hluska 11y agoGood evening... I have a couple of general statements and questions. 1.) Good job on getting this far and congrats on making it to the first page. This is the first 'apply HN' that I've seen! :) 2.) You have a neat idea, so I did some research. I found an Indiegogo campaign backed up by a few Reddit posts, some HN posts, etc. How did your project (the semantic search engine) go? It sounds similar to this pitch - does the technology for this project stem from that project? What have you learned? 3.) How do you pronounce Brodlist? Is it broad list? Or maybe Bro D. List?
- david927 11y ago1) Thanks! 2) No one was interested in the technology as powering a semantic web search engine. I think Fred Wilson said something to the effect of, "Who would want this?" 3) It's pronounced 'broad list'.
- hellcow 11y agoWhat programming language is it built in?
- david927 11y agoNot sure. Don't know. C++.
- asimuvPR 11y ago1) What language is the database written in? 2) What are the key benefits of designing a new DSL for this database? 3) Given that it uses a built-in API, will security audits results be made public? 4) It seems to save "snapshots" of different moments in time. How does that affect database size? Does each snapshot act as its own database instance or is it just a data backup? 5) How do you plan to introduce and train programmers into using various different concepts at once? What kind of strategy do you plan to leverage for mind share? 6) You mention replacing the relation database. Explain how this is better than Microsoft's SQL Server. [Comparing a paid product against another rather than to a free one.] 7) Will this be offered as a stand alone product or as a service? 8) What other databases (or systems with similar complexities) has the team worked on / built ? 9) What makes this a must have standout product from other databases out there?
- david927 11y ago1) C++ 2) It's clearer and allows for more powerful constructs (even if they're not being talked about yet). 3) Yes. 4) It depends on the number of writes but you can adjust the level of history to the level you want. 5) Great question. I'll have to circle back to this later. 6) The feature list above beats SQL Sever on each point. 7) Initially as a service but that could change. 8) The research stems from the Kayia programming language (kayia.org). 9) The feature set for the price. It solves a lot of back-end needs and yet is much cheaper.
- smt88 11y agoWhy didn't you use Rust? (I swear I'm not a troll, and I'm genuinely curious.)
- sumodirjo 11y agoWhy rust? Why not using Go instead of C++
- smt88 11y agoWhy Rust? Because Rust has excellent concurrency support and memory safety, both of which are useful for databases. For something as low-level and performance-intensive as a database intended to replace MySQL/Postgres, Go wouldn't work because it's garbage collected.
- michaelmior 11y agoCould you explain what you mean by "Schema-On-Need"? I can just get start using a database with no schema, but I assume Schema-on-Need is different from that.
- david927 11y agoIn the example above, if Employees are only in one Department and suddenly you have the situation where an employee is in more than one department, you don't need to create a link table to model that. In other words, you don't need to think, "Is this a one-to-one, one-to-many, or many-to-many relationship?" before you start, it can just emerge as you go.
- michaelmior 11y agoSounds like new words to describe what graph databases do. Although I see you answered another question already comparing to Neo4J.
- deleted 11y ago[deleted]
- ioquatix 11y agoPerformant is not a word :)
- taneq 11y agoIt irritates me too (along with a lot of other trendoid jargon) but these newfangled kids here seem to all use it consistently.
- smt88 11y agoMuch like the word "database" itself wasn't a word until 1962. No word "is a word" until somebody makes it up. Then it spends some time as a word that people use that isn't in the dictionary. Then it's added to a dictionary. If you're going to be pedantic, at least choose words that aren't in widespread use and/or have a valid alternative.
- koolba 11y agoWhat's your business model? Will you be open sourcing the backend server? Why would anyone want to us this over the plethora of other choices for a persistent storage layer? Honestly, your example syntax doesn't look that appealing. I'm not saying SQL doesn't have its warts but if you're going to replace it, doing it at the language level integrated with a 4GL makes more sense (ex: like how rethinkdb rolls queries). Who's the target user for a new system like this, why would they use it, and why would they pay you?
- david927 11y agoWhat's your business model? Currently, hosting fees. We pay 3€/month and charge 10€ per 10GB instance. That could change and expand, though. Will you be open sourcing the backend server? Not initially but I'm very open to the idea. I think it would remedy a lot of the concerns voiced so far in this thread. Why would anyone want to us this over the plethora of other choices for a persistent storage layer? Someone else above wrote, "Everyone wants a faster, lighter, more energy efficient, and reliable car, am I right?" indicating that everyone would want it but doubting that it can launch. If you're using MySQL, Postgres or SQL Server as your database right now, you would be hurting your project to not change. To pick just two features, Schema-on-Need allows you to extend and expand according to the data, not your pre-conceived notion of how the data is structured, and the query language, which leads me to the next question: Honestly, your example syntax doesn't look that appealing. Maybe, to you. Here's the thing I'd like you to consider: it's not about you. The majority of users that we've talked to who don't know SQL find it easier to work with. The bigger reason still is that it maps nicely to BI tools. The key here is that we need to open up data access to more non-experts. Who's the target user for a new system like this, why would they use it, and why would they pay you? Target user: SME, startup currently using a relational database Why would they use it: "Everyone wants a faster, lighter, more energy efficient, and reliable car, am I right?" (The longer answer is in that same paragraph above.) Why would they pay: Because it pays. It gives them the features they want and at the same time saves them money. It can cost a startup several thousand every month to run a SQL Server Azure instance, for example, that would cost less than 50 with Brodlist, with more features.
- vs2370 11y agohave you looked at cockroachDB ?
- david927 11y agoYes, thanks. There's some overlap but I think the Schema-on-Need and new query language are two places, for example, where it strongly differs.
- maxpert 11y agoAnother hoax?
- catnaroek 11y ago(0) Regarding Schema-on-Need, let's assume the following scenario: When I begin developing an application, I'm not quite sure what my data model should be, so I insert data into the database without defining a schema. A few months later, I have a clearer idea of the data model I want, but my existing data set doesn't fit exactly in this model. Do you provide some way to “fit my database to a schema”? (1) Could you provide a proper specification of Brodlist's query language? Your example is too small to convince me that Brodilist's query language can express everything SQL can express. (2) Could you provide an example of a nontrivial application (like a small ERP module) that illustrates how Brodlist is more convenient to use than a traditional SQL DBMS?
- david927 11y ago(0) The idea is not to start without any schema but to start with one and then let it develop. In the example above, if Employees are only in one department and suddenly you have the situation where an employee is in more than one department, you don't need to create a link table to model that. In other words, you don't need to think, "Is this a one-to-one, one-to-many, or many-to-many relationship?" before you start, it can just emerge as you go. (1) You can find more at Kayia.org but more will be posted on the site soon. (2) A nontrivial application example is not available just yet and I agree with you that it would a great place to examine its trade-offs. The next several months will be quite busy but if you could please check in after that and I think we can eventually get you an answer you'll be quite pleased with.
- catnaroek 11y ago> In other words, you don't need to think, "Is this a one-to-one, one-to-many, or many-to-many relationship?" before you start, So, which is it: do I begin with a schema or not? If I don't need to think about the cardinality of relationships, then I don't have a schema. (My definition of “schema” is “a DBMS-enforced description of the logical structure of a database”. If I don't have to think about it, how can the DBMS enforce it?) > You can find more at Kayia.org The syntax is properly specified, but the semantics is not. Also, I keep getting lots of JavaScript errors when I try to use your website.
- deleted 11y ago[deleted]
- pjlegato 11y agoMarketing question: How do you plan to acquire customers? What channels will you use to get the word out? There are already dozens of very actively used databases out there. Some of them have track records that are decades long. There are dozens more new entrants into the market every year. How, in a marketing sense (not a technical sense) will you compete with them to get the word out and convince people that they should go with your solution instead of another?
- david927 11y agoThanks for the great question. How do you plan to acquire customers? What channels will you use to get the word out? Even though we're not officially in beta, we already have a customer we're working with and we've been curating a list of prospects for our beta who have a high-degree of both interest and pain (usually due to the amount they're paying every month, but also due to managing complexity). We'll work with them first, rather than a big launch event, and slowly start to market to other customers, mainly newly forming start-ups at first. (Which is another reason why a YC Fellowship could be very useful to us.) This market is highly reputation-based, which means word-of-mouth is more powerful than other markets. Our market research tells us that based on the feature set specified, prospects would not only find it compelling enough to evaluate but they said if it matches or exceeds expectations, they would be willing to tell others. Our channels for this initial market are mainly direct: talking to directly to companies in accelerators and incubators, meetups for startups, etc. There are already dozens of very actively used databases out there. Some of them have track records that are decades long. There are dozens more new entrants into the market every year. How, in a marketing sense (not a technical sense) will you compete with them to get the word out and convince people that they should go with your solution instead of another? We have things easier and harder than a normal product. With an app you can have a harder time clarify your offering but an easier time getting adoption. It's the opposite for us. To be embraced and see high rates of adoption, we have to be more than fractionally better than others in our segment. We have to be so much better that we exceed the risk costs of switching (or adopting) new technology and the risk of relying on an initially small firm. So far, our market research says that when we state our offering, our feature set, the value is usually quickly perceived. Someone in this thread referred to us as aiming to be the Tesla of databases -- that's it. But we have to pair that with immaculate execution. We're applying to the YC fellowship to give us the best possible odds for that type of execution (as well as potentially increase our pool of first customers).