def readDistribution(self, file_id):
        configDic = {}

        ttlPattern = '~([^~]+) - TTL Distribution in Seconds(~+)'
        evictPattern = '~([^~]+) - Eviction Distribution in Seconds(~+)'
        objszPattern = '~([^~]+) - Object Size Distribution in Record Blocks(~+)'
        objszBytesPattern = '([^~]+) - Object Size Distribution in Bytes'

        line = file_id.readline()
        bytewise_distribution = False
        while(not re.search(self.section_separator, line) and not re.search(self.section_separator_with_date,line)):
            if line.strip().__len__() != 0 :
                m1 = re.search(ttlPattern, line)
                m2 = re.search(evictPattern, line)
                m3 = re.search(objszPattern, line)
                m4 = re.search(objszBytesPattern, line)
                dic = {}
                key = "key"
                if m1:
                    if "ttl" not in configDic:
                        configDic["ttl"] = {}
                    dic = configDic["ttl"]
                    key = m1.group(1).strip()
                elif m2:
                    if "evict" not in configDic:
                        configDic["evict"] = {}
                    dic = configDic["evict"]
                    key = m2.group(1).strip()
                elif m3:
                    if "objsz" not in configDic:
                        configDic["objsz"] = {}
                    dic = configDic["objsz"]
                    key = m3.group(1).strip()
                elif m4:
                    if "objsz-b" not in configDic:
                        configDic["objsz-b"] = {}
                    dic = configDic["objsz-b"]
                    key = m4.group(1).strip()
                    bytewise_distribution = True

                if bytewise_distribution:
                    columns, dic[key] = self.vtable_to_dic(file_id)
                    dic[key]['columns'] = columns
                else:
                    dic[key] = self.dist_table_to_dic(file_id)
            try:
                line = file_id.readline()
            except __HOLE__:
                break
        return configDic
dataset/ETHPy150Open aerospike/aerospike-admin/lib/logreader.py/LogReader.readDistribution