Arbit - project tracking

PHPillow - PHP CouchDB connector

#15: Versioning in phpillowDocument should be disabled by default

Issue attachments

Issue revisions

  • new by PHPGangsta at 2011-F-09 15:24
  • new by PHPGangsta at 2011-F-09 15:24
Type enhancement enhancement
State new new
Priority urgent urgent
Resolution none none
Assigned to Nobody
Scheduled for
Affected versions trunk
Affected components Core
Last change Wednesday 9 February 2011 15:24:27 UTC by PHPGangsta

Short description

I had a big performance problem because I had to update documents very often. Because I didn't know that versioning in phpillow is activated by default I did not disable it. Most people don't need this feature, but they need good performance.

Environment

Ubuntu 10.10

Steps to reproduce

Create a class which extends phpillowDocument

class App_Person_Document extends phpillowDocument

Now put in some values and update it 100 times. The document grows in size and updating it will be very slow (the request will include every document from history, which you normally don't need). In my case the couchdb server was at 100% file I/O for 5 seconds just because of updating one tiny document. After disabling versioning in phpillow by setting

protected $versioned = false;

in my class, updating got fast again.

Expected behavior

Good performance, even after 100 or 1000 updates of a document.

Actual behavior

Very pool performance, couchdb was dead for a few seconds because of the very big and complex document.