You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2022/05/23 13:36:58 UTC

[GitHub] [couchdb] jeydude opened a new issue, #4035: CouchDB compression error

jeydude opened a new issue, #4035:
URL: https://github.com/apache/couchdb/issues/4035

   Recently we are noticing couchdb error frequently in one of our database
   ![image](https://user-images.githubusercontent.com/841011/169829614-e4e68f4b-e149-4e1e-9a17-35665241f057.png) in RedHat Linux server.
   
   We are using CouchDB version 3.1.1, installed through Docker Container.
   
   Issue is happening only in sensor_event database which has about 280 GB of data.
   
   Running in one node. 
   
   Currently we are rolling back the entire VM of the system to previous working CouchDB day. This causes loss of data to our study. Is there a solution to having this issue. Thanks! 
   
   Here are the settings we have
   
   **Section	Option	Value**	
   attachments	compressible_types	text/*, application/javascript, application/json, application/xml	
   compression_level	8	
   chttpd	backlog	512	
   bind_address	0.0.0.0	
   max_db_number_for_dbs_info_req	100	
   port	5984	
   prefer_minimal	Cache-Control, Content-Length, Content-Range, Content-Type, ETag, Server, Transfer-Encoding, Vary	
   require_valid_user	false	
   server_options	[{recbuf, undefined}]	
   socket_options	[{sndbuf, 262144}, {nodelay, true}]	
   cluster	n	3	
   q	2	
   compactions	_default	[{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "02:00"}, {to, "05:00"}]	
   cors	credentials	false	
   couch_httpd_auth	allow_persistent_cookies	true	
   auth_cache_size	50	
   authentication_db	_users	
   authentication_redirect	/_utils/session.html	
   iterations	10	
   require_valid_user	false	
   secret	fc7857a6df7358f9ccefc842ecb9e0e2	
   timeout	600	
   couch_peruser	database_prefix	userdb-	
   delete_dbs	false	
   enable	false	
   couchdb	attachment_stream_buffer_size	4096	
   changes_doc_ids_optimization_threshold	100	
   database_dir	./data	
   default_engine	couch	
   default_security	admin_only	
   file_compression	none	
   max_dbs_open	500	
   max_document_size	8000000	
   os_process_timeout	5000	
   users_db_security_editable	false	
   uuid	4e5744d50ad4d7d3d3a189b474f850c7	
   view_index_dir	./data	
   couchdb_engines	couch	couch_bt_engine	
   csp	enable	true	
   feature_flags	partitioned||*	true	
   httpd	allow_jsonp	false	
   authentication_handlers	{couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler}	
   bind_address	127.0.0.1	
   enable_cors	false	
   enable_xframe_options	false	
   max_http_request_size	4294967296	
   port	5986	
   secure_rewrites	true	
   socket_options	[{sndbuf, 262144}]	
   indexers	couch_mrview	true	
   ioq	concurrency	10	
   ratio	0.01	
   ioq.bypass	compaction	false	
   os_process	true	
   read	true	
   shard_sync	false	
   view_update	true	
   write	true	
   log	level	info	
   writer	stderr	
   query_server_config	os_process_limit	100	
   reduce_limit	true	
   replicator	connection_timeout	30000	
   http_connections	20	
   interval	60000	
   max_churn	20	
   max_jobs	500	
   retries_per_request	5	
   socket_options	[{keepalive, true}, {nodelay, false}]	
   ssl_certificate_max_depth	3	
   startup_jitter	5000	
   verify_ssl_certificates	false	
   worker_batch_size	500	
   worker_processes	4	
   ssl	port	6984	
   uuids	algorithm	sequential	
   max_count	1000	
   vendor	name	The Apache Software Foundation	
   
   **Here is the error**
   ```
   Error running query. Reason: (invalid_compression) [{couch_compress,decompress,1,[{file,"src/couch_compress.erl"},{line,71}]}, {couch_file,pread_term,2,[{file,"src/couch_file.erl"},{line,161}]}, {couch_btree,get_node,2,[{file,"src/couch_btree.erl"},{line,435}]}, {couch_btree,modify_node,4,[{file,"src/couch_btree.erl"},{line,388}]}, {couch_btree,modify_kpnode,6,[{file,"src/couch_btree.erl"},{line,535}]}, {couch_btree,modify_node,4,[{file,"src/couch_btree.erl"},{line,394}]}, {couch_btree,modify_kpnode,6,[{file,"src/couch_btree.erl"},{line,535}]}, {couch_btree,modify_node,4,[{file,"src/couch_btree.erl
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] nickva commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
nickva commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136478622

   @jeydude makes sense.
   
   When you switched from snappy to `none`, that was the same database? In other words, snappy was used, db was filled with data, then compression was switched to none? Or, did you create a new database, after switching compression to none, and then filled it with all the data? The issue could still be with the snappy compression as switching compression doesn't re-compress the data already written to disk. 
   
   Perhaps somehow your view files got corrupt, if you have ability you can try to reset your view and let it rebuild. Try using `deflate_6`  compression (that's what we use at Cloudant by default).
   
   A more drastic fix could be to switch to `deflate_6`, re-create the db using a larger sharding factor, say Q=16 if your database is that large, and replicate your data into that database. That way your view files would be smaller and may be build faster.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] jeydude commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
jeydude commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136500247

   Thanks!, will try it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] jeydude commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
jeydude commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136487955

   Good to know. Thanks @nickva for sharing the information. We did not create new database after switching to none. 
   
   We did apply below changes in the default.ini
   ```
   [cluster]
   q=16
   n=1
   ```
   and in local.ini
   ```
   [compactions]
   _default = 
   ```
   q=6 Modification applies only the new database, not to the existing database.
   
   How can I rebuild the view for the sensor_event database? Is there a command I can apply?
   
   I will try applying deflate_6 compression. Once l set deflate_6, to apply this compression to senser_event database, is there anything I need to do? Thanks!
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] jeydude commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
jeydude commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136491573

   http://hostname/sensor_event/_design/parent-sensor-timestamp-index/_view/parent-sensor-timestamp
   
   gave me 
   {
     "error": "invalid_compression",
     "reason": "[{couch_compress,decompress,1,[{file,\"src/couch_compress.erl\"},{line,71}]},\n {couch_file,pread_term,2,[{file,\"src/couch_file.erl\"},{line,161}]},\n {couch_btree,get_node,2,[{file,\"src/couch_btree.erl\"},{line,435}]},\n {couch_btree,modify_node,4,[{file,\"src/couch_btree.erl\"},{line,388}]},\n {couch_btree,modify_kpnode,6,[{file,\"src/couch_btree.erl\"},{line,535}]},\n {couch_btree,modify_node,4,[{file,\"src/couch_btree.erl\"},{line,394}]},\n {couch_btree,modify_kpnode,6,[{file,\"src/couch_btree.erl\"},{line,535}]},\n {couch_btree,modify_node,4,[{file,\"src/couch_btree.erl\"},{line,394}]}]",
     "ref": 3722911048
   }
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] nickva commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
nickva commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136495808

   When the view is rebuilding it won't be able to return results. So make sure to account for that. At 280Gb that could take quite a while. First, apply `deflate_6` compression, so the rebuilt view can use that compression. When you're ready, you could try modifying the _design document of the corrupt view a bit (add a comment or a semicolon) that would change the view signature and start rebuilding the view. Make sure to account for the extra disk space and CPU resources as well.
   
   To migrate the database to have a higher Q sharding factor, after you apply `deflate_6`,  creating a `sensor_event_1` and then replicate from `sensor_event` to `sensor_event_1`. That would take quite a bit at 280Gb, could be a few days. Also make sure you have enough disk and CPU capacity. After that can try querying your views to ensure they have been built and return results. Then you'd need to update your client code to read from the `sensor_event_1` instead of `sensor_event`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] jeydude commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
jeydude commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136447465

   We had ```file_compression = snappy```  before in default.ini, thought snappy compression is causing error so we have updated to ```file_compression = none```
   
   Today we noticed one more thing, if we run the query with sort we are getting the invalid_compression error:
   ```{
     "selector": {
       "#parent": "U3359490690",
       "sensor": "lamp.steps"
     },
     "sort": [
       {
         "timestamp": "asc"
       }
     ]
   }
   ```
   but if we remove the remove option, then we are getting the values, any reason why sorting throws compression error.
   ```
   {
     "selector": {
       "#parent": "U3359490690",
       "sensor": "lamp.steps"
     }
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [couchdb] nickva commented on issue #4035: CouchDB compression error

Posted by GitBox <gi...@apache.org>.
nickva commented on issue #4035:
URL: https://github.com/apache/couchdb/issues/4035#issuecomment-1136441146

   It looks there a view term which could not be opened and decompressed. I noticed you use `file_compression none` wonder if that has anything to do with it.
   
   Would there be a chance the files were restored from backup or somehow altered outside of CouchDB's control?
   
   Is there a way to reproduce the issue?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org