Split edge creation into batches

This commit is contained in:
János Benjamin Antal 2023-02-01 14:31:56 +01:00
parent 7be66f0c54
commit 24ae6069f0

View File

@ -107,7 +107,7 @@ def main():
f.write("\n] AS props CREATE (:Identity {uuid: props.uuid, name: props.name});\n") f.write("\n] AS props CREATE (:Identity {uuid: props.uuid, name: props.name});\n")
f.write("UNWIND [") f.write("UNWIND [")
wrote_anything = False created = 0
for outer_index in range(0, number_of_files): for outer_index in range(0, number_of_files):
for inner_index in range(0, number_of_identities): for inner_index in range(0, number_of_identities):
@ -116,17 +116,27 @@ def main():
if random.random() <= percentage_of_permissions: if random.random() <= percentage_of_permissions:
if wrote_anything: if created > 0:
f.write(",") f.write(",")
f.write( f.write(
f'\n {{permUuid: {uuid}, permName: "name_permission_{uuid}", fileUuid: {file_uuid}, identityUuid: {identity_uuid}}}' f'\n {{permUuid: {uuid}, permName: "name_permission_{uuid}", fileUuid: {file_uuid}, identityUuid: {identity_uuid}}}'
) )
wrote_anything = True created += 1
uuid += 1 uuid += 1
if created == 5000:
f.write(
"""\n] AS props
MATCH (file:File {uuid:props.fileUuid}), (identity:Identity {uuid: props.identityUuid})
CREATE (permission:Permission {uuid: props.permUuid, name: props.permName})
CREATE (permission)-[: IS_FOR_FILE]->(file)
CREATE (permission)-[: IS_FOR_IDENTITY]->(identity);
UNWIND ["""
)
created = 0
f.write( f.write(
""" """\n] AS props
\n] AS props
MATCH (file:File {uuid:props.fileUuid}), (identity:Identity {uuid: props.identityUuid}) MATCH (file:File {uuid:props.fileUuid}), (identity:Identity {uuid: props.identityUuid})
CREATE (permission:Permission {uuid: props.permUuid, name: props.permName}) CREATE (permission:Permission {uuid: props.permUuid, name: props.permName})
CREATE (permission)-[: IS_FOR_FILE]->(file) CREATE (permission)-[: IS_FOR_FILE]->(file)