ldbc / ldbc_snb_interactive_v1_impls

Reference implementations for LDBC Social Network Benchmark's Interactive workload.
https://ldbcouncil.org/benchmarks/snb-interactive
Apache License 2.0
100 stars 86 forks source link

In the validation process of GraphDB, the query result is empty #408

Closed hkrcc01 closed 2 weeks ago

hkrcc01 commented 2 weeks ago

Problem 1:

I downloaded the validation params data provided by others from the Internet, configured validate.properties, and started driver/validate.sh. Some short queries data errors was reported:

Unable to load query from file: queries//interactive-complex-3-duration-as-function.rqUnable to load query from file: queries//interactive-complex-4-duration-as-function.rqUnable to load query from file: queries//interactive-complex-7-with-second.rqUnable to load query from file: queries//interactive-update-1.rqUnable to load query from file: queries//interactive-update-4.rqUnable to load query from file: queries//interactive-update-6.rqUnable to load query from file: queries//interactive-update-7.rqUnable to load query from file: queries//interactive-update-6-add-post-content.rqUnable to load query from file: queries//interactive-update-6-add-post-imagefile.rqSLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
org.ldbcouncil.snb.driver.DbException: Db returned null result for: LdbcShortQuery1PersonProfile
        at org.ldbcouncil.snb.driver.validation.DbValidator.validate(DbValidator.java:97)
        at org.ldbcouncil.snb.driver.client.ValidateDatabaseMode.startExecutionAndAwaitCompletion(ValidateDatabaseMode.java:111)
        at org.ldbcouncil.snb.driver.client.ValidateDatabaseMode.startExecutionAndAwaitCompletion(ValidateDatabaseMode.java:29)
        at org.ldbcouncil.snb.driver.Client.main(Client.java:65)

That is, the returned query result is empty.

Then I tried to generate validation data, but he gave me an error:

CreateValidationParamsMode  Generating database validation file: /mnt/sdc/cgy/ldbc_snb_interactive_v1_impls/graphdb/ldbc/ttl_sf1/validation_params-test.csv
########### LdbcShortQuery1PersonProfile
Client  Client terminated unexpectedly
org.ldbcouncil.snb.driver.ClientException: Error encountered duration validation parameter creation
        at org.ldbcouncil.snb.driver.client.CreateValidationParamsMode.startExecutionAndAwaitCompletion(CreateValidationParamsMode.java:193)
        at org.ldbcouncil.snb.driver.Client.main(Client.java:65)
Caused by: org.ldbcouncil.snb.driver.ClientException: Error trying to write validation parameters to CSV file writer
        at org.ldbcouncil.snb.driver.client.CreateValidationParamsMode.startExecutionAndAwaitCompletion(CreateValidationParamsMode.java:182)
        ... 1 more
Caused by: java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because "marshaledOperationResult" is null
        at org.ldbcouncil.snb.driver.validation.ValidationParamsToCsvRows.next(ValidationParamsToCsvRows.java:96)
        at org.ldbcouncil.snb.driver.validation.ValidationParamsToCsvRows.next(ValidationParamsToCsvRows.java:18)
        at org.ldbcouncil.snb.driver.client.CreateValidationParamsMode.startExecutionAndAwaitCompletion(CreateValidationParamsMode.java:165)
        ... 1 more

Problem 2:

I also used the validation data obtained from others to verify neo4j and postgres databases. A strange phenomenon occurs. The query results of the two databases on Query 7 are inconsistent with the expected results, and the all difference between the likeCreationDate field is 10. 000, for example:

this is the expected result of query:

[
  {
    "operation" : {
      "personIdQ7" : 17592186053137,
      "limit" : 20
    },
    "result" : [
      {
        "personId" : 17592186049473,
        "personFirstName" : "Jean-Pierre",
        "personLastName" : "Kanam",
        "likeCreationDate" : 1347460360024,
        "messageId" : 2199024319581,
        "messageContent" : "About Charles V, Holy Roman Emperor, rmation. In addition to thAbout Bob Dyla",
        "minutesLatency" : 2968,
        "isNew" : true
      },
      {
        "personId" : 32985348842700,
        "personFirstName" : "Ajuma",
        "personLastName" : "Leakey",
        "likeCreationDate" : 1347369557097,
        "messageId" : 1786707240991,
        "messageContent" : "About Costa Rica, a to the southeast, the Pacific Ocean to theAbout Napoleon III, pula",
        "minutesLatency" : 193579,
        "isNew" : false
      },

And actual result is:

[
  {
    "operation" : {
      "personIdQ7" : 17592186053137,
      "limit" : 20
    },
    "result" : [
      {
        "personId" : 17592186049473,
        "personFirstName" : "Jean-Pierre",
        "personLastName" : "Kanam",
        "likeCreationDate" : 1347460370024,
        "messageId" : 2199024319581,
        "messageContent" : "About Charles V, Holy Roman Emperor, rmation. In addition to thAbout Bob Dyla",
        "minutesLatency" : 2969,
        "isNew" : true
      },
      {
        "personId" : 32985348842700,
        "personFirstName" : "Ajuma",
        "personLastName" : "Leakey",
        "likeCreationDate" : 1347369567097,
        "messageId" : 1786707240991,
        "messageContent" : "About Costa Rica, a to the southeast, the Pacific Ocean to theAbout Napoleon III, pula",
        "minutesLatency" : 193579,
        "isNew" : false
      },

This is true for all Query 7, and for both Neo4j and Postgres implementations.

hkrcc01 commented 2 weeks ago

The pre-generated validation data is from: https://pub-383410a98aef4cb686f0c7601eddd25f.r2.dev/interactive-v1/validation_params-sf0.1-sf10.tar.zst

hkrcc01 commented 2 weeks ago

Problem 2 has been solved! It's the time zone. The time zone of the region is different. As a result, the data difference is 10,000.