summaryrefslogtreecommitdiff
path: root/src/couchdb
AgeCommit message (Collapse)Author
2011-02-01Backport COUCHDB-1008 from trunk (revision 1055592)Filipe David Borba Manana
The motivation for this backport is to prevent the "nodelay" option, under section "httpd", from reaching version 1.1. This patch introduces the "socket_options" configuration parameter which is more generic - it allows nodelay as well as other socket options to be specified. Not adding this patch to 1.1.x would imply still supporting the "nodelay" parameter in future releases to avoid breaking the configuration API. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1065922 13f79535-47bb-0310-9956-ffa450edef68
2011-01-28COUCHDB-969 - handle passwords with : in them.Robert Newson
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1064856 13f79535-47bb-0310-9956-ffa450edef68
2011-01-28COUCHDB-1047 - support inclusive_end with reduce callsRobert Newson
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1064801 13f79535-47bb-0310-9956-ffa450edef68
2011-01-28Validate doc ids that come from a PUT to a URL.Paul Joseph Davis
Backprot of 1064417 from trunk. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1064421 13f79535-47bb-0310-9956-ffa450edef68
2011-01-27Fix calculation of URL length in replicatorAdam Kocoloski
COUCHDB-644, COUCHDB-1044 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1064147 13f79535-47bb-0310-9956-ffa450edef68
2011-01-24Merge revision 1062783 from trunkFilipe David Borba Manana
Replicator DB: on restart, make several attempts to restart the replications Now on restart, the replicator database listener will make up to 10 attempts to restart each replication. Before each attempt, it waits, using an exponential backoff strategy, before doing the next attempt. This is very useful because when one server restarts, other servers that are endpoints of its replications, may not be online yet. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1062784 13f79535-47bb-0310-9956-ffa450edef68
2011-01-24Merge revision 1062772 from trunkFilipe David Borba Manana
Refactoring of the replicator database listener Simpler implementation and more reliable behaviour when the replicator database is deleted or changed on the fly. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1062773 13f79535-47bb-0310-9956-ffa450edef68
2011-01-21Merged revision 1061809 from trunkFilipe David Borba Manana
Fix strange result when passing a filter and a limit of 1 to /db/_changes Fixes COUCHDB-1037 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1061811 13f79535-47bb-0310-9956-ffa450edef68
2011-01-20COUCHDB-1034 - ignore runs of whitespace between content types in ↵Robert Newson
compressible_types list git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1061282 13f79535-47bb-0310-9956-ffa450edef68
2011-01-19Merged revision 1060860 from trunkFilipe David Borba Manana
Fix by-doc-IDs pull replication from a CouchDB server version < 1.1.0 Closes COUCHDB-1028 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1060862 13f79535-47bb-0310-9956-ffa450edef68
2011-01-18Avoid bug in rev tree logic during attachment uploadsAdam Kocoloski
This is a workaround for a bug in couch_key_tree, described in COUCHDB-902, which would cause uploads to fail with spurious conflicts. A patch for the key tree itself will be landing on trunk. Thanks Bob Dionne, Klaus Trainer. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1060150 13f79535-47bb-0310-9956-ffa450edef68
2011-01-17Merged revision 1059893 from trunkFilipe David Borba Manana
More efficient implementation of the DB updater BTree functions Closes COUCHDB-1027 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1059894 13f79535-47bb-0310-9956-ffa450edef68
2011-01-17Merged revision 1053731 from trunkFilipe David Borba Manana
Two cleanups in couch_db_updater It also seems to add a little performance gain: http://graphs.mikeal.couchone.com/#/graph/8bf31813eef7c0b7e37d1ea259020a0 Closes COUCHDB-1000 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1059892 13f79535-47bb-0310-9956-ffa450edef68
2011-01-17Merged revision 1058674 from trunkFilipe David Borba Manana
Avoid unnecessary conversion to binary Mochiweb accepts IO lists. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1059889 13f79535-47bb-0310-9956-ffa450edef68
2011-01-17Merged revision 1059884 from trunkFilipe David Borba Manana
Removed unnecessary iolist_to_binary/1 calls These IOlist to binary conversions are not necessary since ibrowse accepts IOlists as outputs of streaming functions. Also, having the IOlists getting converted into binaries by the erts (instead of user Erlang code) is more git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1059885 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12ensure write_streamed_attachment bails on negative LenLeft valuesRobert Newson
While Filipe has identified the fix for COUCHDB-1021, this patch will ensure that no other bug will cause negative values to be passed to this function, in turn leading to database inflation problems, etc. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1058059 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12Preserve purge metadata during compaction, thanks Mike LeddyAdam Kocoloski
Closes COUCHDB-1021 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1057987 13f79535-47bb-0310-9956-ffa450edef68
2011-01-11Merged revision 1057875 from trunk:Filipe David Borba Manana
Make the doc multipart GET APIs always send attachments compressed For attachments that are stored in compressed (gzip) form, make sure the document multipart/related and multipart/mixed APIs don't decompress the attachments before sending them through the socket. This is to avoid multipart parser issues when the attachment's identity length is unknown or lost due to a local to local replication triggered by CouchDB versions up to 1.0.1 Closes COUCHDB-1022. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1057879 13f79535-47bb-0310-9956-ffa450edef68
2011-01-08Merge revision 1056694 from trunkFilipe David Borba Manana
Add missing case for COUCHDB-966 When not able to read one of the .ini configuration files due to file permissions, map {error, eacces} into {file_permission_error, Filepath} and throw that as an exception. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1056695 13f79535-47bb-0310-9956-ffa450edef68
2011-01-07Merged revision 1056274 from trunkFilipe David Borba Manana
More explicit and helpful file access permission errors Closes COUCHDB-966 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1056275 13f79535-47bb-0310-9956-ffa450edef68
2011-01-03Crash if duplicates are detected during view compaction, COUCHDB-999Adam Kocoloski
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1054783 13f79535-47bb-0310-9956-ffa450edef68
2011-01-03Merged revision 1054740 from trunkFilipe David Borba Manana
Removed references to no longer used config parameters Closes COUCHDB-1007 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1054741 13f79535-47bb-0310-9956-ffa450edef68
2010-12-29Ignore closed connection after _changes are downloadedAdam Kocoloski
Closes COUCHDB-993 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1053658 13f79535-47bb-0310-9956-ffa450edef68
2010-12-29Stem revision trees after merging a path, COUCHDB-968Adam Kocoloski
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1053513 13f79535-47bb-0310-9956-ffa450edef68
2010-12-29Skip recursive path merging, COUCHDB-968Adam Kocoloski
This patch ensures that we only ever merge a linear path into the tree. It relies on the stemming code to collapse paths that could have been merged together by a recursive use of merge_one. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1053512 13f79535-47bb-0310-9956-ffa450edef68
2010-12-23Merged revision 1052227 from trunk:Filipe David Borba Manana
Fix: replicator didn't use the HTTP settings defined in the .ini config Issue found by Randall Leeds. Thanks. Closes COUCHDB-992 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1052229 13f79535-47bb-0310-9956-ffa450edef68
2010-12-22Merged revision 1052047 from trunk:Filipe David Borba Manana
Allow a multipart/mixed document GET to send the attachments in encoded (compressed) form Currently this API is not used internally but it's a very important one for the new replicator. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1052048 13f79535-47bb-0310-9956-ffa450edef68
2010-12-22Merged revision 1052031 from trunk:Filipe David Borba Manana
Make sure attachments get compressed when their MIME type lists parameters Closes COUCHDB-996. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1052032 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14Fix OOME when compacting doc w/ lots of conflicts, COUCHDB-888Adam Kocoloski
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1049250 13f79535-47bb-0310-9956-ffa450edef68
2010-12-10Merged revision 1043524 from trunkFilipe David Borba Manana
Calculate and verify MD5 digests outside of a couch_file server This has a significant positive impact on the performance, both for readers and writers, when there are several requests in parallel acessing the same database or view index file. $ node tests/compare_write_and_read.js --wclients 100 --rclients 200 \ -name1 md5_out -name2 trunk \ -url1 http://localhost:5984/ -url2 http://localhost:5985/ \ --duration 120 run 1) http://graphs.mikeal.couchone.com/#/graph/5c859b3e7d1b9bd0488cfe271105130c run 2) http://graphs.mikeal.couchone.com/#/graph/5c859b3e7d1b9bd0488cfe2711051bba Closes COUCHDB-980 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1044283 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08Fix compactor crash when .compact file is missing headerAdam Kocoloski
Users affected by COUCHDB-968 can take advantage of this patch to force a compaction in retry mode and thus remove the duplicates. Simply create an empty dbname.couch.compact file in the database_dir before triggering the compaction for dbname. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043542 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08Change key_tree merge to take path as 2nd arg, add type specsAdam Kocoloski
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043462 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08Usort the infos during compaction to remove dupes, COUCHDB-968Adam Kocoloski
This is not a bulletproof solution; it only removes dupes when the they appear in the same batch of 1000 updates. However, for dupes that show up in _all_docs the probability of that happening is quite high. If the dupes are only in _changes a user may need to compact twice, once to get the dupes ordered together and a second time to remove them. A more complete solution would be to trigger the compaction in "retry" mode, but this is siginificantly slower. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043461 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08Prefer values from old tree when merging, COUCHDB-968Adam Kocoloski
This commit represents a substantial refactor of the key tree merging logic, some of which is not strictly necessary for the resolution of COUCHDB-968. Two etap test cases checking the ability to merge in a non-linear tree are removed because the functionality is no longer supported. CouchDB only ever merged a linear revision history into an existing revision tree. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043460 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08Stem new rev tree before comparing with old one, COUCHDB-968Adam Kocoloski
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043459 13f79535-47bb-0310-9956-ffa450edef68
2010-12-07Merged revision 1043186 from trunk:Filipe David Borba Manana
Replicator improvement: send "unauthorized" error message instead of "db_not_found" when a remote endpoint can not be accessed due to authorization. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1043188 13f79535-47bb-0310-9956-ffa450edef68
2010-12-01Merged revision 1041103 from trunk:Filipe David Borba Manana
Proper verification of the accepted content types plus some code cleaning. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1041113 13f79535-47bb-0310-9956-ffa450edef68
2010-11-30Merged revision 1040603 from trunk:Filipe David Borba Manana
Missing cases for COUCHDB-949 (adding aliases start_key and end_key). git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1040605 13f79535-47bb-0310-9956-ffa450edef68
2010-11-28Merged revision 1039872 from trunk:Filipe David Borba Manana
Replicator DB listener: removed function clause not needed anymore. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1039873 13f79535-47bb-0310-9956-ffa450edef68
2010-11-25Merged revision 1039069 from trunk:Filipe David Borba Manana
Replicator DB: proper handling of the changes loop process. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1039070 13f79535-47bb-0310-9956-ffa450edef68
2010-11-24Merged revision 1038665 from trunk:Filipe David Borba Manana
Replicator DB: added _replication_state_time (a unix timestamp value) to replication documents. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038666 13f79535-47bb-0310-9956-ffa450edef68
2010-11-24Merged revision 1038660 from trunk:Filipe David Borba Manana
Replicator DB: fix a rare gen_server death case. Happened when the rep_db_created message is received before the changes loop dies. Also simplified a bit the handling of subprocesses exits. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038662 13f79535-47bb-0310-9956-ffa450edef68
2010-11-23Merged revision 1038181 from trunk:Filipe David Borba Manana
Corrected error message grammar. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038182 13f79535-47bb-0310-9956-ffa450edef68
2010-11-23Merged revision 1038176 from trunk:Filipe David Borba Manana
Replicator DB: stop all ongoing replications when the replicator DB is deleted or renamed (in the .ini config). Also updated the gen_server to stop when it receives unexpected calls. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038177 13f79535-47bb-0310-9956-ffa450edef68
2010-11-23Merged revision 1038172 from trunk:Filipe David Borba Manana
Replicator DB: added underscore prefix to the replication document fields that are meant to to be set/updated only by the replicator. This makes it more clear to end users that those fields are meant to be used internally by CouchDB. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038173 13f79535-47bb-0310-9956-ffa450edef68
2010-11-23Merged revision 1038067 from trunk:Filipe David Borba Manana
Replicator DB changes: - Added back the restriction that only the replicator can edit replication documents - this avoids lots of potential race conditions and confusion; - Added more tests; - More accurate log messages; - Don't ignore always replication documents already tagged with a replication_id property - this is necessary when replicating a replicator DB from one server to another server. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1038068 13f79535-47bb-0310-9956-ffa450edef68
2010-11-21Merged revision 1037455 from trunk:Filipe David Borba Manana
Add proper validation of user_ctx.roles for replication documents. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1037457 13f79535-47bb-0310-9956-ffa450edef68
2010-11-21Merged revision 1037448 from trunk:Filipe David Borba Manana
Proper verification of the roles property of a user document. Closes COUCHDB-790. Thanks Gabriel Farrell. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1037450 13f79535-47bb-0310-9956-ffa450edef68
2010-11-19For absolute consistency, renamed aliases start_key_docid and end_key_docid ↵Filipe David Borba Manana
to start_key_doc_id and end_key_doc_id. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1036818 13f79535-47bb-0310-9956-ffa450edef68
2010-11-19Add aliases start_key, end_key, start_key_docid and end_key_docid.Filipe David Borba Manana
Closes COUCHDB-949. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1036813 13f79535-47bb-0310-9956-ffa450edef68