Live data from Hacker News

CouchDB 3.0

blog.couchdb.org

101–110 of 161 posts

Re: CouchDB 3.0

#101
post #59

Earlier quoted context omitted.

it's = "it is" its = possessive form of "it" So should be "it wins for its unique..".

there's always one...as in there is always one who has to poke people for grammer. sighs.

I make frequent minor grammar and spelling mistakes. Spoken english would rarely pick them up, nor would the listener be genuinely confused, but written english is different and while our Chomsky grammer parser is just one brain, we hear and read things differently. It is and It(possessive)s are not the same in semantic intent, and even sometimes in spoken flow people have to ask "did you mean it is, or it possesses" in some manner.

Spelling checkers which cannot read do not help. here and hear are both legal in the sentence parse in some ways, so cannot be detected as the wrong form without a higher semantic model. Few systems have this. Therefore, many small mistakes can creep through, apart from the ones I mis-type the system may itself be making them, in ways which our own spellchecking brain do not pick up. Here what I say, Hear what I say...

Re: CouchDB 3.0

#102
post #98
post #96

Earlier quoted context omitted.

> I’ve limited document size to 10mb and rate-limited updates to 10 per second. Client starts to update document with random data 10 requests per second. As far as I understand couch stores all versions at least some time. This means that this one client could fill space on my server 100mb/s. There is no such issues with PostgreSQL, and no one allow clients execute raw queries on database without any application serv…

It’s trivial to limit number of created documents in postgres, couchdb or application server though validation, I’m talking about updating document not creating new. In posgres if I update 1mb document used space will not always grow. In couch db situation is different. In case of relation db you have application server with custom logic and validations, couchdb from other side is accessible from outsize. My idea tha…

> It’s trivial to limit number of created documents in postgres, couchdb or application server though validation, I’m talking about updating document not creating new. In posgres if I update 1mb document used space will not always grow. In couch db situation is different. In case of relation db you have application server with custom logic and validations, couchdb from other side is accessible from outsize.

It is? It's unclear to me why I'm allowing 10 updates to a (largish, 10MB! Use a file or store it in S3!) document per-minute, but not 10 creates. Maybe I'm building Google Docs? Except I'd want old revisions, so those are creates. Plus 10 Mb is a huge spreadsheet. But sure lets roll with it. Actually Couch does not keep old versions of documents around, only old revision numbers. When a document is updated, the old version becomes eligible for compaction (basically garbage collection). So your attacker has to be fast enough to outrun the compactor, while being slow enough to not get temporarily banned from your service. It seems like less effort to me to use this power to flood your network I/O, which is almost certainly lower than your disk I/O. Or just choke your Postgres server on it's 100Mb/s disk I/O for updates + whatever is required to maintain your indexes.

I'm not actually advocating for Couch over Postgres. In my mind Postgres should be the default choice, and you switch to something else if you have a reason. For Couch, the biggest reason is sync is built in, in such a way that you can leverage it for your own applications with minimal effort. In my experience sync can be devilishly hard for non-trivial cases, so depending on your app, that can be pretty compelling.

But so far you seem to be focused on DOS attacks your not going to find separate advice for Postgres vs Mongo vs Couch, because the backing system doesn't matter. The attacks and mitigations are identical no matter the back-end, namely stop the traffic before it consumes your resources.

Re: CouchDB 3.0

#103
I'm surprised to see so much love for CouchDB in this thread. I don't think it's been widely adopted in corporate america and has lost the war to MongoDB closed source or not.

I joined a company where it's being used backing a mobile app with couch/pouch in production. We can't wait to get off of it. Writes are slow. Reads are worse. Having a DB per user is a scaling and backup nightmare. If you run into any issues, it's a ghost town.

I'm glad the CouchDB Team is forging ahead, but who is really using this database?

Re: CouchDB 3.0

#104

I'm surprised to see so much love for CouchDB in this thread. I don't think it's been widely adopted in corporate america and has lost the war to MongoDB closed source or not. I joined a company where it's being used backing a mobile app with couch/pouch in production. We can't wait to get off of it. Writes are slow. Reads are worse. Having a DB per user is a scaling and backup nightmare. If you run into any issues,…

Would you be willing to say more? Inquiring minds want to know.

Re: CouchDB 3.0

#105
post #100

Earlier quoted context omitted.

Its not just CouchDB, I did a lot of searching a little while back and I generally just don't like how tightly they've wrapped up almost all of the results. If you go by searching alone its overwhelmingly MongoDB positive to such an extent that its hard to believe its organic. It's definitely impressive marketing but when I'm deciding on which tool to use that arguably works against them as opposed to for them.

So you are choosing software on it's technical merit and not just on popularity and hype!? What if there are no breaking changes every third month, what are you gonna do? Solve actual problems!? :P

[deleted]

Re: CouchDB 3.0

#106

CouchDB is awesome, full stop. While it's missing some popularity from MongoDB and having wide adoption of things like mongoose in lots of open source CMS-type projects, it wins for the (i believe) unique take on map / reduce and writing custom javascript view functions that run on every document, letting you really customize the way you can query slice and access parts of your data... Example: I'm building a documen…

it's = "it is" its = possessive form of "it" So should be "it wins for its unique..".

My favourite technique for remembering this is to say "it is an apostrophe" (because it's is "it is", and has the apostrophe (in case that isn't clear :-) )).

Re: CouchDB 3.0

#107
post #59

Earlier quoted context omitted.

there's always one...as in there is always one who has to poke people for grammer. sighs.

Personally I wouldn't mind corrections on grammar. But I agree that the comments about grammar, even though in my opinion somewhat useful, still add noise to the discussion as a whole. I've been thinking about this and, I think having a "grammar patrol" that had the ability to alter other people's comments for grammar on a site like HN or Reddit might be useful. Maybe. Of course there is potential for abuse. So you'd…

We could avoid all that and just have a way of correcting comments (with history, diff, and all that) which would show up upon clicking, say, "show edited version" or whatever. By default it would display the original version, but if someone wishes, one could display the edited version. This way the noise would be hidden. Perhaps to be able to add such corrections to comments, you would have to have at least n_1 karma, be registered for n_2 months, and so forth as a defense mechanism against trolls.

I am sleep deprived. I hope my idea comes across properly. It sounds good to me right now, might not sound good tomorrow. :P It is definitely complicated though and not sure it is worth the effort to implement and maintain.

Re: CouchDB 3.0

#108

Earlier quoted context omitted.

it's = "it is" its = possessive form of "it" So should be "it wins for its unique..".

My favourite technique for remembering this is to say "it is an apostrophe" (because it's is "it is", and has the apostrophe (in case that isn't clear :-) )).

Yours is more amusing than mine, but...

I just remember that (possessive) pronouns don't have apostrophes. "My", "your", "his", "her", "their", and "our" don't have apostrophes, so why would "its"?

Meanwhile, contractions do have apostrophes. "Haven't", "should've", "that's", "you're", and "I'll" have apostrophes, so "it's" (meaning "it is" or "it has") should too.

Re: CouchDB 3.0

#109
post #59

Earlier quoted context omitted.

there's always one...as in there is always one who has to poke people for grammer. sighs.

Personally I wouldn't mind corrections on grammar. But I agree that the comments about grammar, even though in my opinion somewhat useful, still add noise to the discussion as a whole. I've been thinking about this and, I think having a "grammar patrol" that had the ability to alter other people's comments for grammar on a site like HN or Reddit might be useful. Maybe. Of course there is potential for abuse. So you'd…

Alternatively, allow people to suggest corrections to a message, a lot like code review tools allow line-by-line feedback or questions on code.

In order to prevent people from abusing it as another way to get their reply seen by everyone, you could make it a private communication between the comment author and the user giving feedback. Or make it possible for other users to see it, but make it hidden by default.

That way, if the author wants to correct their comment, they can, but nobody else has to see the clutter.

Re: CouchDB 3.0

#110

One interesting thing you can do with CouchDB is that you can have a webapp where a user can specify their own database and credentials and it works over HTTP(s). That's pretty unique. I'd love to see a SaaS using CouchDB and their "on-premise" offering just means the user provides their own database. I'm not sure how payment would work though - perhaps some verification proxy? Firebase is the gold-standard for offli…

I'm really can't wait for the per-doc permissions because I'm building something very similar to what you're describing and with CouchDB!focusing on the database and auth side first and then adding functions.

So shameless plug if you're interested in signing up for the alpha: https://www.aspen.cloud

Post reply on HN