[PCBC-212] make persistent connections on by default Created: 17/Mar/13  Updated: 17/Mar/13  Resolved: 17/Mar/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.1.2
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Trond Norbye
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
I think it's time to make the switch.

See:
http://stackoverflow.com/questions/15451560/couchbase-php-sdk-slow-establishing-connection-to/15455411?noredirect=1#comment21878658_15455411




[PCBC-204] Persistent connections should be indexed on server list contents, not their order. Created: 13/Feb/13  Updated: 14/Feb/13  Resolved: 14/Feb/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.0.4, 1.1.2
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
In the current state, we simply treat the connection parameter as a string.

An example use case may be of several clients trying to load-balance between various entry points nodes (EPTs). Such a strategy ensures that they aren't all hitting the same node for configuration requests.

However when attempting to use this in conjunction with persistent connections, we have the consequence that each permutation of the "Server List" is treated as a separate key when using persistent connections; therefore something like:

$base_list = array("1.1.1.1", "2.2.2.2", "3.3.3.3", "4.4.4.4");

for ($i = 0; $i < 1000; $i++) {
 $cur_list = $base_list;
 shuffle($cur_list);
 $cb = new Couchbase($cur_list, "", "", "", true);
 $cb->set("foo", "bar");
 // other operations
}

In a nutshell, this code has a "base" set of four servers. In the "normal" initialization code, the list is copied and then shuffled around, so that the first server in the list is always something else. Since the first server in the list ends up becoming the EPT (unless the server is down, in which case the next node is used, etc.) this enables some kind of cheap load balancing.

However this also means the order of the array is different, which means the "canonical connection key" is different, which means that when considering whether an existing connection is available, a new one is created. Since we have 4 servers in the list, there is a potential of having 4*4=16 different client objects per process. These objects will never die.

The solution is then to "deconstruct" the connection string in such a way that the server list itself is always alphabetically sorted. The effective list (When actually connecting) will remain the same, but for indexing purposes, it shall be sorted.




[PCBC-181] The documentation is wrong for get() in couchbase-api.php Created: 17/Jan/13  Updated: 18/Jan/13  Resolved: 18/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Major
Reporter: Michael Nitschinger Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: MacOS X, PHP 5.4


 Description   
I just discovered this while fixing a bug in Basement.

The $cas variable callback is not working on get() but works on getMulti().

Simple example:

Works:
$client->set("foo", "bar");
$cas = null;
var_dump($client->getMulti(array("foo"), $cas));
var_dump($cas);

array(1) {
  ["foo"]=>
  string(3) "bar"
}
array(1) {
  ["foo"]=>
  string(20) "11699665754086047744"
}

Doesn't work:
$client->set("foo", "bar");
$cas = null;
var_dump($client->get("foo", $cas));
var_dump($cas);

string(3) "bar"
NULL

The doc gets returned properly, but the cas value is not set. Also, when you set $cas to "" or false (not null), then it complains with a dubios error:
Warning: Couchbase::get() expects parameter 2 to be a valid callback, no array or string given in /Users/michael/Webserver/basement-test/index.php on line 10
Note that its a warning and not an exception on the OOP interface!


 Comments   
Comment by Michael Nitschinger [ 17/Jan/13 ]
Okay after more investigation of course the notation is:

get(key, callback, cas)

then only the documentation needs to be updated here:

https://github.com/couchbase/php-ext-couchbase/blob/master/example/couchbase-api.php#L320
Comment by Trond Norbye [ 18/Jan/13 ]
http://review.couchbase.org/#/c/24053/




[PCBC-177] inconsistent parameter setup for createBucket and modifyBucket Created: 02/Jan/13  Updated: 03/Jan/13  Resolved: 03/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Major
Reporter: Trond Norbye Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
There is an inconsistency between the ZEND macros and the implementation

 Comments   
Comment by Trond Norbye [ 02/Jan/13 ]
http://review.couchbase.org/#/c/23636/2
Comment by Matt Ingenthron [ 02/Jan/13 ]
Can you add some additional detail. I can understand that there may be a bug in the macros, but the underlying change looks like we're just changing the API. I'm still confused by this one. Sorry to be slow.
Comment by Trond Norbye [ 03/Jan/13 ]
The macros say we take multiple parameters, but the implementation takes two where the first one is the name, the second is the properties




[PCBC-175] released bundle should contain the example php ini file and the couchbase api file Created: 01/Jan/13  Updated: 03/Jan/13  Resolved: 03/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Major
Reporter: Trond Norbye Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Trond Norbye [ 01/Jan/13 ]
http://review.couchbase.org/#/c/23645/1




[PCBC-174] Create a php file with "javadoc-style" comments describing the api Created: 31/Dec/12  Updated: 03/Jan/13  Resolved: 03/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.2
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Major
Reporter: Trond Norbye Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This allows users to add it to their IDE and get code completion and help (at least in NetBeans)




[PCBC-173] The php extension should have an example .ini file describing the tunables Created: 31/Dec/12  Updated: 18/Jan/13  Resolved: 18/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.1
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Major
Reporter: Trond Norbye Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
It is easier for people to edit a template than writing their own file ;)

 Comments   
Comment by Trond Norbye [ 31/Dec/12 ]
http://review.couchbase.org/#/c/23634/




[PCBC-161] update tutorial to be based on sample database Created: 06/Dec/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Blocker
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Update the PHP sample with a simple app that covers three things:
CRUD (just get/set is fine)
JSON (PHP has this built in)
querying views

Optionally, do this with Twitter Bootstrap (as Michael and Sergey are using). Not required. It should be a webapp though.

This should pick up after the getting started guide which Karen is updating.

 Comments   
Comment by Michael Nitschinger [ 22/Jan/13 ]
I lost track on this, but is this considered finished with my tutorial?
Comment by Trond Norbye [ 10/May/13 ]
Closing this issue with now that we have Michaels tutorial. Create a new one if we need more examples




[PCBC-156] PHP GA Content Created: 04/Dec/12  Updated: 10/Jan/13  Resolved: 10/Jan/13

Status: Closed
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Epic Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Status: Done

 Description   
1. Release Notes - prio two.
- Incidents under PCBC: http://www.couchbase.com/issues/secure/ReleaseNote.jspa?projectId=10049&version=10242
- Matt will have some more items to add.
- .net and Java - check out look at front matter, especially java

2. Getting Starting: at develop/php/next - top prio.
 -- create content in getting-started.xml
 - grab subset and put into Drupal, renumber
 - Matt to get me Drupal access
 - Get the install from the develop page on PHP from. Matt - will send.
 - Model the content after Ruby 1.2 for install: develop/ruby/next
- Model the "try it out" after .net at develop/net/next to introduce JSON

3. note API methods signatures put by MC


**(Item still outstanding - Beer App in PHP should be available as of week of 12/10)
4. Tutorial: Priority 3. Issue is webchat
-Beer app in .net, ruby, and java
-Reuse two-phase commit? No.
-Leave existing Webchat application up for now
-Matt is talking to Trond about minimal crud and views. Check in with Matt











 Comments   
Comment by kzeller [ 06/Dec/12 ]
After you log in, you'll have a black bar across the top for some
administrative kinds of capabilities. Don't worry about that too much.
Mostly, you'll want to head to:
http://www.couchbase.com/develop/php/next

When you're there, you'll be able to edit the page. Go here: http://www.couchbase.com/user

IMPORTANT!! Make sure any edits are done as a revision. We always have
review before publishing. In this case, we can probably publish straight
away, but you'll still want review.

Notes:
modeled after the ruby page for steps 0 & 1 since the steps are similar
modeled after the .NET page for step 2 where it covers bootstrapping,
basic CRUD, introduces JSON and using JSON, then introduces views


****Add info about removing old C library before you get new one....)
Comment by kzeller [ 10/Jan/13 ]
completed end of december
Comment by kzeller [ 10/Jan/13 ]
completed end of december




[PCBC-146] Create a windows php-5.3.17-Win32-VC9-x86 thread-safe build of the current 1.1 tree Created: 12/Nov/12  Updated: 02/Apr/13  Resolved: 02/Apr/13

Status: Closed
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Task Priority: Critical
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive php-ext-couchbase-5.3.18-vc9-x86.zip     Zip Archive php-ext-couchbase-5.3.18-win32-vc9-x86.zip    

 Description   
Please create what's in the summary line, and simply attach it here.

 Comments   
Comment by Matt Ingenthron [ 12/Nov/12 ]
Please
Comment by Matt Ingenthron [ 12/Nov/12 ]
Whoops. Premature enter key.

Richard: please let us know how this binary works out for you. Thanks!
Comment by Richard Wharton [ 13/Nov/12 ]
Thanks. I am now up and running.

PHP Version => 5.3.17
Compiler => MSVC9 (Visual C++ 2008)
Thread Safety => enabled
Host => i386-pc-win32

couchbase support => enabled
couchbase.compression_factor => 1.3 => 1.3
couchbase.compression_threshold => 2000 => 2000
couchbase.compressor => none => none
couchbase.durability_default_poll_interval => 100000 => 100000
couchbase.durability_default_timeout => 4000000 => 4000000
couchbase.serializer => php => php
Comment by Mark Nunberg [ 13/Nov/12 ]
reopening to upload modified binary
Comment by Trond Norbye [ 14/Nov/12 ]
Mark: could you post information about:
1. the php source code used
2. the configure options

THat'll make it easier to reproduce the setup
Comment by Mark Nunberg [ 14/Nov/12 ]
http://windows.php.net/downloads/releases/php-5.3.18-src.zip

configure options: --disable-all --enable-cli --with-couchbase=shared --with-json (or is it --enable-json).

I needed to modify the php couchbase source to compile json (changeset pending) on win32; as the normal header/config checking did not do the trick.
Comment by Trond Norbye [ 02/Apr/13 ]
This is obsolete (and a duplicate of the one we've got to support windows)




[PCBC-133] connection options needs updating in 1.1 docs Created: 08/Oct/12  Updated: 18/Feb/13  Resolved: 18/Feb/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.1.0-dp4
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Critical
Reporter: Matt Ingenthron Assignee: MC Brown (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
For 1.0.5, we updated the connection options about redundant connections. We need to bring those changes over to the 1.1. documentation as well.

 Comments   
Comment by Matt Ingenthron [ 08/Oct/12 ]
Also, note the API docs says the API call to new Couchbase() is : new Couchbase($url, $username, $password [, $persistent ]) .... but it's actually, $url, $username,$password, $bucket, $persisten..

See: http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-connection.html
Comment by kzeller [ 15/Feb/13 ]
MC is handling updates to the C library as well as PHP library in metadocs.
Comment by MC Brown (Inactive) [ 18/Feb/13 ]
I've updated the API reference, narrative, and default options to show the correct values and connection options. I've also added the information on redundant connections and examples




[PCBC-130] Remove mention of pecl-memcache and pecl-memcached from http://www.couchbase.com/develop Created: 14/Jun/12  Updated: 16/Apr/13  Resolved: 16/Apr/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.0
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Is this docs or client library?

Anyway, a customer somehow missed the big "PHP 1.0" link at the top of the page and thought that he had to use pecl-memcache*. let's remove those now that we have native PHP support.

 Comments   
Comment by Matt Ingenthron [ 15/Oct/12 ]
The reason I did that is I wanted to communicate that we're compatible there, since pecl-memcache (not so much memcached, since we're compatible there) is so popular.

I think I'd rather leave it, but make it more clear some other way. Do you think an additional sentence or two would do it?
Comment by Matt Ingenthron [ 16/Apr/13 ]
With recent website changes, it got worse so I just removed them. Also, we're now in PECL, with plans to fully be in PECL soon.




[PCBC-105] Update the docs to show all PHP methods options Created: 27/Aug/12  Updated: 26/Aug/13  Resolved: 30/Jan/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.0-dp2
Fix Version/s: 1.1.3
Security Level: Public

Type: Bug Priority: Critical
Reporter: Sergey Avseyev Assignee: MC Brown (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-update.html#table-couchbase-sdk_php_increment


Here is the output of 'grep proto couchbase.c' on both branches: https://gist.github.com/26f376a604ad62fe2d89


 Comments   
Comment by Matt Ingenthron [ 12/Nov/12 ]
MC: Can you help Karen get what she needs to be able to get this in place this week? Thanks!
Comment by MC Brown (Inactive) [ 30/Jan/13 ]
All of the PHP options have now been added to the documentation, and their information and detail expanded to cover supplied values, returned values, errors and exceptions.




[PCBC-84] Add experimental replica read command Created: 12/Jul/12  Updated: 02/Apr/13  Resolved: 02/Apr/13

Status: Resolved
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.1.3
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Matt Ingenthron Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Implement a simple replica read command

 Comments   
Comment by Matt Ingenthron [ 18/Sep/12 ]
This is not a required feature for 1.1, but it would be nice to have.




Generated at Wed Jul 30 11:11:20 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.