I'll keep it short and sweet Derick !  =]

http://opensource.dynamoid.com/ -> Is exactly what I was thinking of,
glad I asked so I am not re-inventing the wheel :)
I have a feeling I can get educated really fast on php data-type
internals by taking a look at the source.

Thanks again!

On Thu, Mar 18, 2010 at 1:22 PM, Derick Rethans <der...@php.net> wrote:
> On Thu, 18 Mar 2010, Ben DeMott wrote:
>
>> So is the data structure thats being serialized remaining in some form
>> thats reflective of its binary encoding on the system. Or is there
>> some byte-encoding that goes on to generalize the binary structure?
>
> PHP only knows about binary text, and then numbers and floats. Our
> current serialize format is just text based.
>
>> I guess ... Does it find the values in memory of the distinct values,
>> and then create a serialized set of indexes in a c-compatible
>> data-type?
>> or... is this just another form of string serialization, where
>> variables are represented by strings encoded in ASCII?
>
> The current serializer does do the latter. pecl/dbus does... DBUS
> serialization of course.
>
>> If this is a binary serialization two additional questions:
>> 1.) Does this mean that you can to some accuracy determine the size of
>> an in-memory variable by counting the sizeof() on the components that
>> make up the data-structure in C?
>
> nope, that won't work as there are strings that are at least two blocks,
> and arrays and objects are tons.
>
>> 2.) Can the PHP sessions serialization be made to use this type of
>> serialization - so the serialized values could be shared between
>> multiple applications.. (let me give you an example)
>
> Thereis an igbinary extension/serializer.
>
>>      Would I be better off just re-implementing the PHP C code for its
>> session serializer/deserializer in Python than attempting to keep it
>> binary?
>
> What you want... both work.
>
>> For PHP Sessions, lets say you use memcached to store a serialized
>> representation of the session.
>> Lets also say that you would like to read that session data
>> occasionally by python to offload work that your webserver would
>> normally have to perform.
>>
>> If you were to write a binary serialized form to memory - the C
>> implementation of the serialization could by very easily ported to
>> Python as an extension and both could be maintained with ease
>> (as both PHP and Python are written in C, a Java variant wouldn't be
>> too hard either using JNI)
>
> The problem is that PHP and Python have different dataytpes, and dbus
> has yet again others. That is always going to be a problem.
>
>> I guess this brings up the question of - How hard would it be to
>> expose the binary object that dbus sends over-the-wire so it could be
>> written to file instead?
>
> You need a tool such as dbus-monitor, but you need to write the
> deserialization from DBUS into your "fileformat" yet again.
>
>> Overall it would be nice if PHP had a functionality similar to Pythons
>> Pickle -> to expose to the user so they could store binary
>> representations of objects as they saw fit.
>>
>> It seems to me this would be vastly more efficient than an
>> ascii-encoding and serialization as well.
>
> That's no different from what serialization does really. There is
> http://opensource.dynamoid.com/ for binary serializations.
>
>> If my logic is poorly formed because of a lack of understanding please
>> feel free to educate me!
>
> You write too much text :P
>
> regards,
> Derick
>
> --
> http://derickrethans.nl | http://xdebug.org
> Like Xdebug? Consider a donation: http://xdebug.org/donate.php
> twitter: @derickr and @xdebug
>

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to