Assignment 2 Solution - GitHub Pages · 2019-06-05 · Assignment 2 Solution Introduction to...

37
Assignment 2 Solution Introduction to Database Systems DataLab CS, NTHU

Transcript of Assignment 2 Solution - GitHub Pages · 2019-06-05 · Assignment 2 Solution Introduction to...

Assignment 2 Solution

Introduction to Database Systems

DataLab

CS, NTHU

Outline

• UpdateItemPrice transaction (SP/JDBC implementations)

• StatisticManager

• An example of Experiment Results

2

Outline

• UpdateItemPrice transaction (SP/JDBC implementations)

• StatisticManager

• An example of Experiment Results

3

Modified/Added Classes

4

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

Modified/Added Classes

5

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

New Transaction Type

6

READ_WRITE_TX_RATE

7

Modified/Added Classes

8

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

Modified/Added Classes (Shared)

9

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

Workflow of As2BenchRte

10

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()

SP/JDBC Connection

generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

Initialize RTE

11

execute()

callStoredProc()

As2Rte

getNextTxType()

getTxExecutor()

As2TxExecutor

executeTxn()

Connection

generateParameter()

As2UpdateItemPriceParamGen

As2BenchRte()

Initialize RTE

12

Choose a Transaction

13

execute()

callStoredProc()

As2BenchRte

getNextTxType()

getTxExecutor()

As2TxExecutor

executeTxn()

Connection

generateParameter()

As2RTE()

As2UpdateItemParamGen

Choose a Transaction

14

Generate and Send Parameters

15

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()

SP/JDBC Connection

generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

Generate Parameters

16

Modified/Added Classes (SP)

17

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

Inquiry via SP

18

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

callStoredProc()

Connection

Execute a Stored Procedure

19

prepare()

execute()

executeSql()

UpdateItemPriceTxnProc

prepareParameters()

UpdateItemPriceProcParamHelper

getStoredProcedure()

As2BenchStoredProcFactory

createResultSet()

Get the Specified SP

20

prepare()

execute()

executeSql()

UpdateItemPriceTxnProc

prepareParameters()

UpdateItemPriceProcParamHelper

getStoredProcedure()

As2BenchStoredProcFactory

createResultSet()

Get the Specified SP

21

Preprocess Parameters

22

prepare()

execute()

executeSql()

UpdateItemPriceTxnProc

prepareParameters()

UpdateItemPriceProcParamHelper

getStoredProcedure()

As2BenchStoredProcFactory

createResultSet()

Preprocess Parameters

23

Execute Queries

24

prepare()

execute()

executeSql()

UpdateItemPriceTxnProc

prepareParameters()

UpdateItemPriceProcParamHelper

getStoredProcedure()

As2BenchStoredProcFactory

createResultSet()

Execute Queries

25

Modified/Added Classes (JDBC)

26

• Shared class– As2BenchTxnType

– As2BenchConstants

• Client-side classes– As2BenchRte

– As2UpdateItemPriceParamGen

– As2BenchJdbcExecutor

– UpdateItemPriceTxnJdbcJob

• Server-side classes– As2BenchStoredProcFactory

– UpdateItemPriceProcParamHelper

– UpdateItemPriceTxnProc

Inquiry via SP

27

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

callStoredProc()

Connection

Inquiry via JDBC

28

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

execute()

As2JdbcExecutor

execute()

As2UpdateItemJob

Inquiry via JDBC

29

execute()

As2BenchRte

getNextTxType()

getTxExecutor()

As2BenchTxExecutor

executeTxn()generateParameter()

As2BenchRte()

As2UpdateItemPriceParamGen

execute()

As2JdbcExecutor

execute()

As2UpdateItemJob

Inquiry via JDBC

30

31

Execute Queries

Outline

• UpdateItemPrice transaction (SP/JDBC implementations)

• StatisticManager

• An example of Experiment Results

32

Modified Class

33

• StatisticMgr

Latency History

34

(0, [145, 27, 33, …])(5, [23, 11, 150, …])(10, [28, 16, 50, …])…

35

(0, [145, 27, 33, …])(5, [23, 11, 150, …])(10, [28, 16, 50, …])…

Outline

• UpdateItemPrice transaction (SP/JDBC implementations)

• StatisticManager

• An example of Experiment Results

36

An Example of Experiments

37