Just clarifying one point further down

> On 16. Mar 2022, at 14:03, Ronny Berndt <ro...@kioskkinder.com.INVALID> wrote:
> 
> Hi,
> 
> I think we have to look at the discussion from different angles.
> It would be interesting to know how CouchDB is used in general.
> 
> - How many users use CouchDB as a single-node database?
> - How many users use CouchDB as a clustered database?
> - How many CouchDB users use a cluster and reach the limits of CouchDB?
> 
> (My) view as an end user or as a developer using CouchDB as a single-node
> data backend:
> 
> Try to keep things simple. Normally, as a user, I don't want or need to know
> how a kernel of an operating system, or an engine of a car works. When i
> press the
> "start" button, it should run and work. The same applies to the storage of
> data through CouchDB. These should somehow be saved as quickly and as best
> as possible, but how
> exactly what works doesn't matter to me as an end user.
> 
> Furthermore, it should be easy to get started with installing and
> administering CouchDB.
> There are already countless setting options to adapt CouchDB to your needs.
> My observation on Slack is that most (myself included) have much simpler
> problems.
> CORS-, Authentication-, Mango view-, Javascript view-, Q/N-, "bad redable
> and formatted" (erlang)
> error message-, DB-Backup-, Fauxton-, Replicator-, and Query-parameter
> questions, to name a few.
> 
> Development using FoundationDB as the storage backend was fairly silent. I
> have no
> feeling, or it is not entirely clear to me what advantages (or
> disadvantages) FDB could bring as an end user,
> but I don't want to have to worry about configuring a FoundationDB cluster
> yet - but
> maybe I'm just misjudging it and it wouldn't be like that at all.
> 
> As some have pointed out, there are many small and useful improvements to
> CouchDB 3.x
> exist, which probably makes more sense for the majority of users.


> Robert
> wrote it
> that the possibility of an alternative storage backend has existed since
> around 2016 and none was implemented
> until now.

The original suggestion in this thread was thinking of CouchDB as a layer on
top of a distributed data store, like FDB-Couch, but with other “backends”
that cover distribution in a network and data storage.

The current 3.x codebase has a feature “pluggable storage engines” that ships
with the default implementation `couch_bt_engine`. There is one early and
affect abandoned prototype of an in-memory implementation (hello Chewbranca ;)
and I have wrote ~85% of a SQLite-based storage engine that I have not open-
sourced, and I don’t know if I will be able to, but it exists and largely works.

Note that the storage here is on each CouchDB node, that’s a part of the CouchDB
layer cake that comes *after* distribution. In contrast, FDB takes over 
distribution *and* storage for us.

Let’s not conflate the two concepts, and take the (lack of) interest in one as
an outlook for usefulness of the other.

(I think PSE for Erlang-CouchDB is useful and I hope we get at least the two
variants I mentioned above properly released at some point, but that’s for a
future roadmap thread, a RocksDB variant would be feasible too).

What I don’t really see is an abstraction layer that allows end-users to choose
between multiple distributed data stores like FDB (say DynamoDB or CosmosDB),
even though that would be *really* interesting for CouchDB-interop. Those
implementations would be either a lot of work, or would be so generic that they
have to eschew many underlying-system-specific optimisations[1], that’s why 
don’t
think these would appear any time soon. But they *could* feasibly be done,
given enough developer time/interest.

[1]: I have some experience writing a PouchDB storage backend for CosmosDB using
the leveldown API and while it works, it is not taking advantage of running on
a database as sophisticated as CosmosDB (née DocumentDB).

Best
Jan


> My gut feeling is that it probably doesn't make sense to have
> CouchDB-FDB in active
> development state. Perhaps the best of what's going on now should be
> carried over into CouchDB 3.x.
> Others have raised many interesting points that I think make more sense to
> implement than CouchDB-FDB.
> 
> CouchDB is currently being pushed forward by a few developers, which is
> probably due to the fact
> that there are few Erlang developers who are also actively using CouchDB
> and can push the development forward.
> 
> - Ronny
> 
> 
> Am Di., 15. März 2022 um 22:52 Uhr schrieb Juan José Rodríguez <
> jjrod...@gmail.com>:
> 
>> Hi,
>> 
>> My team has been using CouchDB in different projects to support
>> synchronization in mobile apps. We don't use a db-per-user pattern strictly
>> but something that comes pretty close.
>> 
>> So far we have not encountered the limits and we are comfortable with
>> CouchDB 3.x., we were not particularly interested in incorporating
>> FoundationDB as we intuited a significant increase in the complexity of the
>> architecture which, at least in our case, was not necessary (admittedly in
>> exchange for very interesting functionalities).
>> 
>> We prefer to refocus development on CouchDB 3.x, we do not have a clear
>> position on the CouchDB-FDB option but would be concerned about any option
>> that would result in dividing the project efforts.
>> 
>> We believe that CouchDB 3.x has a lot of room for development with features
>> that can help increase its adoption and improve its usage at least in our
>> context:
>> - Incorporate support for mobile sync clients, e.g. allow initial syncs
>> without deletes.
>> - Rethink the db-per-user pattern, perhaps as an idea partitioned _changes
>> streams could help improve this aspect.
>> - Allow permanent document deletions or something like expiration policies
>> for deleted content. Any functionality that helps to keep databases
>> compact.
>> - Perhaps, better support for conflict resolution
>> 
>> Thanks,
>> Juanjo
>> 
>> El jue, 10 mar 2022 a las 17:24, Robert Newson (<rnew...@apache.org>)
>> escribió:
>> 
>>> Hi,
>>> 
>>> For those that are following closely, and particularly those that build
>> or
>>> use CouchDB from our git repo, you'll be aware that CouchDB embarked on
>> an
>>> attempt to build a next-generation version of CouchDB using the
>>> FoundationDB database engine as its new base.
>>> 
>>> The principal sponsors of this work, the Cloudant team at IBM, have
>>> informed us that, unfortunately, they will not be continuing to fund the
>>> development of this version and are refocusing their efforts on CouchDB
>> 3.x.
>>> 
>>> Cloudant developers will continue to contribute as they always have done
>>> and the CouchDB PMC thanks them for their efforts.
>>> 
>>> As the Project Management Committee for the CouchDB project, we are now
>>> asking the developer community how we’d like to proceed in light of this
>>> new information.
>>> 
>>> Regards,
>>> Robert Newson
>>> Apache CouchDB PMC
>>> 
>>> 
>> 

Reply via email to