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