This is an automated email from the ASF dual-hosted git repository.
yuyuankang pushed a commit to branch research/separation
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/research/separation by this
push:
new b5d3ba2 version
b5d3ba2 is described below
commit b5d3ba2402b38deabea3d2dae1b08ac1db22e773
Author: yuyuan <[email protected]>
AuthorDate: Tue Mar 15 08:03:48 2022 -0700
version
---
separation_py/SeparationServer.py | 27 ++-----------
.../org/apache/iotdb/separation_py/hlsm.py | 47 +++-------------------
2 files changed, 9 insertions(+), 65 deletions(-)
diff --git a/separation_py/SeparationServer.py
b/separation_py/SeparationServer.py
index 3b94468..c90da81 100644
--- a/separation_py/SeparationServer.py
+++ b/separation_py/SeparationServer.py
@@ -9,42 +9,23 @@ from org.apache.iotdb.separation_py.hlsm import Hybrid
class SeparationHandler:
def __init__(self):
- print('hello world')
arg_time_interval = 50
arg_buffer_size = 512
- # arg_statistics_num = 200
delay_buffer_size = 100000
- # dataset_path = 'mixed-mu-[5, 5, 7, 5, 7]-sigma-[2, 0.5, 1.75, 1,
1.5]-t-50-10000000.npy'
- # dataset = np.load(dataset_path)
-
- # print
- # dataset.shape
-
self.hybrid = Hybrid(lsm_buffer_size=arg_buffer_size,
generate_time_interval=arg_time_interval,
- delay_distance_threshold=100,
delay_buffer_size=delay_buffer_size,
- cdf_split=1)
- # for tuple in dataset:
- # hybrid.write_data(tuple[2])
-
- # pass
-
+ delay_distance_threshold=100,
delay_buffer_size=delay_buffer_size,
+ cdf_split=1)
def writeDelay(self, delay):
rc_est, rs_est, seq_size_rec = self.hybrid.write_data(delay)
return str(rc_est) + "," + str(rs_est) + "," + str(seq_size_rec)
-# handler processer类
+
handler = SeparationHandler()
processor = SeparationTunningService.Processor(handler)
transport = TSocket.TServerSocket("127.0.0.1", 8989)
-# 传输方式,使用buffer
tfactory = TTransport.TBufferedTransportFactory()
-# 传输的数据类型:二进制
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
-# 创建一个thrift 服务
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
-
-print("Starting thrift server in python...")
-
+print("Starting tuning server in python...")
server.serve()
-print("done!")
diff --git a/separation_py/org/apache/iotdb/separation_py/hlsm.py
b/separation_py/org/apache/iotdb/separation_py/hlsm.py
index 6575422..cb8de1c 100755
--- a/separation_py/org/apache/iotdb/separation_py/hlsm.py
+++ b/separation_py/org/apache/iotdb/separation_py/hlsm.py
@@ -1,8 +1,5 @@
import copy
-#
-# import matplotlib.pyplot as plt
-import numpy as np
from scipy.stats import ks_2samp
from org.apache.iotdb.separation_py.tools import distance, get_cdf_function,
to_pdf, get_g, recommend_n_1, get_rc, \
@@ -10,18 +7,13 @@ from org.apache.iotdb.separation_py.tools import distance,
get_cdf_function, to_
class Hybrid:
-
def __init__(self, lsm_buffer_size, generate_time_interval,
delay_distance_threshold,
delay_buffer_size=100000, min_sequential_buffer_size=1,
cdf_split=16):
-
- # self.rc_ = None
- # self.rs_ = None
self.is_separate = False
self.last_delay_set = []
self.current_delay_set = []
self.last_delay_analysis = None
self.current_delay_analysis = None
-
self.lsm_buffer_size = lsm_buffer_size
self.sequential_buffer_size = None
self.generate_time_interval = generate_time_interval
@@ -30,17 +22,10 @@ class Hybrid:
self.delay_distance_threshold = delay_distance_threshold
self.cdf_split = cdf_split
self.bin_step = self.generate_time_interval / self.cdf_split
-
self.rs = 0
self.rc = 0
self.seq_rec = 0
- # def description(self):
- # if self.is_separate:
- # return 'separate,' + str(self.sequential_buffer_size) + ",rs," +
str(self.rs_) + ",rc," + str(self.rc_)
- # else:
- # return 'conventional,' + ",rs," + str(self.rs_) + ",rc," +
str(self.rc_)
-
def __is_delay_changes(self, method='ks'):
if len(self.last_delay_set) == 0:
return True
@@ -53,7 +38,6 @@ class Hybrid:
raise ValueError('unknown distribution test method')
def write_data(self, delay):
- ## collect delay
if len(self.current_delay_set) < self.delay_buffer_size:
self.current_delay_set.append(delay)
else:
@@ -65,14 +49,14 @@ class Hybrid:
self.min_sequential_buffer_size)
n_1, n_arrival = recommend_n_1(n_1_list, n_2_list, G)
# print('n_1', n_1, 'n_arrive', n_arrival)
- print('getting rc and rs')
+ print('getting wa of pi_c and pi_s')
it_threshold = sum(pdf) * self.bin_step
rc = get_rc(self.lsm_buffer_size, cdf, pdf, self.bin_step,
self.generate_time_interval,
threshold=it_threshold)
- print('rc=' + str(rc))
+ print('pi_c_wa=' + str(rc))
rs = get_rs(self.lsm_buffer_size, n_1, G, n_arrival, cdf, pdf,
self.bin_step,
self.generate_time_interval,
threshold=it_threshold)
- print('rs=' + str(rs))
+ print('pi_s_wa=' + str(rs))
self.rc = rc
self.rs = rs
self.seq_rec = n_1
@@ -81,27 +65,6 @@ class Hybrid:
# print('rc', rc, 'rs', rs)
self.current_delay_set = []
self.current_delay_analysis = None
+ print('delay:', delay, 'pi_c_wa', self.rc, 'pi_s_wa', self.rs,
'seq_rec', self.seq_rec, 'delay_set_size',
+ len(self.current_delay_set))
return self.rc, self.rs, self.seq_rec
-
-
-if __name__ == '__main__':
- print('hello world')
- arg_time_interval = 50
- arg_buffer_size = 512
- arg_statistics_num = 200
- delay_buffer_size = 100000
- dataset_path = '/home/kyy/Documents/final_project/dataset/mixed-mu-[5, 5,
7, 5, 7]-sigma-[2, 0.5, 1.75, 1, 1.5]-t-50-10000000.npy'
-
- dataset = np.load(dataset_path)
-
- with open(
- '/home/kyy/Documents/final_project/dataset/mixed-mu-[5, 5, 7, 5,
7]-sigma-[2, 0.5, 1.75, 1, 1.5]-t-50-10000000.npy.csv',
- 'w') as fileout:
- for tuple in dataset:
- fileout.write(str(tuple[0]) + ',' + str(tuple[1]) + ',' +
str(tuple[2]) + '\n')
-
- hybrid = Hybrid(lsm_buffer_size=arg_buffer_size,
generate_time_interval=arg_time_interval,
- delay_distance_threshold=100,
delay_buffer_size=delay_buffer_size,
- cdf_split=1)
- for tuple in dataset:
- hybrid.write_data(tuple[2])