Skip to content

Instantly share code, notes, and snippets.

@rnewson
rnewson / gist:2387973
Created April 14, 2012 21:31
CouchDB Future Feature List - Round 2
A list of features that we want to see in CouchDB. Needs to be voted on so that it can become a priority queue.
User Facing Features
====================
1. Conflicts are the rule, not the exception
All previous versions of CouchDB hide conflicts by default (selecting
an arbitrary but consistent winning revision). Expert users can find
and resolve conflicts.
2012-11-28 19:27:39 scalang.node.ErlangHandler [ERROR] error caught in erlang handler 'dev1@127.0.0.1
java.lang.IllegalStateException: await*() in I/O thread causes a dead lock or sudden performance drop. Use addListener() instead or call await*() from a different thread.
at org.jboss.netty.channel.DefaultChannelFuture.checkDeadLock(DefaultChannelFuture.java:296)
at org.jboss.netty.channel.DefaultChannelFuture.awaitUninterruptibly(DefaultChannelFuture.java:208)
at scalang.epmd.Epmd.<init>(Epmd.scala:58)
at scalang.epmd.Epmd$.apply(Epmd.scala:32)
at scalang.ErlangNode.connectAndSend(Node.scala:871)
at scalang.ErlangNode$$anonfun$4.apply(Node.scala:844)
at scalang.ErlangNode$$anonfun$4.apply(Node.scala:844)
at overlock.atomicmap.OneShotThunk.value(OneShotThunk.scala:32)
### BEGIN INIT INFO
# Provides: bprobe
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: initscript for runit-managed service
### END INIT INFO
➜ ~ couchdb
Apache CouchDB 1.2.0 (LogLevel=info) is starting.
[error] [<0.92.0>] {error_report,<0.30.0>,
{<0.92.0>,supervisor_report,
[{supervisor,{local,couch_secondary_services}},
{errorContext,start_error},
{reason,
{'EXIT',
{undef,
[{couch_spatial,start_link,[],[]},
diff --git a/src/main/java/com/github/rnewson/couchdb/lucene/DatabaseIndexer.java b/src/main/java/com/github/rnewson/couchdb/lucene/DatabaseIndexer.java
index 9f78fe8..11ef9a9 100644
--- a/src/main/java/com/github/rnewson/couchdb/lucene/DatabaseIndexer.java
+++ b/src/main/java/com/github/rnewson/couchdb/lucene/DatabaseIndexer.java
@@ -420,6 +420,7 @@ public final class DatabaseIndexer implements Runnable, ResponseHandler<Void> {
result.put("doc_del_count", reader.numDeletedDocs());
result.put("uuid", state.getUuid());
result.put("digest", state.getDigest());
+ result.put("update_seq", getUpdateSequence(reader.getIndexCommit().getUserData()));
final JSONArray fields = new JSONArray();
copytruncate
Truncate the original log file to zero size in place after creating a copy, instead of moving the old log file and optionally creating a new one. It can be used when some program cannot be told to close its logfile and thus might continue writing
(appending) to the previous log file forever. Note that there is a very small time slice between copying the file and truncating it, so some logging data might be lost. When this option is used, the create option will have no effect, as the old log
file stays in place.
diff --git a/src/couchdb/couch_doc.erl b/src/couchdb/couch_doc.erl
index d991de2..4f5d19d 100644
--- a/src/couchdb/couch_doc.erl
+++ b/src/couchdb/couch_doc.erl
@@ -458,15 +458,17 @@ len_doc_to_multi_part_stream(Boundary, JsonBytes, Atts, SendEncodedAtts) ->
_ ->
AccAttsSize +
4 + % "\r\n\r\n"
- case SendEncodedAtts of
- true ->
identity
The default (identity) encoding; the use of no transformation
whatsoever. This content-coding is used only in the Accept-
Encoding header, and SHOULD NOT be used in the Content-Encoding
header.
[url "https://github.com/"]
insteadOf = "git://github.com/"
pushInsteadOf = "git://github.com/"
[url "https://github.com/"]
insteadOf = "git@github.com:"
pushInsteadOf = "git@github.com:"
function isArray(obj) {
return toString.call(obj) === "[object Array]";
}