CouchDB Weekly News, July 23, 2015

Major Discussions

Windows build failing on couch_ejson_compare.c (see thread)

As reported in the previous Weekly News, there was a problem with the Windows build blocked by khash NIF (see thread). Now it has been tried to revert to the old-style ets approach on Windows, conditionally using khash only on *NIX. The first go on @wohali’s Windows build went well up to compilation of couch_ejson_compare.c. The PR awaits a +1 from a *nix person before merging.

Optimizing chunked transfer-encoding and the impact on clients (see thread)

It has been discussed how to deal with the chunked transfer-encoding capability of HTTP/1.1 to stream _all_docs, _changes, _view and similar responses to clients, that CouchDB uses. As it is more efficient to coalescent multiple rows into a chunk and yields throughput improvements, this change also bears the risk of breaking clients that have been organised on sending single rows-per-chunk. (More details on this topic can be found in COUCHDB-2724 and associated Pull Requests). Several options have been analysed and discussed.

High CPU after loading 15K documents (see thread)

While monitoring CouchDB, a user is concerned that the CPU keeps around 10-12% of the time from the erlang processes and wants to find out, why it takes CPU time, when only a new document is added to the DB each 5-6 minutes and there are only few read requests.

npm releases and ASF releases (see thread)

Some questions regarding npm releases and the ASF/ASF releases and reposting them, came up in a former discussion (Welcome nano to the ASF), and have been re-addressed: “How do we handle npm releases? Currently Nuno Job, Pedro Teixeira and me have write access on npmjs.com. This needs to be changed so we maybe can have a CouchDB account? Also, how does the Apache release procedure work for npm packages?”

An approach to automate releases, maybe with the help of semantic-release, was suggested.

[couchrest] (see thread)

A pull request, “Persistent Connections and Streaming”, for the CouchRest gem includes a few, possibly breaking, API changes. The change boils down to replacing RestClient with HTTPClient which adds support for:

  • Persistent HTTP connections
  • Built-in streaming

You’re invited to help with feedback to the beta (version 2.0.0.beta1), before a final version will be released.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

CouchDB Use Cases, Questions and Answers

  • Use Case: CouchDB Statistics: A CouchDB backend for the core Statistics module
  • QusetionNo CouchDB filter parameter working with CoachDB and Dreamfactory, is this normal? Answer:CouchDB doesn’t have a filter language. One needs NoSQL with traditional SQL-like filter arguments.

Stack Overflow:

no public answer yet (Stack Overflow):

For more new questions and answers about CouchDB, see these search results.

PouchDB Use Cases, Questions and Answers (PouchDB)

Stack Overflow:

For more new questions and answers about PouchDB, see these search results.

Get involved!

If you want to get into working on CouchDB:

  • We have an infinite number of open contributor positions on CouchDB. Submit a pull request and join the project!
  • Do you want to help us with the work on the new CouchDB website? Get in touch on our new website mailing list and join the website team! – www@couchdb.apache.org
  • The CouchDB advocate marketing programme is just getting started. Join us in CouchDB’s Advocate Hub!
  • CouchDB has a new wiki. Help us move content from the old to the new one!
  • Can you help with Web Design, Development or UX for our Admin Console? No Erlang skills required! – Get in touch with us.
  • Do you want to help moving the CouchDB docs translation forward? We’d love to have you in our L10n team! See our current status and languages we’d like to provide CouchDB docs in on this page. If you’d like to help, don’t hesitate to contact the L10n mailing list on l10n@couchdb.apache.org or ping Andy Wenk (awenkhh on IRC).

We’d be happy to welcome you on board!

Events

Job opportunities for people with CouchDB skills

Time to relax!

  • “Last week I spoke at a new conference in Dublin called InspireFest: fresh perspectives on leadership, innovation and diversity in science, technology, engineering and mathematics (Stem). It was a Stem conference with a difference – 75% of the speakers were women.” – Technology still has a problem with women – but change is in the air
  • ““Safe space”: it’s an idealistic term. It’s just not a case of “if you build it, they will come.” It takes some work to get a website to a place where users will feel welcome. I spoke to the founders and editors of Femsplain, CirclePlus.co, Black Girl Nerds and Autostraddle as well as the marketing head at Disqus and the founder of dating app Thurst, to find out what it takes to create safe spaces online.” – How Niche Sites are Building Safe Spaces and Better Communities
  • “Small modules favor library authors at the expense of library users. Because library authors typically have larger megaphones (more Twitter followers, more credibility on GitHub and Hacker News, etc), their voices are heard more often.” – Small modules: it’s not quite that simple
  • “Reem was one of several students invited to participate in the public forum with the chancellor last Wednesday, part of a discussion series called Living Well in Germany. ‘Politics is sometimes hard,’ the chancellor said…” – Tearful Moment With Merkel Turns Migrant Girl Into a Potent Symbol
  • “There’s a funny thing about survival. People think it’s about strength. About not surrendering. It twists your mind around, shines lights into the path ahead so you can find your way back, but it also blinds you, softly covering the spaces you can’t bear to see. Yet, still, here I am, surviving, all while feeling like I surrendered my whole life to surviving.” – On Wednesdays we wear our Battle Scars

… and also in the news

CouchDB Weekly News, July 16, 2015

Major Discussions

Welcome nano to the ASF! 🙂 (see thread)

nmo is now a subproject of CouchDB, like nano. nmo is a cli client for managing CouchDB 2.0 clusters. See here for the code location and the Github mirror.

View thread for simple quickstart introduction.

Windows build blocked by khash NIF (see thread)

Progress on the Windows buildUnfortunately a release blocker on Windows in the khash NIF was detected. This NIF expects to call an Erlang BEAM VM internal function, make_hash2().

Proposed three options:
1) Build a custom beam.smp.dll on Windows that exports make_hash2, which means that Windows builds have to have a custom built Erlang with patches. This would have to be written and will never be able to run against stock Erlang builds from erlang.org.

2) Revert to the old-style ets approach on Windows, conditionally using khash only on *NIX, an idea that had been proposed earlier and would involve having to load the khash app only when not running on a Windows platform.

 3) Ship CouchDB 2.0 without a Windows build – even though it seems that the Windows build is popular.

Previous discussion:

Windows PR #1 (see thread) / Windows PR #2 (see thread)

The dev@ mailinglist was invited to confirm the following pull requests:

Support Windows build target #69
Support Windows build target #3

(Published in detail once the khash issue was sorted out. See also this pull request: Remove the use of make_hash2)

CouchDB question on user@ (see thread)

A new user asks about CouchDB and received first answers:
Question: Is the database per user is a good model? A: Yes! And filtering by document type is a very common CouchDB data model.

Question: Is there away to tell CouchDB not to store revisions? Or is this needed to make sure the synchronisation is correctly? Answer: _rev can’t be understood as a revisioning system. It’s used to ensure that data is stored consistently across multiple replicas.

Question: When a document is deleted there is nothing like deletion but a revision setting the document to a state of RETIRED? … When syncing to a new device it is going to get all the [retired documents] and then mark them off as deleted. Answer: _deleted: true! But all other fields are typically removed, too. Filtered replication can remove these so-called tombstones if there is a very high volume of deleted documents. To keep old documents, don’t use this DELETE method but create your own delete, such as an inactive: true/false field.

Releases in the CouchDB Universe

  • nano-option 1.0.0 – Create a nano adapter if option is not already a nano adapter. Also set X-Couch-Full-Commit header.
  • CouchDB Bootstrap 1.7.6 – Bootstrap projects: configure CouchDB, setup security, deploy ddocs and create users.

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

Stack Overflow:

no public answer yet:

For more new questions and answers about CouchDB, see these search results.

Use Cases, Questions and Answers (PouchDB)

Stack Overflow:

no public answer yet:

For more new questions and answers about PouchDB, see these search results

Get involved!

If you want to get into working on CouchDB:

  • We have an infinite number of open contributor positions on CouchDB. Submit a pull request and join the project!
  • Do you want to help us with the work on the new CouchDB website? Get in touch on our new website mailing list and join the website team! – www@couchdb.apache.org
  • The CouchDB advocate marketing programme is just getting started. Join us in CouchDB’s Advocate Hub!
  • CouchDB has a new wiki. Help us move content from the old to the new one!
  • Can you help with Web Design, Development or UX for our Admin Console? No Erlang skills required! – Get in touch with us.
  • Do you want to help moving the CouchDB docs translation forward? We’d love to have you in our L10n team! See our current status and languages we’d like to provide CouchDB docs in on this page. If you’d like to help, don’t hesitate to contact the L10n mailing list on l10n@couchdb.apache.org or ping Andy Wenk (awenkhh on IRC).

We’d be happy to welcome you on board!

New Committer

  • [Johannes Jörg Schmidt] (IRC nick:TFTFTF, Twitter:@dieTF) has been elected as a CouchDB committer. Welcome to CouchDB, Jörg!

Events

Job opportunities for people with CouchDB skills

Time to relax!

  • “The “web” is not a part of nature. It was not discovered; we don’t have to just accept it. The “web” is an infrastructural system that was built by people, and it was built very recently and very sloppily. It currently has the property that it forgets what must be remembered, and remembers what must be forgotten. It manages to screw up both the sacredness of the common record and the sacredness of private interaction.” – The Web of Alexandria (follow-up)
  • “Here’s the thing: not everyone wants to be an engineer. Just because you don’t understand my job or don’t find it appealing, doesn’t mean it isn’t real or valid. It doesn’t mean I’m not as smart, or geeky, or excited about technology. It just means we like to do different things. And that’s OK.” – The myth of the non-technical startup empolyee
  • “The real problem I see is, because of prepublish’s implicit nature, the people who benefit from it might not be aware of and unable to advocate for it.” –  What is npm’s prepublish, and why is it so confusing?
  • “ But the Stream, mobile applications, and moving images: They all show a departure from a books-internet toward a television-internet. We seem to have gone from a non-linear mode of communication — nodes and networks and links — toward a linear one, with centralization and hierarchies. The web was not envisioned as a form of television when it was invented. But, like it or not, it is rapidly resembling TV: linear, passive, programmed and inward-looking.” –  The Web We Have to Save
  • “Meritocracy presumes that everyone starts off and continues through with the same level of access to opportunity, time, and money, which is unfortunately not the case. … Businesses are choosing candidates based on their open source contributions, knowing that they are getting more value for less money out of them. … This is akin to not paying someone for overtime.” – Is Tech a Meritocracy?

… and also in the news