Ah OK, this helps. I read “query server” as “the system that processes queries submitted to the database” (where we added Mango) rather than the one that indexes documents based on user-defined javascript functions. You’re right that the protocol there could use some love, and that is hasn’t been a priority for the committers.
Apache Cassandra has matured nicely over the years and has certainly proven itself in a number of significant deployments. The CouchDB 2.0 clustering features do have a lot in common with Cassandra’s approach; both can broadly be described as “Dynamo-inspired". CouchDB’s replication capability is a real differentiator, and I also think the HTTP+JSON interface is a cleaner match for web and mobile application development. The ASF is a big tent :) I honestly do appreciate you taking the time to share this feedback. Cheers, Adam > On Feb 13, 2017, at 12:38 AM, Samuel Williams > <space.ship.travel...@gmail.com> wrote: > > Hi Adam, feel free to let me know what parts of the feedback were > confusion and I'll attempt to clarify. > > Regarding the query server, I assume you mean that the query server > was refactored on the Erlang side, but I was under the impression that > the externally visible API is largely the same. I made some proposals > here ages ago > https://docs.google.com/document/d/1JtfvCpNB9pRQyLhS5KkkEdJ-ghSCv89xnw5HDMTCsp8/edit?usp=sharing > and of course I was hoping for discussion but essentially nothing > happened to improve the situation since I wrote that document 4 years > ago. > > Some of the key points: > - Still does map well to the global scope imposed by languages like > Ruby, C++, etc. > - `rereduce` provides function directly while map use ddoc. > inconsistent and hard to compile AOT. > - No support for parallel computation or compression. > - Restricted to JSON which is a pretty major overhead for the query > server from my profiles several years ago. > > Another big issue is the loss of the _bulk_save all or nothing API, > which I used for transnational updates. Without that API, existing > code that worked with 1.0 was broken. > > The sharding made it a pain to set up and migrate existing 1.0 data > stores, yes probably my fault but it broke at least one production > site while I figured it out. > > Web interface is still pretty limited, some regressions in > functionality in Fauxton, general lack of direction to improve things. > > The idea of CouchDB being an application server largely ignored, left > to stagnate (e.g. lists). > > It's my humble opinion that for CouchDB 2.0, for the common use case > that it appears to be addressing, Cassandra would be a better option. > > But, look, what do I know. This is my opinion and take it with two > cents of salt :) I'm not trying to provoke an argument. I may be > misinformed, wrong, etc, it wouldn't be the first time. > > Kind regards, > Samuel > > > > > On 13 February 2017 at 17:28, Adam Kocoloski <kocol...@apache.org> wrote: >> Hi Samuel, thanks for sending this note. I have to admit that I find some of >> the feedback confusing — a new query server was one of the headline features >> of 2.0 — but that’s neither here nor there. It’s good of you to provide a >> clear statement about the future of the Relaxo projects. Cheers, >> >> Adam >> >>> On Feb 11, 2017, at 5:48 PM, Samuel Williams >>> <space.ship.travel...@gmail.com> wrote: >>> >>> My bad, the gem actually "Relaxo::QueryServer" :) But I'm sure no one cares. >>> >>> On 12 February 2017 at 11:46, Samuel Williams >>> <space.ship.travel...@gmail.com> wrote: >>>> Hi Guys, >>>> >>>> It's with a heavy (and slightly frustrated) heart that I've decided to >>>> stop investing time and effort into CouchDB. The 2.0 release moves >>>> further away from the core principals of CouchDB that made it >>>> attractive to me. In addition, a lot of issues in the core design of >>>> CouchDB (e.g. better query server & schema) seem to be ignored for >>>> years and so I've given up hope that there would be improvements. >>>> >>>> I'm not trying to be negative too much, the 2.0 release looks really >>>> great in a lot of ways - it's simply not what I'm after for my >>>> personal projects. >>>> >>>> The main point of this email is regarding the gems I maintained and >>>> published. >>>> >>>> For several years, I maintained an unpopular set of Ruby gems: >>>> "Relaxo", "Relaxo::Model" and "Relaxo::Query::Server". They are not >>>> used much but they were pretty decent client libraries. I'm >>>> refactoring the first two gems (never had a 1.0 release) as a Git >>>> based transactional database. So, from the next release (probably >>>> 0.6.0), they will have breaking API changes and no longer work with >>>> CouchDB. The third one - Relaxo::Query::Server, may be modified to be >>>> a git-based map-reduce server, so eventually that will be unavailable >>>> too. >>>> >>>> I'm just wanted to let anyone know, officially, what's happening with >>>> these gems as I feel it would be unfortunate for someone to be >>>> depending on them and not know what's happening or why. If you are >>>> stuck using these gems, know that they are now unmaintained in their >>>> current form, but you can pin to version "~> 0.4.0" and things would >>>> keep working. In addition, I've updated the confluence wiki to point >>>> to the best other option I know of (Couchrest) and removed links to >>>> these gems. When I update these gems, later today, they should not be >>>> published on the CouchDB news feed as they are no longer relevant. >>>> >>>> Thanks so much everyone. >>>> >>>> Kind regards, >>>> Samuel >>