Oh, OK, thanks for the clarification.

In the meantime I played with the propstat tool and shows in my case 50% 
reduction in DB size (and will probably show a lot in performance). Very 
promising ... ;-)
---
balazs

On 3/7/11 3:19 PM, Tobias Ivarsson wrote:
> That class is in Neo4j kernel. It is the actual implementation class.
> You can find the source code here:
> https://github.com/neo4j/graphdb/blob/master/kernel/src/main/java/org/neo4j/kernel/impl/nioneo/store/ShortString.java
>
> All of the classes in the org.neo4j.kernel.impl.nioneo.store package of my
> neo4j-admin-store project are of that kind, facade classes that provide
> access to internals of the neo4j kernel implementation.
>
> Cheers,
> Tobias
>
> On Mon, Mar 7, 2011 at 1:00 PM, Balazs E. Pataki<[email protected]>wrote:
>
>> Hi Tobias,
>>
>> I tried to use ShortStringEncoding.java, however it seems to refer to a
>> class called ShortString, which is not available in github:
>>
>>
>> https://github.com/thobe/neo4j-admin-store/tree/master/src/main/java/org/neo4j/kernel/impl/nioneo/store
>>
>> Could you also please provide it?
>>
>> Thanks,
>> ---
>> balazs
>>
>> On 3/4/11 5:05 PM, Tobias Ivarsson wrote:
>>> Hi Balazs,
>>>
>>> I have created such a thing, the tool is available here:
>>>
>> https://github.com/downloads/thobe/neo4j-admin-store/propstat-1.3.M03.jar
>>> Run it as: java -jar propstat-1.3.M03.jar<path to your neo4j store>
>>>
>>> This tool will gather statistics about all of your properties, and output
>>> how many you have of each kind.
>>> For short string properties it will output how many you have in each
>>> encoding.
>>> For regular string properties it will output how many could have been
>> stored
>>> as short strings, and with which encoding that would be.
>>>
>>> That jar file contains a class that can be used for testing if a given
>>> string is "short" or not, and how it would be stored if it was considered
>>> short:
>>>
>> https://github.com/thobe/neo4j-admin-store/blob/master/src/main/java/org/neo4j/kernel/impl/nioneo/store/ShortStringEncoding.java
>>> The method you are interested in is (the first one) getEncoding(String),
>> it
>>> returns one of the Enum constants in that class, or null if the provided
>>> string would not be considered "short".
>>>
>>> While I wrote this I realized that it would be really simple to write a
>> tool
>>> that converts all strings that are short enough to be stored as short
>>> strings, that tool is available here:
>>>
>> https://github.com/downloads/thobe/neo4j-admin-store/makeshort-1.3.M03.jar
>>> Run it as: java -jar makeshort-1.3.M03.jar<path to your neo4j store>
>>>
>>> This tool will modify your string properties to store them as short
>> strings
>>> when possible. It will then rebuild the id generator for the
>>> DynamicStringStore so that the "holes" created where the strings were
>>> previously stored will be reused the next time you write string
>> properties
>>> to Neo4j (unless they are also short of course).
>>>
>>> Please note that both of these tools come with no official support or
>>> guarantees. Use at your own risk.
>>>
>>> Cheers,
>>> Tobias
>>>
>>> On Fri, Mar 4, 2011 at 10:19 AM, Balazs E. Pataki<[email protected]
>>> wrote:
>>>
>>>> Actually both options would be very useful, but the first option (string
>>>> as input and tell me if it is short or not) would be enough for me for
>>>> now if available.
>>>>
>>>> Thanks,
>>>> ---
>>>> balazs
>>>>
>>>> On 3/3/11 6:37 PM, Tobias Ivarsson wrote:
>>>>> Yes, the statistics tool almost does that, but with a wider range of
>>>>> possible encodings.
>>>>>
>>>>> What would you want from a class like that? Give it a string as input
>> and
>>>>> have it tell you if it is short or not? Or go through an existing store
>>>> and
>>>>> tell you how many of the strings are short?
>>>>>
>>>>> -tobias
>>>>>
>>>>> On Thu, Mar 3, 2011 at 5:18 PM, Balazs E. Pataki<[email protected]
>>>>> wrote:
>>>>>
>>>>>> Hi Tobias,
>>>>>>
>>>>>> Do you happen to have some little class which can at tell us which
>>>>>> property values neo4j would consider short and which of your 6
>> encoding
>>>>>> would it use? Maybe the string statistics collecting program you
>> created
>>>>>> earlier has this logic - but I'm just guessing.
>>>>>>
>>>>>> Thanks,
>>>>>> ---
>>>>>> balazs
>>>>>>
>>>>>> On 3/3/11 11:52 AM, Tobias Ivarsson wrote:
>>>>>>> No there is no simpler way, yet. We've been thinking about creating a
>>>>>> "short
>>>>>>> string compression tool" for accomplishing this, but haven't done so
>>>> yet.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Tobias
>>>>>>>
>>>>>>> On Thu, Mar 3, 2011 at 11:35 AM, Balazs E. Pataki<
>> [email protected]
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I have a big database based on Neo4J 1.2. Now, if I would like to
>> use
>>>>>>>> the "short strings" feature of Neo4j 1.3 M03 I should regenerate my
>>>> full
>>>>>>>> database, that is all strings should be reset so that it may or may
>>>> not
>>>>>>>> be stored according to the new "short strings" policy.
>>>>>>>>
>>>>>>>> It seems to me that the easiest way to do this would be to somehow
>> be
>>>>>>>> able to copy the full 1.2 database to a newly created 1.3 M03
>> database
>>>>>>>> by traversing the 1.2 database. But there maybe a simpler (neo4j
>>>>>>>> builtin) way to do this. Any hints about this?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> ---
>>>>>>>> balazs
>>>>>>>> _______________________________________________
>>>>>>>> Neo4j mailing list
>>>>>>>> [email protected]
>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Neo4j mailing list
>>>>>> [email protected]
>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>>
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Neo4j mailing list
>>>> [email protected]
>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>
>>>
>>>
>>>
>> _______________________________________________
>> Neo4j mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
>
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to