@@ -183,20 +183,26 @@ def setup(self):
183183
184184 # Setup store
185185 protocol = self .args .protocol
186- device_name = self .args .device_name
186+ protocol_args = self .args .protocol_args
187187 local_hostname = self .args .local_hostname
188188 metadata_server = self .args .metadata_server
189- global_segment_size = self .args .global_segment_size * 1024 * 1024
190189 local_buffer_size = self .args .local_buffer_size * 1024 * 1024
191190 master_server_address = self .args .master_server
192191
193192 logger .info (f"Setting up { self .args .role } instance with batch_size={ self .args .batch_size } " )
194- logger .info (f" Protocol: { protocol } , Device: { device_name } " )
195- logger .info (f" Global segment: { global_segment_size // (1024 * 1024 )} MB" )
193+ logger .info (f" Protocol: { protocol } , Protocol args: { protocol_args } " )
196194 logger .info (f" Local buffer: { local_buffer_size // (1024 * 1024 )} MB" )
197195
198- retcode = self .store .setup (local_hostname , metadata_server , global_segment_size ,
199- local_buffer_size , protocol , device_name , master_server_address )
196+ if self .args .files is None :
197+ global_segment_size = self .args .global_segment_size * 1024 * 1024
198+ logger .info (f" Global segment: { global_segment_size // (1024 * 1024 )} MB" )
199+ retcode = self .store .setup (local_hostname , metadata_server , global_segment_size ,
200+ local_buffer_size , protocol , protocol_args , master_server_address )
201+ else :
202+ files = self .args .files .split ()
203+ logger .info (f" Files: { files } " )
204+ retcode = self .store .setup_with_files (local_hostname , metadata_server , files ,
205+ local_buffer_size , protocol , protocol_args , master_server_address )
200206 if retcode :
201207 logger .error (f"Store setup failed with return code { retcode } " )
202208 exit (1 )
@@ -428,14 +434,18 @@ def parse_arguments():
428434
429435 # Network and connection settings
430436 parser .add_argument ("--protocol" , type = str , default = "rdma" , help = "Communication protocol to use" )
431- parser .add_argument ("--device-name" , type = str , default = "erdma_0" , help = "Network device name for RDMA" )
437+ parser .add_argument ("--protocol-args" , "--device-name" , dest = "protocol_args" , type = str ,
438+ default = "erdma_0" , help = "Protocol specific args, e.g. Network device name for RDMA" )
432439 parser .add_argument ("--local-hostname" , type = str , default = "localhost" , help = "Local hostname" )
433440 parser .add_argument ("--metadata-server" , type = str , default = "http://127.0.0.1:8080/metadata" , help = "Metadata server address" )
434441 parser .add_argument ("--master-server" , type = str , default = "localhost:50051" , help = "Master server address" )
435442
436443 # Memory and storage settings
437- parser .add_argument ("--global-segment-size" , type = int , default = 10000 , help = "Global segment size in MB" )
438444 parser .add_argument ("--local-buffer-size" , type = int , default = 512 , help = "Local buffer size in MB" )
445+ # Only one of --global-segment-size and --files should be specified.
446+ group = parser .add_mutually_exclusive_group ()
447+ group .add_argument ("--global-segment-size" , type = int , default = 10000 , help = "Global segment size in MB" )
448+ group .add_argument ("--files" , type = str , default = None , help = "Files to be registered as global segments" )
439449
440450 # Test parameters
441451 parser .add_argument ("--max-requests" , type = int , default = 1200 , help = "Maximum number of requests to process" )
0 commit comments