55 Commits

Author SHA1 Message Date
michael-grunder
eb0bbbafa0 Rollback the automatic resharding distributor
I accidentally pulled this when getting some of the pull requests
integrated (git flow style) for this release.  I like the idea
for sure, but I think it needs more detailed documentation and
further testing.

At the very least, I need to understand it :)
2013-08-31 19:20:34 -07:00
michael-grunder
f97c8433d5 Integrating mobli's lazy connect and retry interval 2013-08-11 11:31:23 -07:00
michael-grunder
8443769dc3 Merge remote-tracking branch 'mobli/develop' into feature/mobli_ra_changes
Conflicts:
	redis_array.c
	redis_array_impl.c
	redis_array_impl.h
2013-08-11 11:29:29 -07:00
michael-grunder
16185f2e37 Re-add UNIX socket support to RedisArray
Merging the logic from ra-performance branch into feature/ra-performance
2013-08-11 09:01:49 -07:00
michael-grunder
dcbeae7599 Persistent connections with RedisArray
Re-integrating the now old ra-performance branch into a git-flow
branch.  I could have merged it but this was easier with so few
changes
2013-08-11 08:54:59 -07:00
Emmanuel Merali
0ff393bdca Fix poor performance on initial use
Fix poor performance on initial use of easy reshard distributor
mechanism.
2013-07-22 05:29:35 +03:00
Emmanuel Merali
958e062800 Changed distributor to accepts strings
Changed distributor to accept strings as well as longs so that
definitions parsed from parse_ini_files may be used as is
2013-07-22 04:50:11 +03:00
Emmanuel Merali
2f795ed0b4 FIx C99 compliance
FIx C99 compliance
2013-05-26 01:25:27 +03:00
Emmanuel Merali
f4acf122ea Easy resharding distributor
An integrated distributor for easy resharding.
Works on the principle of redistributing keys from 1 shard to 2 shards
evenly.
2013-05-22 06:12:44 +03:00
michael-grunder
3e6d5b60d6 Cutting a release for 2.2.3. Added myself as a maintainer
in the header files
2013-04-28 11:09:58 -07:00
michael-grunder
11a1195d8e Merge branch 'hotfix/php5.2_warnings' into develop 2013-03-20 09:08:56 -07:00
michael-grunder
8596eac45e Use another NULL for zend_is_callable_ex
Given that PHP 5.2.X and PHP 5.3.X use a different signature
for zend_is_callable_ex, and we're not using the error return
(PHP 5.3.X) anyway, just pass in NULL.

Addresses issue #318
2013-03-20 09:00:57 -07:00
Emmanuel Merali
acd3245456 Added lazy_connect option to RedisArray
Added an option to let each RedisArray connection connect lazily to
their respective server. This is useful then working with a redis
cluster composed of many shards which are not necessarily in use all at
once.
2013-02-25 00:38:47 +02:00
Emmanuel Merali
6d3c9990a5 Merged changes from @mobli
New select DB command to RedisArray - Added retry delay on reconnect

Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
Also, fixed a compiler warning:
redis_array_impl.c:1115:15: warning: incompatible pointer types
assigning to 'zval **' (aka 'struct _zval_struct **') from 'zval
**(*)[2]' [-Wincompatible-pointer-types]

Conflicts:
	common.h
2013-02-22 09:35:22 -08:00
Emmanuel Merali
d4c7f64131 New select DB command to RedisArray - Added retry delay on reconnect
Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
Also, fixed a compiler warning:
redis_array_impl.c:1115:15: warning: incompatible pointer types
assigning to 'zval **' (aka 'struct _zval_struct **') from 'zval
**(*)[2]' [-Wincompatible-pointer-types]
2013-01-29 11:47:36 +02:00
Emmanuel Merali
9ba000c54c Revert "Retry delay - selectDB on array"
This reverts commit 3fb643211e.
2013-01-29 11:40:06 +02:00
Emmanuel Merali
3fb643211e Retry delay - selectDB on array
Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
2013-01-21 18:10:16 +02:00
Nicolas Favre-Felix
6dc3ad6cb3 Fix RedisArray::_rehash to support closures
* Add "f" parameter in _rehash()
* Call object with new method
* Add rehash test with closure
2012-09-10 00:29:44 +01:00
Remi Collet
9319f637ef fix unused-variable warnings (2) 2012-08-29 16:43:19 +02:00
michael-grunder
8af15d7c8b Added EXISTS as a read-only command, which sorts issue #206 2012-06-23 09:08:47 -07:00
Nicolas Favre-Felix
32e8d4143c More fixes for PHP 5.4 2012-03-12 07:05:30 +00:00
Nicolas Favre-Felix
a5e53f1bbc Fixed compilation issues with Clang.
(GitHub issue #116).
2012-01-30 21:13:06 +00:00
Nicolas Favre-Felix
edf8aee8fd Fixed missing parameter in ZTS maintainer mode.
Fixes GitHub issue #128 (Thanks @sztanpet!)
2012-01-30 19:40:13 +00:00
Emmanuel Merali
07bb4d6a08 Performance improvements for expire on rehash
Improves the performance of rehashing either with auto-rehash or with
the _rehash method by pipelining the call to TYPE and TTL and using
SETEX instead of SET and EXPIRE for string keys.
2011-12-25 17:19:16 +02:00
Emmanuel Merali
c7f5eebad7 Added key expiry on rehash
Added a call to expire when migrating a key that has an TTL other than
-1
2011-12-22 17:37:26 +02:00
Nicolas Favre-Felix
31663d433f Make sure to avoid overflows on 32-bits. 2011-12-19 23:11:13 +00:00
Nicolas Favre-Felix
8f5783cb4c Reordered arguments to ra_index_multi(). 2011-12-11 22:15:58 +00:00
Emmanuel Merali
2f58629e0c External key distributor
Added possibility to specify a user land key distributor function.
2011-12-11 19:19:24 +02:00
Emmanuel Merali
497300afda Fixed move zset
Checked for values type to take into account numeric values
2011-12-11 11:23:47 +02:00
Emmanuel Merali
f0a2dc0ec3 Renamed crc32 to rcrc32
The function crc32 was not being called so I renamed it to make sure
that it's being called
2011-12-08 13:42:54 +02:00
Emmanuel Merali
b408f7aa06 Allow use of pipeline in RedisArray 2011-12-08 01:52:21 +02:00
Nicolas Favre-Felix
7781557bb1 Added missing UNWATCH.
Possibly resolves GitHub issue #86 (TBC).
2011-11-27 19:57:39 +00:00
Nicolas Favre-Felix
1ce8bcc534 Added missing DISCARD in RedisArray mode.
Also added a unit test covering this feature.
This commit fixes GitHub issue #87.
2011-11-27 19:52:03 +00:00
Nicolas Favre-Felix
6bfc493e8d Fix for PHP 5.2 compatibility.
PHP 5.2 doesn't support array_init_size, added a pre-processor check
to stay compatible with 5.2. (Reported as GitHub issue #65).
2011-10-27 08:19:36 +01:00
Nicolas Favre-Felix
62862cd920 Added missing index on MSET. 2011-09-13 23:23:45 +01:00
Nicolas Favre-Felix
38f2992576 Changed DEL to use index when available. 2011-09-13 22:59:14 +01:00
Nicolas Favre-Felix
1f5ebc15e1 Memory fixes. 2011-09-04 21:22:55 +01:00
Nicolas Favre-Felix
0c03ac7f49 Check for memory error, not fixed yet 2011-09-04 17:43:11 +01:00
Nicolas Favre-Felix
9160752443 Cleanup 2011-09-04 15:39:11 +01:00
Nicolas Favre-Felix
732366a739 Multi/exec, per node. 2011-09-04 15:31:34 +01:00
Nicolas Favre-Felix
68abdf4282 Auto rehash keys on read miss + config.ini 2011-09-04 14:30:37 +01:00
Nicolas Favre-Felix
2b9a7d96d2 Added TSRMLS_CC/DC where needed. 2011-08-28 15:02:48 +01:00
Nicolas Favre-Felix
cb79454c83 Memory cleanup after RedisArray creation 2011-08-28 14:35:56 +01:00
Nicolas Favre-Felix
5dffb96bd7 Added INI loader 2011-08-28 14:11:47 +01:00
Nicolas Favre-Felix
4dcae80fbf Rehashing callback 2011-08-28 11:32:29 +01:00
Nicolas Favre-Felix
35f03a2a72 Added KEYS-based rehashing 2011-08-28 11:16:27 +01:00
Nicolas Favre-Felix
92b628ec2c Added function to move sorted sets across instances. 2011-08-19 17:54:58 +01:00
Nicolas Favre-Felix
19381b00c9 Added function to move hashes across instances. 2011-08-19 16:56:28 +01:00
Nicolas Favre-Felix
7d7b730283 Added function to move lists across instances. 2011-08-19 16:31:00 +01:00
Nicolas Favre-Felix
e64b1fdb51 Added function to move sets across instances. 2011-08-19 16:14:47 +01:00