Beispiel #1
0
from template.db import Database
from template.query import Query
#from template.config import init

from random import choice, randint, sample, seed
#init()

db = Database()
db.open('./ECS165')

grades_table = db.get_table('Grades')
query = Query(grades_table)

# repopulate with random data
records = {}
seed(3562901)
for i in range(0, 1000):
    key = 92106429 + i
    records[key] = [
        key,
        randint(0, 20),
        randint(0, 20),
        randint(0, 20),
        randint(0, 20)
    ]

# Simulate updates
keys = sorted(list(records.keys()))
for _ in range(10):
    for key in keys:
        for j in range(1, grades_table.num_columns):
from template.db import Database
from template.query import Query
from template.transaction import Transaction
from template.transaction_worker import TransactionWorker
import threading

from random import choice, randint, sample, seed

db = Database()

db.open('ECS165')
grades_table = db.create_table('Grades', 5, 0)

keys = []
records = {}
seed(3562901)
num_threads = 8

# Generate random records
for i in range(0, 10000):
    key = 92106429 + i
    keys.append(key)
    records[key] = [key, 0, 0, 0, 0]
    q = Query(grades_table)
    q.insert(*records[key])

# Create transactions and assign them to workers
transactions = []
transaction_workers = []
for i in range(num_threads):
    transaction_workers.append(TransactionWorker())
from template.db import Database
from template.query import Query
from time import process_time
from random import choice, randrange

# Student Id and 4 grades
db = Database()
grades_table = db.create_table('Grades', 0, 5)
query = Query(grades_table)
keys = []

insert_time_0 = process_time()
for i in range(0, 10000):
    query.insert(906659671 + i, 93, 0, 0, 0)
    keys.append(906659671 + i)
insert_time_1 = process_time()

print("Inserting 10k records took:  \t\t\t", insert_time_1 - insert_time_0)

# Measuring update Performance
update_cols = [
    [randrange(0, 100), None, None, None, None],
    [None, randrange(0, 100), None, None, None],
    [None, None, randrange(0, 100), None, None],
    [None, None, None, randrange(0, 100), None],
    [None, None, None, None, randrange(0, 100)],
]

update_time_0 = process_time()
for i in range(0, 10000):
    query.update(choice(keys), *(choice(update_cols)))
Beispiel #4
0
from template.query import Query
import os
from time import process_time
from random import choice, randrange
import sys
# Student Id and 4 grades
'''
READ ME!!
    Before using this demo, be sure that the Tail_Const is set to a value high enough
    to guaranteed that all updates are contained within the same block.
        config.py -> TAIL_CONST = 4

    This program is meant to run sequentially through all parts starting with an empty ECS165
    directory.
'''
db = Database()
db.open('ECS165')
grades_table = db.get_table("Grades")
q = Query(grades_table)
keys = []

loop = 1000

rec = q.select(92106429, 0, [1, 1, 1, 1, 1])[0]
rec2 = q.select(92106430, 0, [1, 1, 1, 1, 1])[0]
print("Original Record Contents: ")
print(rec)
print(rec2)

print("Update Test ", loop, " times:")
record = q.select(92106429, 0, [1, 1, 1, 1, 1])[0]
from template.db import Database
from template.query import Query
import os
'''
READ ME!!
    Before using this demo, be sure that the Tail_Const is set to a value high enough
    to guaranteed that all updates are contained within the same block.
        config.py -> TAIL_CONST = 4

    This program is meant to run sequentially through all parts starting with an empty ECS165
    directory.
'''
db2 = Database()
db2.open("ECS165")
#db2.open()
print(db2)
g_table = db2.get_table('Grades')
q = Query(g_table)
rec3 = q.select(92106429, 0, [1, 1, 1, 1, 1])[0]
rec4 = q.select(92106430, 0, [1, 1, 1, 1, 1])[0]
print("Rec = ", rec3)
print("Rec2 = ", rec4)
rec3f = q.selectFull(92106429, 0)
rec4f = q.selectFull(92106430, 0)
print("Rec_full = ", rec3f)
print("Rec2_full = ", rec4f)
db2.close()
Beispiel #6
0
from template.table import *
import pickle
import io
import os
from template.query import *
from random import choice, randint, sample, seed
from template.db import Database
from time import process_time

db = Database()
db.open('./ECS165')
newtable = db.create_table('nidaye', 5, 0)
query = Query(newtable)
keys = []

for i in range(0, 5):
    query.insert(1 + i, 93, 0, 0, 0)
    keys.append(1 + i)

# update_time_0 = process_time()
for i in range(0, 4):
    up = [0, 94, 1, 1, 1]
    query.update(1 + i, *up)

for i in range(0, 2):
    up = [0, 95, 2, 1, 1]
    query.update(1 + i, *up)
# query.update(906659671, 5, 5, 5, 5, 5)
# query.update(906659671, 5, 5, 5, 6, 5)
# query.update(906659671, 5, 2, 5, 6, 5)
records = query.select(95, 1, [1, 1, 1, 1, 1])
Beispiel #7
0
from template.db import Database

database = Database()
grades_table = database.create_table('Grades', 5, 0)

# retValue = database.get_table('Grades')
# print(retValue)
# db_length = len(database.tables_directory)
# print(db_length)

sec_grades_table = database.create_table('Grades2', 5, 0)
retNewTable = database.get_table('Grades2')
print(retNewTable)
db_length2 = len(database.tables_directory)
print("Data base length:",db_length2)
print("Table name:",sec_grades_table.name)
print("Table key",sec_grades_table.Table_key)
print("Table columns:",sec_grades_table.num_columns)
print("Table page directory:",sec_grades_table.page_directory)
print("Table index:",sec_grades_table.index)
print("Table record directory:",sec_grades_table.record_directory)
print("Table prange:",sec_grades_table.prange_num)
print("Table free base rid:",sec_grades_table.free_brid)
print("Table free tail rid:",sec_grades_table.free_trid)

print("Before calling drop", len(database.tables_directory))
database.drop_table('Grades')
print("After calling drop", len(database.tables_directory))
Beispiel #8
0
    data = table.read_record(9999,)
    print(table.get_rid_list())
data = table.read_record(9999)

table.update_record(*update_data3)
"""

#query.update(9999,*update_data) #[9999, 4, 3, None, 1]
#query.update(9999,*update_data2) #[9999, 4, 2, 4, 1]
#query.update(9990, *update_data3) #[9990, 4, 2, None, 2]
#query.update(9999, *update_data4) #[9999, None, None, None, None]
# value = query.sum(4, 5, 1)
# # data = table.read_record(9999)
# print(value)

db = Database()
db.open('./ECS165')
os.mkdir('./ECS165/table1')
os.mkdir('./ECS165/table2')
f = open('./ECS165/table1/table1.pkl', 'wb')

# f = open('./ECS165/table1/table.pkl')
grades_table = db.create_table('table1', 5, 0)
# grades_table.index = None
query = Query(grades_table)
keys = []

insert_time_0 = process_time()
for i in range(0, 10):
    query.insert(906659671 + i, 93, 0, 0, 0)
    keys.append(906659671 + i)
Beispiel #9
0
from template.db import Database
from template.query import Query
from template.transaction import Transaction
from template.transaction_worker import TransactionWorker

from random import choice, randint, sample, seed

db = Database()
db.open('/home/pkhorsand/165a-winter-2020-private/db')
grades_table = db.create_table('Grades', 5, 0)

keys = []
records = {}
seed(3562901)
num_threads = 8

# Generate random records
for i in range(0, 10000):
    key = 92106429 + i
    keys.append(key)
    records[key] = [key, 0, 0, 0, 0]
    q = Query(grades_table)
    q.insert(*records[key])

# Create transactions and assign them to workers
transactions = []
transaction_workers = []
for i in range(num_threads):
    transaction_workers.append(TransactionWorker())

for i in range(10000):
from template.db import Database
from template.query import Query
from template.index import *
import time

db = Database()
db.open("./ECS165")
grades_table = db.create_table('QueryTester', 5, 0)

#index = Index(grades_table)

query = Query(grades_table)
# print("Inserting 1M items")
for i in range(1_001):
    query.insert(*[i, i, i + 1, i + 2, i + 3])
for record in query.select_range(500, 525, 0, [1, 1, 1, 1, 1]):
    print(record.columns)
#query.insert(*[1, 2, 3, 4, 5]) # <-
#query.insert(*[1, 3, 4, 5, 6])
#query.insert(*[2, 1, 3, 3, 4])
# query.select(2, 1, [None, None, None, None, 1])[0].columns
#index.drop_index(1)
#print(query.select(2, 1, [1, 1, 1, 1, 1])[0].columns)
#print(query.select(4, 2, [1, None, None, None, None])[0].columns[0])
"""print(query.delete(1))
print(query.select(2, 1, [None, None, None, None, 1]))
print(query.select(3, 1, [None, None, None, None, 1]))
print(query.select(2,0,[None, None, None, None, 1]))"""

query.insert(*[42, 42, 3, 4, 5])
from template.db import Database
from template.query import Query
from time import process_time
from random import choice, randrange

# Student Id and 4 grades
db = Database()
grades_table = db.create_table('Grades', 5, 0)  # Swapped the 0 and 5
query = Query(grades_table)
keys = []

insert_time_0 = process_time()
for i in range(0, 10000):
    query.insert(906659671 + i, 93, 0, 0, 0)
    keys.append(906659671 + i)
insert_time_1 = process_time()

print("Inserting 10k records took:  \t\t\t", insert_time_1 - insert_time_0)

# Measuring update Performance
update_cols = [
    [randrange(0, 100), None, None, None, None],
    [None, randrange(0, 100), None, None, None],
    [None, None, randrange(0, 100), None, None],
    [None, None, None, randrange(0, 100), None],
    [None, None, None, None, randrange(0, 100)],
]

update_time_0 = process_time()
for i in range(0, 10000):
    query.update(choice(keys), *(choice(update_cols)))
Beispiel #12
0
from template.table import *
import pickle
import io
import os
from template.query import *
from random import choice, randint, sample, seed
from template.db import Database
from time import process_time

db = Database()
db.open('./ECS165')
# newtable = db.create_table('nidaye', 5, 0)
newtable = db.get_table('nidaye')
query = Query(newtable)
keys = []

# for i in range(0, 30000):
#     query.insert(906659671 + i, 93, 0, 0, 0)
#     keys.append(906659671 + i)

# update_time_0 = process_time()
# for i in range(0, 30000):
#     up = [0, 94, 1, 1, 1]
#     query.update(906659671 + i, *up)
# update_time_1 = process_time()
# print("Updating 10k records took:  \t\t\t", update_time_1 - update_time_0)

# for i in range(0, 30000):
#     query.insert(106659671 + i, 93, 0, 0, 0)
#     keys.append(106659671 + i)