Thank you for the reply Ludnin.
And I already tried MATCH (n:User)-[:Friend*3]-(FoFoF) return FoFoF; and 
the result is still the same that is about 85000ms.
I just realized that was my mistake. I always thought that the new feature 
Labels already applied Index or Constraint so I had never created Index or 
Constraint when I was using cypher.
And after I created the constraint I got what I expected, see my reply for 
Michael's reply below.

and thanks for the references.

On Friday, March 28, 2014 8:08:40 PM UTC+7, Lundin wrote:
>
> ms, it is milliseconds.
>
> What is the corresponding result for a SQL db ?
> MATCH (n:User)-[:Friend*3]-(FoFoF) return FoFoF;
>
> Albeit a valid search is it something useful ? I would think finding a 
> specific persons FoFoF in either end, as a starting point or end point, 
> would be a very realistic scenario. Adding an Index on User:name and query 
> for a User with name:Rio try to find his FoFoF.
>
> Yes, neo4j has been kind and exposed various function, like shortestpath 
> in cypher
> http://docs.neo4j.org/refcard/2.0/
>
> Also look at some gist examples
> https://github.com/neo4j-contrib/graphgist/wiki
>
> Den fredagen den 28:e mars 2014 kl. 05:00:22 UTC+1 skrev Rio Eduardo:
>>
>> Thank you so much for the reply Lundin. I really apreciate it. Okay, 
>> yesterday I just tested my experiment again. And the result was not what I 
>> imagined and expected before. Okay, before I tested *1M* users, I 
>> reduced the number of users into *1000* users and tested it not in my 
>> social network but directly in database only(Neo4j Shell) to find out that 
>> it was not caused by the performance of pc. But the result of returning 
>> *1000* users was *200ms and 1 row* and the result of returning *friends 
>> at depth of two* was *85000ms and 2500 rows* and are *200ms* and 
>> *85000ms* fast to you? and what does *ms* stand for? is it *milliseconds*or 
>> *microseconds*?
>>
>> the query I use for returning *1000* users is
>>
>> *MATCH (U:User) RETURN COUNT(U);*
>> and the query I use for returning *friends at depth of two* is
>>
>>
>> *MATCH (U:User)-[F:Friend]->(FU:User)-[FF:Friend]->(FFU:User)WHERE 
>> U.user_id=1 AND FFU.user_id<>U.user_id AND NOT (U)-[:Friend]->(FFU)RETURN 
>> FFU.username*
>>
>> Please note that I tested with default configuration of Neo4j and created 
>> users with *1000* random nodes and created friends relationships with 
>> *50000* random relationships(*1* user has *50* friends). Each 
>> relationship has a label Friend and no properties on it. Each node has a 
>> label User, 4 properties: user_id, username, password and profile_picture. 
>> Each property has a value of 1-60 characters. average of characters of 
>> user_id=1-1000 characters, all usernames have 10 characters randomly, all 
>> passwords have 60 characters because I MD5 it, and profile_picture has 1-60 
>> characters.
>>
>> And about your statement "Otherwise if you really need to present that 
>> many "things" just paging the result with SKIP,LIMIT. I has never made 
>> sense to present 1M of anything at a time for a user.", I already did 
>> according to your statement above but it is still the same, Neo4j returns 
>> result slower.
>>
>> And I'm wondering if Neo4j already applied one of graph 
>> algorithms(shortest path, djikstra, A*, etc) in its system or not.
>>
>> Thank you.
>>
>>
>> On Friday, March 28, 2014 3:43:49 AM UTC+7, Lundin wrote:
>>>
>>> Rio, any version will do. They can all handle million nodes on common 
>>> hardware, no magic at all. When hundred of millions of billions then we 
>>> might need to look into specfication more in detail. But in that case with 
>>> that kind of data there are other bottlencks for a social network or any 
>>> web appp that needs to be taken care of as well.
>>>
>>> you said:
>>>
>>>>  Given any two persons chosen at random, is there a path that connects 
>>>> them that is at most five relationships long? For a social network 
>>>> containing 1,000,000 people, each with approximately 50 friends, the 
>>>> results strongly suggest that graph databases are the best choice for 
>>>> connected data. And graph database can still work 150 times faster than 
>>>> relational database at third degree and 1000 times faster at fourth degre
>>>>
>>>
>>> I fail to see how this is connected to your attempt to list 1M users in 
>>> one go at the first page. You would want to seek if there is a relationship 
>>> and return that path between users. You need two start nodes and seek a 
>>> path by traveser the relationsip rather than scan tables and that would be 
>>> the comparison.
>>> Otherwise if you really need to present that many "things" just paging 
>>> the result with SKIP,LIMIT. I has never made sense to present 1M of 
>>> anything at a time for a user. Again, that wouldn't really serve your 
>>> experiment much good to prove graph theory.
>>>
>>> What is the result of MATCH(U:User) RETURN count(U); ?
>>>
>>> Also when you do your test make sure to add the warm/cold cache effect 
>>> (better/worse performance)
>>>
>>> Den torsdagen den 27:e mars 2014 kl. 17:57:10 UTC+1 skrev Rio Eduardo:
>>>>
>>>> I just knew about memory allocation and just read Server Performance 
>>>> Tuning of Neo4j. neo4j.properties:
>>>> # Default values for the low-level graph engine
>>>>
>>>> #neostore.nodestore.db.mapped_memory=25M
>>>> #neostore.relationshipstore.db.mapped_memory=50M
>>>> #neostore.propertystore.db.mapped_memory=90M
>>>> #neostore.propertystore.db.strings.mapped_memory=130M
>>>> #neostore.propertystore.db.arrays.mapped_memory=130M
>>>>
>>>> Should I change this to get high performance? If yes, please suggest me.
>>>>
>>>> And I just knew about Neo4j Licenses, they are Community, Personal, 
>>>> Startups, Business and Enterprise. And at Neo4j website all features are 
>>>> explained. So which Neo4j should I use for my case that has millions nodes 
>>>> and relationships?
>>>>
>>>> Please answer. I need your help so much.
>>>>
>>>> Thanks.
>>>>
>>>> On Tuesday, March 25, 2014 12:03:58 AM UTC+7, Rio Eduardo wrote:
>>>>>
>>>>> I'm testing my thesis which is about transforming from relational 
>>>>> database to graph database. After transforming from relational database 
>>>>> to 
>>>>> graph database, I will test their own performance according to query 
>>>>> response time and throughput. In relational database, I use MySQL while 
>>>>> in 
>>>>> graph database I use Neo4j for testing. I will have 3 Million more nodes 
>>>>> and 6 Million more relationships. But when I just added 60000 nodes, my 
>>>>> Neo4j is already dead. When I tried to return all 60000 nodes, it 
>>>>> returned 
>>>>> unknown. I did the same to MySQL, I added 60000 records but it could 
>>>>> return 
>>>>> all 60000 records. It's weird because it's against the papers I read that 
>>>>> told me graph database is faster than relational database So Why is Neo4j 
>>>>> slower(totally dead) in lower specification of pc/notebook while MySQL is 
>>>>> not? And What specification of pc/notebook do I should use to give the 
>>>>> best 
>>>>> performance during testing with millions of nodes and relationships?
>>>>>
>>>>> Thank you.
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to