259 lines
13 KiB
Python
259 lines
13 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Generated by Django 1.10.1 on 2018-03-26 02:21
|
|
|
|
|
|
from django.conf import settings
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import re
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='BackupData',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('raw_knobs', models.TextField()),
|
|
('raw_initial_metrics', models.TextField()),
|
|
('raw_final_metrics', models.TextField()),
|
|
('raw_summary', models.TextField()),
|
|
('knob_log', models.TextField()),
|
|
('metric_log', models.TextField()),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='DBMSCatalog',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('type', models.IntegerField(choices=[(1, b'MySQL'), (2, b'Postgres'), (3, b'Db2'), (4, b'Oracle'), (5, b'SQL Server'), (6, b'SQLite'), (7, b'HStore'), (8, b'Vector'), (9, b'MyRocks')])),
|
|
('version', models.CharField(max_length=16)),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Hardware',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('type', models.IntegerField()),
|
|
('name', models.CharField(max_length=32)),
|
|
('cpu', models.IntegerField()),
|
|
('memory', models.FloatField()),
|
|
('storage', models.CharField(max_length=64, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')])),
|
|
('storage_type', models.CharField(max_length=16)),
|
|
('additional_specs', models.TextField(null=True)),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='KnobCatalog',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=128)),
|
|
('vartype', models.IntegerField(choices=[(1, b'STRING'), (2, b'INTEGER'), (3, b'REAL'), (4, b'BOOL'), (5, b'ENUM'), (6, b'TIMESTAMP')], verbose_name=b'variable type')),
|
|
('unit', models.IntegerField(choices=[(1, b'bytes'), (2, b'milliseconds'), (3, b'other')])),
|
|
('category', models.TextField(null=True)),
|
|
('summary', models.TextField(null=True, verbose_name=b'description')),
|
|
('description', models.TextField(null=True)),
|
|
('scope', models.CharField(max_length=16)),
|
|
('minval', models.CharField(max_length=32, null=True, verbose_name=b'minimum value')),
|
|
('maxval', models.CharField(max_length=32, null=True, verbose_name=b'maximum value')),
|
|
('default', models.TextField(verbose_name=b'default value')),
|
|
('enumvals', models.TextField(null=True, verbose_name=b'valid values')),
|
|
('context', models.CharField(max_length=32)),
|
|
('tunable', models.BooleanField(verbose_name=b'tunable')),
|
|
('resource', models.IntegerField(choices=[(1, b'Memory'), (2, b'CPU'), (3, b'Storage'), (4, b'Other')], default=4)),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='KnobData',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=50)),
|
|
('creation_time', models.DateTimeField()),
|
|
('data', models.TextField()),
|
|
('knobs', models.TextField()),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='MetricCatalog',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=128)),
|
|
('vartype', models.IntegerField(choices=[(1, b'STRING'), (2, b'INTEGER'), (3, b'REAL'), (4, b'BOOL'), (5, b'ENUM'), (6, b'TIMESTAMP')])),
|
|
('summary', models.TextField(null=True, verbose_name=b'description')),
|
|
('scope', models.CharField(max_length=16)),
|
|
('metric_type', models.IntegerField(choices=[(1, b'COUNTER'), (2, b'INFO'), (3,b'STATISTICS')])),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='MetricData',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=50)),
|
|
('creation_time', models.DateTimeField()),
|
|
('data', models.TextField()),
|
|
('metrics', models.TextField()),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='PipelineData',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('task_type', models.IntegerField(choices=[(1, b'Pruned Metrics'), (2, b'Ranked Knobs'), (3, b'Knob Data'), (4, b'Metric Data')])),
|
|
('data', models.TextField()),
|
|
('creation_time', models.DateTimeField()),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='PipelineRun',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('start_time', models.DateTimeField()),
|
|
('end_time', models.DateTimeField(null=True)),
|
|
],
|
|
options={
|
|
'ordering': ['-id'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Project',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=64, verbose_name=b'project name')),
|
|
('description', models.TextField(blank=True, null=True)),
|
|
('creation_time', models.DateTimeField()),
|
|
('last_update', models.DateTimeField()),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Result',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('creation_time', models.DateTimeField()),
|
|
('observation_start_time', models.DateTimeField()),
|
|
('observation_end_time', models.DateTimeField()),
|
|
('observation_time', models.FloatField()),
|
|
('task_ids', models.CharField(max_length=180, null=True)),
|
|
('next_configuration', models.TextField(null=True)),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
('knob_data', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.KnobData')),
|
|
('metric_data', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.MetricData')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Session',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=64, verbose_name=b'session name')),
|
|
('description', models.TextField(blank=True, null=True)),
|
|
('ddpg_actor_model', models.BinaryField(null=True, blank=True)),
|
|
('ddpg_critic_model', models.BinaryField(null=True, blank=True)),
|
|
('ddpg_reply_memory', models.BinaryField(null=True, blank=True)),
|
|
('creation_time', models.DateTimeField()),
|
|
('last_update', models.DateTimeField()),
|
|
('upload_code', models.CharField(max_length=30, unique=True)),
|
|
('tuning_session', models.CharField(choices=[('tuning_session', 'Tuning Session'), ('no_tuning_session', 'No Tuning'), ('randomly_generate', 'Randomly Generate')], max_length=64)),
|
|
('target_objective', models.CharField(choices=[(b'throughput_txn_per_sec', b'Throughput'), (b'99th_lat_ms', b'99 Percentile Latency')], max_length=64, null=True)),
|
|
('nondefault_settings', models.TextField(null=True)),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
('hardware', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Hardware')),
|
|
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Project')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Workload',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=128, verbose_name=b'workload name')),
|
|
('dbms', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.DBMSCatalog')),
|
|
('hardware', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Hardware')),
|
|
],
|
|
),
|
|
migrations.AddField(
|
|
model_name='result',
|
|
name='session',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Session', verbose_name=b'session name'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='result',
|
|
name='workload',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Workload'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='pipelinedata',
|
|
name='pipeline_run',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.PipelineRun'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='pipelinedata',
|
|
name='workload',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Workload'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='metricdata',
|
|
name='session',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Session'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='knobdata',
|
|
name='session',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Session'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='backupdata',
|
|
name='result',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Result'),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='workload',
|
|
unique_together=set([('dbms', 'hardware', 'name')]),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='pipelinedata',
|
|
unique_together=set([('pipeline_run', 'task_type', 'workload')]),
|
|
),
|
|
]
|