3 ms·
> Or you can use a query language mostly similar to what MongoDB uses Yes, provided you started on 2.0, as I specifically stated in a reply. > That's a featur
by facetube 8y ago
> Or you can use a query language mostly similar to what MongoDB uses
Yes, provided you started on 2.0, as I specifically stated in a reply.
> That's a feature. If they don't usually change together put them in a separate design documents.
Unnecessary computation and I/O is not a feature. They should hash the views individually. A database that makes me do extra work to keep it from doing unnecessary work is not helpful.
> So managing documents yourself is kind of what you do. Isn't it?
This doesn't have anything to do with the unnecessary index rebuilds. CouchDB has all of the information it needs to avoid this unnecessary computation and I/O.
> So have more shards
More shards spending time serializing and deserializing JSON instead of doing useful work. Throwing shards at inefficient code might help, but it doesn't address the underlying problem.
> Shared memory IPC doesn't magically solve problems but it is a minefield of bugs.
Lots of database systems manage to use it just fine. You probably use one of them. And it does solve a problem: it avoids serializing and deserializing all of your data down a pipe.
> Large blocks of allocated memory use malloc instead of brk so memory allocation uses mmap.
Yes, with MAP_ANONYMOUS. I'm not talking about anonymous mappings.
> Hmm, seeing kswapd being active is not something I look forward on a production server.
For swap? Sure. For file-backed mmap pageout guided by madvise? I actually do. It means the VMM is being used for its intended purpose.
> bulk docks is not a transactional feature
It was an example of the one way to achieve an atomic write of multiple documents, which comes in very handy for any nontrivial application.
I'd honestly be fine with them just deprecating the entire external view server protocol – but as it stands now, it's a supported feature, the performance documentation in 5.2.5 of the manual is nonsensical, and it performs very very poorly due to excessive serialization/deserialization and inefficient IPC.