Commit Graph

450 Commits

Author SHA1 Message Date
Nicolas Grekas
9461750bd0 [Cache] Drop counting hit/miss in ProxyAdapter 2016-05-25 09:47:04 +02:00
Fabien Potencier
cf4e2e9cea Merge branch '3.1'
* 3.1: (24 commits)
  [Yaml] fix exception contexts
  Added people - person inflection
  People - person singularization
  [Yaml] properly handle unindented collections
  [Serializer] Add test for ignored attributes during denormalization
  chomp newlines only at the end of YAML documents
  Fixed server status command when port has been omitted
  Update UPGRADE FROM 2.x to 3.0
  [Config] Allow schemed path in FileResource
  fix removed commands wording in upgrade file
  Catch \Throwable
  Catch \Throwable
  [DependencyInjection] Avoid generating call_user_func in more cases
  [Validator] Support for DateTimeImmutable
  [YAML] fixed "dump" signature in upgrade file
  [Cache] Rename nonce to version
  [FrameworkBundle] update upgrade instructions
  Use levenshtein level for better Bundle matching
  [WebProfilerBundle] Fix CORS ajax security issues
  remove methods that were needed for PHP 5.3
  ...
2016-05-24 12:07:02 +02:00
Nicolas Grekas
0c8358b3fe [Cache] Rename nonce to version 2016-05-17 19:16:01 +02:00
Fabien Potencier
88cf98625a updated version to 3.2 2016-05-13 13:13:23 -05:00
Fabien Potencier
b5b141cf9a feature #18715 [FrameworkBundle] Default to Apcu+Filesystem cache chain (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle] Default to Apcu+Filesystem cache chain

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes (perf)
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

In #16838, @dunglas benched that the filesystem cache is not the fastest one (not a surprise).
Yet, it is the default for now. I propose to replace this default by a dynamically created one that uses APCu when available (of course, we cannot do the check at container-build time), chained with the filesystem.

The benefit is double: APCu is automatically used when available without any configuration, and cache warming up is seeded by the filesystem cache so that the apcu cache can benefit from it.

Commits
-------

b9b57f9 [FrameworkBundle] Default to Apcu+Filesystem cache chain
2016-05-13 12:53:26 -05:00
Nicolas Grekas
b9b57f93cb [FrameworkBundle] Default to Apcu+Filesystem cache chain 2016-05-13 12:36:10 -05:00
Fabien Potencier
8f6c3b0711 bug #18724 [Cache] Lock-less FilesystemAdapter (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Lock-less FilesystemAdapter

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes (perf)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

53b1ee5 [Cache] Lock-less FilesystemAdapter
2016-05-12 15:12:44 -05:00
Fabien Potencier
c9c875e008 minor #18714 [Cache] Clean RedisAdapter pipelining + FilesystemAdapter (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Clean RedisAdapter pipelining + FilesystemAdapter

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This PR refactorize Redis pipelining so that the case for handling RedisArray is abstracted, thus less bug prone.

Commits
-------

acf0075 [Cache] Clean RedisAdapter pipelining + FilesystemAdapter
2016-05-12 13:43:28 -05:00
Nicolas Grekas
acf007529f [Cache] Clean RedisAdapter pipelining + FilesystemAdapter 2016-05-12 12:01:30 -05:00
Nicolas Grekas
53b1ee52a2 [Cache] Lock-less FilesystemAdapter 2016-05-08 05:02:40 +02:00
Nicolas Grekas
a7899fe65c [Cache] Add nonce based cache invalidation to ApcuAdapter 2016-05-06 21:40:17 +02:00
Nicolas Grekas
b004243cb3 [Cache] Add support for Predis, RedisArray and RedisCluster 2016-05-04 18:13:46 +02:00
Nicolas Grekas
9a56498c8d [Cache] Cleanups 2016-05-02 14:16:25 +02:00
Nicolas Grekas
3073efb6d1 [Cache] Add DSN based Redis connection factory 2016-05-01 11:31:04 +02:00
Nicolas Grekas
11654591e7 [Cache] Dont use Redis connection when not required 2016-04-28 10:49:16 +02:00
Nicolas Grekas
5786f3d532 [Cache] Minor cleanup 2016-04-27 08:45:20 +02:00
Christian Flothmann
8b0d990a0c [Cache] fix expiration handling in ArrayAdapter 2016-04-24 19:31:20 +02:00
Nicolas Grekas
4256add915 [Cache] Test & tweak CacheItem::validateKey() 2016-04-20 18:47:41 +02:00
Nicolas Grekas
af09cdef49 [Cache] Add CacheItem::validateKey utility method 2016-04-20 11:19:01 +02:00
Nicolas Grekas
9ca22e9805 [Cache] Fix test tearDown 2016-04-18 13:57:20 +02:00
Nicolas Grekas
39df9e4f8b CS fixes 2016-04-17 18:02:30 +02:00
Nicolas Grekas
9dcbe3403c [Cache] Minor tweaks 2016-04-17 13:51:09 +02:00
Nicolas Grekas
5d256ddaee [Cache] Add DoctrineProvider, for using PSR-6 pools in Doctrine Cache 2016-04-14 15:55:05 +02:00
Nicolas Grekas
98dce411e8 [Cache] Workaround krakjoe/apcu#170 2016-04-12 08:30:53 +02:00
Nicolas Grekas
41526342ea [FrameworkBundle] Add default pool & system adapter 2016-04-07 14:29:40 +02:00
Nicolas Grekas
714b916d5d [FrameworkBundle] Add & use Psr6CacheClearer 2016-04-05 16:36:41 +02:00
Nicolas Grekas
bc51fdeec3 [Cache] Normalize constructor arguments order 2016-04-04 11:41:14 +02:00
Nicolas Grekas
41f3f82faa [Cache] Fix tests 2016-04-04 11:25:57 +02:00
Fabien Potencier
b0fffac156 fixed CS 2016-03-27 14:54:44 +02:00
Fabien Potencier
ae86e5bc88 feature #18215 [Cache] Add a Chain adapter (dunglas, nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Add a Chain adapter

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | #17556
| License       | MIT
| Doc PR        | -

Made in coordination with @dunglas

Commits
-------

68d9cea [Cache] Optimize Chain adapter
ebdcd16 [Cache] Add a Chain adapter
2016-03-27 14:53:58 +02:00
Masterklavi
e132763f55 Fast multiple setEx with the pipeline transcation (RedisAdapter::doSave) 2016-03-23 18:33:57 +01:00
Masterklavi
47f45b1d5e Fixed a bug: saving with not serializable values (RedisAdapter) 2016-03-21 10:30:40 +01:00
Nicolas Grekas
68d9ceabb2 [Cache] Optimize Chain adapter 2016-03-17 11:33:40 +01:00
Kévin Dunglas
ebdcd16bdd [Cache] Add a Chain adapter 2016-03-17 09:39:21 +01:00
Fabien Potencier
f29d46f29b feature #18176 [Cache] Restrict flushes to namespace scopes (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Restrict flushes to namespace scopes

| Q             | A
| ------------- | ---
| Branch        | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Instead of flushing all cache namespaces all the time, we can flush only the keys in the namespace.

Commits
-------

8744443 [Cache] Restrict flushes to namespace scopes
2016-03-15 17:54:37 +01:00
Nicolas Grekas
8744443b49 [Cache] Restrict flushes to namespace scopes 2016-03-15 17:43:22 +01:00
Nicolas Grekas
6b7a1fcefa [Cache] Finish Redis adapter 2016-03-15 17:09:11 +01:00
Aurimas Niekis
4893cbc24a Added RedisAdapter 2016-03-15 10:28:32 +01:00
Fabien Potencier
117d83bd95 minor #18085 [Cache] Hash using B64+MD5 in FilesystemAdapter (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Hash using B64+MD5 in FilesystemAdapter

| Q             | A
| ------------- | ---
| Branch        | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Using MD5+B64 is good enough to avoid any hash collision, even on case-insensitive filesystems.
On Windows where the total path length is limited, this saves 44 chars worth.
Even if collisions are extremely unlikely, they are detected by adding then comparing the raw key to saved payloads. This also has the added benefit of easing debugging/grepping the cached items on the filesystem.

Commits
-------

e96bb10 [Cache] Hash using B64+MD5 in FilesystemAdapter
2016-03-10 17:37:34 +01:00
Nicolas Grekas
5068f8751a [Cache] Add namespace handling to all adapters 2016-03-10 10:26:34 +01:00
Nicolas Grekas
e96bb10af4 [Cache] Hash using B64+MD5 in FilesystemAdapter 2016-03-10 09:59:31 +01:00
Nicolas Grekas
e6f21f999e [Cache] Count cache hits/misses in ProxyAdapter 2016-03-04 10:23:38 +01:00
Nicolas Grekas
e5d6db5c69 [Cache] Add FilesystemAdapter 2016-02-13 10:15:46 +01:00
Nicolas Grekas
80f3410da9 [Cache] Skip transient test on Windows 2016-02-08 14:03:54 +01:00
Nicolas Grekas
064ec0b578 [Cache] Fix expiries handling 2016-02-08 08:22:02 +01:00
Nicolas Grekas
8605417b55 [Cache] Don't clone, serialize 2016-02-03 09:37:11 +01:00
Nicolas Grekas
d21fab0d0b [Cache] Handle and log errors properly 2016-01-25 20:18:55 +01:00
Aurimas Niekis
367e784f25 [Cache] Use generator in ArrayAdapter 2016-01-25 15:49:11 +01:00
Nicolas Grekas
0ba851abeb [Cache] Allow and use generators in AbstractAdapter 2016-01-20 10:11:05 +01:00
Nicolas Grekas
91e482ae8e [Cache] Symfony PSR-6 implementation 2016-01-19 08:02:17 +01:00