| I also did some experiments but didn't have the time to finish yet, here are my observations so far: Arangodb Measurement - index -> constraint `CREATE CONSTRAINT ON (p:PROFILES) ASSERT p._key IS UNIQUE;` - seraph -> replace with node-neo4j 2.0.RC1 - uses 2 year old /cypher api, doesn't send X-Stream:true header - does not do efficient auth (encode creds on every call) - doesn't do pooling - suboptimal queries - make sure the concurrency level is adequate for the setup (utilize all cores but don't flood, use e.g. async.eachWithLimit) - warmup with nodes and rels `MATCH ()--() return count(*);` - enterprise with better vertical read/write scalability vs. community - Use 12G-24G heap, 2G new gen (-Xmn2G) - pagecache to 2.5G + growth (e.g. another 2.5G) - in 2.2 set cache_type = soft or cache_type=none depending on available heap - fix property encoding, e.g. AGE as int not string, don't store "null" !! -> affects esp. aggregate query - don't re-run the benchmark on the same store, start at the initial one -> creating and deleting the additional PROFILES_TEMP nodes affects repeatability of results correct datatypes: * "null" should *never be stored* * int: public, gender, completion_percentage, AGE, * long/time: last_login, registration * optionally as label: gender, public -> test repository (WIP): with changes in description.js and benchmark.js queries for for neo4j-shell: export from="P/P1" export to="P/P277" export key="P/P1" // warmup MATCH ()--() return count(*); // 61.245.128 rows MATCH (s:PROFILES) return count(*); // 1.632.803 profiles // 1.15 s profile MATCH (s:PROFILES {_key:{key}})-[*1..2]->(n:PROFILES) RETURN DISTINCT n._key; // 295 rows 5 ms // 1st degree neighbours MATCH (:PROFILES {_key:{key}})-->(n) RETURN n._key; // 14 rows 1ms // 2nd degree neighbours MATCH (s:PROFILES {_key:{key}})-->(x) MATCH (x)-->(n:PROFILES) RETURN DISTINCT n._key; // 283 rows 6 ms // shortest path MATCH (s:PROFILES {_key:{from}}),(t:PROFILES {_key:{to}}), p = shortestPath((s)-[*..15]->(t)) RETURN [x in nodes(p) | x._key] as path; // 1 ms, don't return the full data only keys like in the other db's // aggregation MATCH (f:PROFILES) RETURN f.AGE, count(*); // 22s -> should be rather 1.5s // single read MATCH (f:PROFILES) WHERE f._key = {key} RETURN f; // or MATCH (s:PROFILES {_key:{key}}) RETURN s; // 1 row with 59 properties 1 ms // single writes CREATE (s:PROFILES_TEMP {data}) RETURN id(s); // delete all nodes with a certain label // loop until returns 0 MATCH (n:PROFILES_TEMP) WITH n LIMIT 5000 OPTIONAL MATCH (n)-[r]-() DELETE n,r RETURN count(*) as deleted ---- MATCH (s:PROFILES {_key:{key}})-[*1..2]->(n:PROFILES) WITH DISTINCT n._key as key RETURN count(*); // 295 count 5-6ms MATCH (f:PROFILES) return id(f) % 140, count(*); // 140 rows -> 1502 ms that's how it should be sample data: _key:"P/P1", public:"1", completion_percentage:"14", gender:"1", region:"zilinsky kraj, zilina", last_login:"2012-05-25 11:20:00.0", registration:"2005-04-03 00:00:00.0", AGE:26, body:"185 cm, 90 kg", I_am_working_in_field:"it", spoken_languages:"anglicky", hobbies:"sportovanie, spanie, kino, jedlo, pocuvanie hudby, priatelia, divadlo", I_most_enjoy_good_food:"v dobrej restauracii", pets:"mam psa", body_type:"null", my_eyesight:"null", eye_color:"null", hair_color:"null", hair_type:"null", completed_level_of_education:"null", favourite_color:"null", relation_to_smoking:"null", relation_to_alcohol:"null", sign_in_zodiac:"null", on_pokec_i_am_looking_for:"null", love_is_for_me:"null", relation_to_casual_sex:"null", my_partner_should_be:"null", marital_status:"null", children:"null", relation_to_children:"null", I_like_movies:"null", I_like_watching_movie:"null", I_like_music:"null", I_mostly_like_listening_to_music:"null", the_idea_of_good_evening:"null", I_like_specialties_from_kitchen:"null", fun:"null", I_am_going_to_concerts:"null", my_active_sports:"null", my_passive_sports:"null", profession:"null", I_like_books:"null", life_style:"null", music:"null", cars:"null", politics:"null", relationships:"null", art_culture:"null", hobbies_interests:"null", science_technologies:"null", computers_internet:"null", education:"null", sport:"null", movies:"null", travelling:"null", health:"null", companies_brands:"null", more:"null" neo4j-server.properties: org.neo4j.server.database.location=/Users/mh/support/arangodb/db/data org.neo4j.server.webserver.port=8474 dbms.security.auth_enabled=false neo4j-wrapper.conf: wrapper.java.initmemory=8000 wrapper.java.maxmemory=8000 wrapper.java.additional=-Xmn2G neo4j.properties: dbms.pagecache.memory=5G keep_logical_logs=false remote_shell_enabled=false cache_type=soft _online_backup_enabled_=false 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. |
Comparison Neo4j Social.pdf
Description: Adobe PDF document
Neo4j Enterprise 2.2.2 node benchmark.js neo4j INFO using server address 127.0.0.1 INFO start INFO warmup done, relationships 1632803 INFO executing neighbors for 500 elements INFO total number of neighbors found: 9102 INFO ----------------------------------------------------------------------------- INFO Neo4J: neighbors, 500 items INFO Total Time for 500 requests: 451 ms INFO Average: 0.9 ms INFO ----------------------------------------------------------------------------- INFO executing neighbors 2nd degree for 500 elements INFO total number of neighbors2 found: 545170 INFO ----------------------------------------------------------------------------- INFO Neo4J: neighbors2, 500 items INFO Total Time for 500 requests: 5926 ms INFO Average: 11.8 ms INFO ----------------------------------------------------------------------------- INFO executing shortest path for 19 paths INFO total paths length: 104 INFO ----------------------------------------------------------------------------- INFO Neo4J: shortest path, 19 items INFO Total Time for 19 requests: 80 ms INFO Average: 4.2 ms INFO ----------------------------------------------------------------------------- INFO executing single read with 100000 documents INFO ----------------------------------------------------------------------------- INFO Neo4J: single reads, 100000 items INFO Total Time for 100000 requests: 95963 ms INFO Average: 0.96 ms INFO ----------------------------------------------------------------------------- INFO executing aggregation INFO ----------------------------------------------------------------------------- INFO Neo4J: aggregate, 1 items INFO Total Time for 1 requests: 22873 ms INFO Average: 22873 ms INFO ----------------------------------------------------------------------------- INFO executing single write with 100000 documents INFO ----------------------------------------------------------------------------- INFO Neo4J: single writes, 100000 items INFO Total Time for 100000 requests: 176335 ms INFO Average: 1.76 ms INFO ----------------------------------------------------------------------------- Neo4j Enterprise 2.3-SNAPSHOT wuqour:nosql-tests mh$ node benchmark.js neo4j INFO using server address 127.0.0.1 INFO start INFO warmup done, relationships 1632803 INFO executing neighbors for 500 elements INFO total number of neighbors found: 9102 INFO ----------------------------------------------------------------------------- INFO Neo4J: neighbors, 500 items INFO Total Time for 500 requests: 479 ms INFO Average: 0.96 ms INFO ----------------------------------------------------------------------------- INFO executing neighbors 2nd degree for 500 elements INFO total number of neighbors2 found: 545170 INFO ----------------------------------------------------------------------------- INFO Neo4J: neighbors2, 500 items INFO Total Time for 500 requests: 2935 ms INFO Average: 5.9 ms INFO ----------------------------------------------------------------------------- INFO executing shortest path for 19 paths INFO total paths length: 104 INFO ----------------------------------------------------------------------------- INFO Neo4J: shortest path, 19 items INFO Total Time for 19 requests: 69 ms INFO Average: 3.63 ms INFO ----------------------------------------------------------------------------- INFO executing single read with 100000 documents INFO ----------------------------------------------------------------------------- INFO Neo4J: single reads, 100000 items INFO Total Time for 100000 requests: 76377 ms INFO Average: 0.76 ms INFO ----------------------------------------------------------------------------- INFO executing aggregation INFO ----------------------------------------------------------------------------- INFO Neo4J: aggregate, 1 items INFO Total Time for 1 requests: 3413 ms INFO Average: 3413 ms INFO ----------------------------------------------------------------------------- INFO executing single write with 100000 documents INFO ----------------------------------------------------------------------------- INFO Neo4J: single writes, 100000 items INFO Total Time for 100000 requests: 155658 ms INFO Average: 1.56 ms INFO ----------------------------------------------------------------------------- DONE
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. |
