Patch attached.

Seems to work ok in my limited testing.

Files: 
CommentFileSizeAuthor
#13 1098268_mongodb_cache_7.patch8.48 KBmakara
FAILED: [[SimpleTest]]: [MySQL] Fetch test patch: failed to retrieve [1098268_mongodb_cache_7.patch] from [drupal.org]. View
#12 1098268_mongodb_cache_6.patch8.41 KBmakara
None View
#5 mongodb_cache_1098268_5.patch7.87 KBcrea
None View
#3 mongodb_cache_1098268.patch1.99 KBcrea
None View
#2 mongodb_cache_1098268.patch1.99 KBcrea
None View
mongo_cache_backport.patch2.37 KBmsonnabaum
None View

Comments

crea’s picture

I suggest to remove REQUEST_TIME definition in favor of #1179402: Define REQUEST_TIME for backports. Its also used in many other places.

crea’s picture

Category:feature» task
Status:Active» Needs review
StatusFileSize
new1.99 KB
None View
crea’s picture

StatusFileSize
new1.99 KB
None View

Cleaner patch

crea’s picture

Status:Needs review» Needs work
crea’s picture

Status:Needs work» Needs review
StatusFileSize
new7.87 KB
None View

Updated patch: no REQUEST_TIME dependency

dob_’s picture

Patch seems not to work for me.

I tried it with a pressflow 6.20 installation.

cd sites/all/modules/mongodb
patch -p1 < patchfile.patch

Created the directory automatically.
Then i was able to activate the module.

Added these to my settings:

$conf['mongodb_connections'] = array(
'mongohost' => array('host' => 'localhost', 'db' => 'mydb'),
);

$conf['mongodb_collections'] = array(
'watchdog' => 'mongohost',
'session' => 'mongohost',
'cache' => 'mongohost',
);

Watchdog messages are written to mydb. Sessions and Cache not.

Any ideas?

crea’s picture

In this issue only cache is discussed. Sessions are discussed in different issue.
To use this you need something like this:

$conf['mongodb_connections'] = array('default' => array('host' => 'localhost', 'db' => 'drupal'));
$conf['cache_inc']   = './sites/all/modules/mongodb/mongodb_cache/mongodb_cache.inc';
dob_’s picture

Alright, that was the point.

Now i get this error:

MongoException: non-utf8 string: � in /media/psf/Home/Sites/infinite.local/sites/all/modules/mongodb/mongodb_cache/mongodb_cache.inc on line 152 Call Stack

That's my entry:
Array ( [_id] => http://infinite.local/ [cid] => http://infinite.local/ [created] => 1314532614 [expire] => -1 [headers] => [serialized] => [data] => ��W�o�6~�_qe��Y/��$��,.�Y���"Z:KthI%);ُ�}GJr��(�,z����}��G�<�Z\^�����CCR�lӘ�l�(,6�����7{_;~�������UӒ�HQ�Դ�R(�GѴ�� ���p�rp���SjO���&?O?����.���������;�|2��o��?��x� >Z-����Xnmu��z���F�����r(c֚��1�Ԧ,���j� ����7q�u:P��"��+�:b�jBݠ v�V���s-W;vu,l0���5U-l�\m��?�$ڠ�j;�0౯�� �J��QE�䥶ImAR(�\�;;�M��8�]�`���Eо�b��ge����O��q*l�������p����&?�VZ��Q��1�b!1���pZ�M�+�k�l]d!o���"o��d��� Q��!t��EiUf��,��CX� ��J�S(�Lq&4��}��H7~SX�|�@��:� ��R=��FCs)�B���������0�H ��(�,B.|��\���EJ5���D?Ser9l�������D�����Jw;n :��*d�� �>2������UWDcH(JnZʌ 9�ڐ.��­�J���t# ��~'��4f�X�t޿�;/�?���U�����]B?�^_*��i3��sTU�D�k^I$�2�n�A$V���﨓K �'���MВv�m%�������+|[���&�`+��m�x�.pw]XkQU4�[؟��F��@Ԗ�<�� ������\��F[�"�RUg���,iο0���~�!w����]���?��<� )

dob_’s picture

Changed code after line 149 and checked if the data string is valid UTF-8.

if(mb_detect_encoding($entry['data'], 'UTF-8', true)) {
$collection = mongodb_collection($this->bin);
$collection->save($entry);
}

crea’s picture

There's an issue here about using mongo binary type for cache.

dob_’s picture

Thanks.
My changes to use binary storage.....

131,132c131,136
< if ($cache->serialized) {
< $cache->data = unserialize($cache->data);
---
> if($cache->binary && $cache->serialized) {
> $cache->data = unserialize($cache->data->bin);
> } else if(!$cache->binary && $cache->serialized){
> $cache->data = unserialize($cache->data);
> } else {
> $cache->data = $cache->data->bin;
134c138
<
---
>
145a150
> 'binary' => true,
147c152
< 'data' => $scalar ? $data : serialize($data),
---
> 'data' => $scalar ? $data : serialize($data),
149c154
<
---
> $entry['data'] = new MongoBinData($entry['data']);
151d155
<

makara’s picture

StatusFileSize
new8.41 KB
None View

Updated the patch:

makara’s picture

StatusFileSize
new8.48 KB
FAILED: [[SimpleTest]]: [MySQL] Fetch test patch: failed to retrieve [1098268_mongodb_cache_7.patch] from [drupal.org]. View

Fixed patch:

  • Drupal 6 sets HTTP headers in the cache.
crea’s picture

There's no need to validate if the cache data is valid utf. Just use binary type everywhere

fgm’s picture

Issue summary:View changes

Four years later and no committed version, can we agree to close this and say there will never be a stable 6.x version for cache ?

slashrsm’s picture

Status:Needs review» Closed (won't fix)

Agreed. If there is still anyone out there that needs this feel free to reopen and bring patch to RTBC state. Maintainers will be happy to commit it in that case.