Skip to content

Commit e344706

Browse files
Reduce default values for buffer sizes (#66)
1 parent 0660405 commit e344706

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

redisgraph_bulk_loader/bulk_insert.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ def process_entities(entities):
6666
@click.option('--escapechar', '-x', default='\\', help='the escape char used for the CSV reader (default \\). Use "none" for None.')
6767
# Buffer size restrictions
6868
@click.option('--max-token-count', '-c', default=1024, help='max number of processed CSVs to send per query (default 1024)')
69-
@click.option('--max-buffer-size', '-b', default=512, help='max buffer size in megabytes (default 512)')
70-
@click.option('--max-token-size', '-t', default=500, help='max size of each token in megabytes (default 500, max 512)')
69+
@click.option('--max-buffer-size', '-b', default=128, help='max buffer size in megabytes (default 128, max 1024)')
70+
@click.option('--max-token-size', '-t', default=128, help='max size of each token in megabytes (default 128, max 512)')
7171
@click.option('--index', '-i', multiple=True, help='Label:Propery on which to create an index')
7272
@click.option('--full-text-index', '-f', multiple=True, help='Label:Propery on which to create an full text search index')
7373
def bulk_insert(graph, host, port, password, user, unix_socket_path, nodes, nodes_with_label, relations, relations_with_type, separator, enforce_schema, skip_invalid_nodes, skip_invalid_edges, escapechar, quote, max_token_count, max_buffer_size, max_token_size, index, full_text_index):

redisgraph_bulk_loader/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
class Config:
2-
def __init__(self, max_token_count=1024 * 1023, max_buffer_size=2_048, max_token_size=512, enforce_schema=False, skip_invalid_nodes=False, skip_invalid_edges=False, separator=',', quoting=3, store_node_identifiers=False, escapechar='\\'):
2+
def __init__(self, max_token_count=1024 * 1023, max_buffer_size=128, max_token_size=128, enforce_schema=False, skip_invalid_nodes=False, skip_invalid_edges=False, separator=',', quoting=3, store_node_identifiers=False, escapechar='\\'):
33
"""Settings for this run of the bulk loader"""
44
# Maximum number of tokens per query
55
# 1024 * 1024 is the hard-coded Redis maximum. We'll set a slightly lower limit so
66
# that we can safely ignore tokens that aren't binary strings
77
# ("GRAPH.BULK", "BEGIN", graph name, counts)
88
self.max_token_count = min(max_token_count, 1024 * 1023)
99
# Maximum size in bytes per query
10-
self.max_buffer_size = max_buffer_size * 1_000_000
10+
self.max_buffer_size = min(max_buffer_size * 1_000_000, 1024 * 1_000_000)
1111
# Maximum size in bytes per token
1212
# 512 megabytes is a hard-coded Redis maximum
13-
self.max_token_size = min(max_token_size * 1_000_000, 512 * 1_000_000)
13+
self.max_token_size = min(max_token_size * 1_000_000, 512 * 1_000_000, self.max_buffer_size)
1414

1515
self.enforce_schema = enforce_schema
1616
self.skip_invalid_nodes = skip_invalid_nodes

test/test_config.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ def test01_default_values(self):
77
"""Verify the default values in the Config class."""
88
config = Config()
99
self.assertEqual(config.max_token_count, 1024 * 1023)
10-
self.assertEqual(config.max_buffer_size, 2_048_000_000)
11-
self.assertEqual(config.max_token_size, 512_000_000)
10+
self.assertEqual(config.max_buffer_size, 128_000_000)
11+
self.assertEqual(config.max_token_size, 128_000_000)
1212
self.assertEqual(config.enforce_schema, False)
1313
self.assertEqual(config.skip_invalid_nodes, False)
1414
self.assertEqual(config.skip_invalid_edges, False)
@@ -18,10 +18,10 @@ def test01_default_values(self):
1818

1919
def test02_modified_values(self):
2020
"""Verify that Config_set updates Config class values accordingly."""
21-
config = Config(max_token_count=10, max_buffer_size=100, max_token_size=200, enforce_schema=True, skip_invalid_nodes=True, skip_invalid_edges=True, separator='|', quoting=0)
21+
config = Config(max_token_count=10, max_buffer_size=500, max_token_size=200, enforce_schema=True, skip_invalid_nodes=True, skip_invalid_edges=True, separator='|', quoting=0)
2222
self.assertEqual(config.max_token_count, 10)
2323
self.assertEqual(config.max_token_size, 200_000_000) # Max token size argument is converted to megabytes
24-
self.assertEqual(config.max_buffer_size, 100_000_000) # Buffer size argument is converted to megabytes
24+
self.assertEqual(config.max_buffer_size, 500_000_000) # Buffer size argument is converted to megabytes
2525
self.assertEqual(config.enforce_schema, True)
2626
self.assertEqual(config.skip_invalid_nodes, True)
2727
self.assertEqual(config.skip_invalid_edges, True)

0 commit comments

Comments
 (0)