xichen01 commented on PR #744:
URL: https://github.com/apache/ratis/pull/744#issuecomment-1248000331

   I use this 
https://github.com/apache/ratis/pull/744/commits/f0a09fabf1eb488e5849a7dc105e6cc7047ca678
 commit code to test Ozone S3, Tested with a multiupload of 100 threads,  GRPC 
message metric leaks still found.
   This is the test code
   ```python3
   import boto3
   from boto3.s3.transfer import TransferConfig
   
   MB = 1024 * 1024
   s3 = boto3.resource('s3')
   
   MultipartChunkSize = 5 * MB
   MaxConcurrency = 100
   AccessKeyID = "chen"
   SecretAccessKey = "user_key"
   BucketRegion = "dummyregion"
   BucketName = "testbucket"
   EndpointUrl = "http://localhost:9878";
   LocalFilePath = "/Users/pony.chen/500M.img"
   ObjectKeyName = "key_from_py1"
   
   
   def multipart_upload(client, local_file_path, bucket_name, object_key, 
multipart_chunksize,
                        max_concurrency):
       config = TransferConfig(multipart_chunksize=multipart_chunksize,
                               max_concurrency=max_concurrency)
       client.upload_file(local_file_path, bucket_name, object_key, 
Config=config)
   
   
   if __name__ == '__main__':
       client = boto3.client('s3',
                             endpoint_url=EndpointUrl,
                             aws_access_key_id=AccessKeyID,
                             aws_secret_access_key=SecretAccessKey)
       multipart_upload(client, LocalFilePath, BucketName, ObjectKeyName, 
MultipartChunkSize,
                            MaxConcurrency)
   ```
   
   I found that the leaked metrics are all related `XXX_received_executed` 
metrics
   ```bash
   [chen@hostname /root/ratis]% curl -s http://localhost:9878/jmx | grep 
client_message_metrics
       "name" : 
"ratis:name=ratis.client_message_metrics.client-78FD5D54C056->0806d407-c2cb-4628-a986-9d9f4da7393f.client-78FD5D54C056->0806d407-c2cb-4628-a986-9d9f4da7393f_ratis.grpc.RaftClientProtocolService_ordered_OK_received_executed",
       "name" : 
"ratis:name=ratis.client_message_metrics.client-F3678E2734CB->3be0191f-50c8-4c86-9d31-b9d5169c42db.client-F3678E2734CB->3be0191f-50c8-4c86-9d31-b9d5169c42db_ratis.grpc.RaftClientProtocolService_unordered_OK_received_executed",
       "name" : 
"ratis:name=ratis.client_message_metrics.client-268EA6C4F3CA->0806d407-c2cb-4628-a986-9d9f4da7393f.client-268EA6C4F3CA->0806d407-c2cb-4628-a986-9d9f4da7393f_ratis.grpc.RaftClientProtocolService_ordered_OK_received_executed",
       "name" : 
"ratis:name=ratis.client_message_metrics.client-36DFCCCF5CE1->3be0191f-50c8-4c86-9d31-b9d5169c42db.client-36DFCCCF5CE1->3be0191f-50c8-4c86-9d31-b9d5169c42db_ratis.grpc.RaftClientProtocolService_ordered_OK_received_executed",
   [chen@hostname /root/ratis]% 
   ```
   
   So I added some `synchronized` at this commit 
https://github.com/apache/ratis/pull/744/commits/22d646a1b7cbed94def3c901e5a4e66874ea2be1
   
   after applying this commit 
https://github.com/apache/ratis/pull/744/commits/22d646a1b7cbed94def3c901e5a4e66874ea2be1,
 all metrics leaks are gone 
   
   But I don't really understand why this can fix the GRPC message metrics 
leak, any suggestions?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to