Tải bản đầy đủ (.pdf) (95 trang)

Thuật toán xoay vòng với quản lý dữ liệu chuỗi thời gian và ứng dụng trong quản trị mạng máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 95 trang )

i
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

NGUYỄN THỊ MỸ HẠNH

THUẬT TOÁN XOAY VÒNG
VỚI QUẢN LÝ DỮ LIỆU CHUỖI THỜI GIAN
VÀ ỨNG DỤNG TRONG QUẢN TRỊ MẠNG MÁY TÍNH

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

Thái Nguyên - 2016


ii

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

NGUYỄN THỊ MỸ HẠNH

THUẬT TOÁN XOAY VÒNG
VỚI QUẢN LÝ DỮ LIỆU CHUỖI THỜI GIAN
VÀ ỨNG DỤNG TRONG QUẢN TRỊ MẠNG MÁY TÍNH
Chuyên ngành: Khoa học máy tính
Mã số: 60480101

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC


PGS.TS NGUYỄN VĂN TAM

Thái Nguyên – 2016


i

LỜI CAM ĐOAN
Tôi xin cam đoan rằng:
Số lượng và kết quả nghiên cứu trong luận văn này là hoàn toàn trung
thực và chưa từng được sử dụng hoặc công bố trong bất cứ công trình nào
khác.
Mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các
thông tin trích dẫn trong luận văn đều được ghi rõ nguồn gốc
Tác giả luận văn

Nguyễn Thị Mỹ Hạnh


ii

LỜI CẢM ƠN

Lời đầu tiên học viên xin gửi lời cảm ơn trân thành tới các Thầy, Cô
giáo trường Đại học Công nghệ thông tin và Truyền thông, Đại học Thái
Nguyên, các thầy cô đã tận tình dạy bảo, truyền đạt các kiến thức quý báu cho
học viên trong suốt quá trình học tập.
Xin trân trọng cảm ơn Khoa, Phòng, Ban và các cán bộ đã tạo điều kiện
tốt nhất cho học viên học tập và hoàn thành đề tài tốt nghiệp của mình.
Đặc biệt, học viên xin được gửi lời cảm ơn sâu sắc đến Thầy giáo

hướng dẫn học viên PGS. TS Nguyễn Văn Tam, Thầy đã tận tình chỉ bảo giúp
đỡ học viên trong suốt quá trình nghiên cứu để hoàn thành luận văn.
Cuối cùng học viên xin gửi lời cảm ơn gia đình, bạn bè, đồng nghiệp đã
giúp đỡ, động viên ủng hộ học viên rất nhiều trong toàn bộ quá trình
học tập cũng như nghiên cứu để hoàn thành luận văn này.
Trân trọng cảm ơn!


iii

MỤC LỤC
LỜI CAM ĐOAN …………..………………………………………….i
LỜI CẢM ƠN ……………………………………………………………….ii
MỤC LỤC ……...………………………………………………………….. iii
DANH MỤC CHỮ VIẾT TẮT …………………………………..…………v
DANH MỤC HÌNH VẼ …………………………………..………………..vi

MỞ ĐẦU................................................................................................ 1
1. Đặt vấn đề: ........................................................................................ 1
3. Ý nghĩa khoa học, thực tiễn của đề tài: ........................................... 2
4. Phương pháp nghiên cứu: ................................................................ 2
5. Bố cục của luận văn: ......................................................................... 2
CHƯƠNG I: MÔ HÌNH QUẢN LÝ LUỒNG DỮ LIỆU CHUỖI
THỜI GIAN .......................................................................................... 4
1.1. Kiến trúc tổng quát của hệ thống quản lý luồng dữ liệu chuỗi
thời gian ................................................................................................. 4
1.1.1. Giới thiệu chung .......................................................................... 4
1.1.2. Khái niệm chuỗi thời gian ........................................................... 6
1.1.3. Kiến trúc tổng quát....................................................................... 6
1.2. Mô hình dữ liệu và truy vấn .......................................................... 7

1.2.1 Mô hình dữ liệu............................................................................. 7
1.2.2. Ngữ nghĩa truy vấn liên tục ......................................................... 9
1.3. Một số ứng dụng của hệ quản lý luồng dữ liệu .......................... 10
1.3.1. Ứng dụng trong mạng cảm biến (Sensor Networks) ................. 10
1.3.2. Ứng dụng trong phân tích lưu lượng mạng .............................. 11
1.3.3. Ứng dụng trong phân tích nhật ký giao dịch ............................. 12
CHƯƠNG II :THUẬT TOÁN XOAY VÒNG VỚI CƠ SỞ DỮ LIỆU
CHUỖI THỜI GIAN TRONG QUẢN TRỊ MẠNG.................................. 14
2.1. Thuật toán xoay vòng với cơ sở dữ liệu chuỗi thời gian ............ 14


iv

2.1.1. Nguyên lý của thuật toán xoay vòng RR( Round Robin) .......... 14
2.1.2. Thuật toán xoay vòng với cơ sở dữ liệu chuỗi thời gian RRD .. 17
2.1.2.1 Nguyên lý của RRD .................................................................. 17
2.1.2.2 Dữ liệu trong RRD ................................................................... 18
2.2. RRD trong quản trị mạng[1] ....................................................... 23
2.2.1. RRD trong thu thập dữ liệu và hiển thị kết quả ........................ 24
2.2.2. RRD trong phát hiện bất thường ............................................... 26
CHƯƠNG 3 : CHƯƠNG TRÌNH THỬ NGHIỆM ........................... 37
3.1. Bài toán thử nghiệm ..................................................................... 37
3.2. Bộ công cụ phục vụ xây dựng cơ sở dữ liệu chuỗi thời gian
RRDtool ............................................................................................... 38
3.2.1 Tập các hàm thư viện của RRDtool ............................................ 38
3.2.2 Hoạt động của RRDtool .............................................................. 39
3.2.3 Giám sát dữ liệu bất thường ....................................................... 42
3.3. Kỹ thuật tích hợp RRDTool vào hệ quản trị mạng CACTI ...... 45
3.4. Một số kết quả thử nghiệm. ......................................................... 47
3.4.1. Mô hình thử nghiệm .................................................................. 47

3.4.2. Triển khai mô hình thử nghiệm................................................. 48
3.4.3. Kết quả thử nghiệm ……………………………...…………………..61
3.4.4. Đánh giá ……………………………………………………………..61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................................... 63
TÀI LIỆU THAM KHẢO .................................................................. 65
PHỤ LỤC ............................................................................................ 66


v

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt
ATM

Tiếng anh
Automated Teller Machine

CF

Consolidation Function

CPU

Central Processing Unit

IAP

Internet Access Provider


IP

Internet Protocol

ISP

Internet Service Provider

LAN

Local Area NetWork

PC

Personal Computer

PDP

Primary Data Point

PHP

Personal Hompe Page

RR

Round Robin

RRA


Round Robin Archives

RRD

Round Robin Database

SNMP

Simple Network Managerment Protocol

SQL

Structured Query Language

TCL

Tool Command Language

TCP

Tranfer Control Protocol

TSD

Time Series Database

URL

Uniform Resource Locator


XML

Extensible Markup Language


vi

DANH MỤC CÁC HÌNH VẼ

Hình 1.1

- Kiến trúc tổng thể của hệ quản lý luồng Dữ liệu

7

Hình 2.1

- Nguyên lý của cơ sở dữ liệu RRD

18

Hình 2.2

- Vấn đề tỷ lệ và thời gian 1

19

Hình 2.3

- Vấn đề tỷ lệ và thời gian 2


21

Hình 2.4

- Hợp nhất trong Cơ sở dữ liệu RRD

23

Hình 2.5

- Sơ đồ khối của hệ quản trị mạng

23

Hình 2.6

- Biểu diễn đồ thị trong RRD

25

Hình 3.1

- Lưu đồ chung Chương trình tích hợp RRDTool vào Cacti

47

Hình 3.2

- Chạy lệnh tích hợp RRDTool


48

Hình 3.3

- Mô hình thử nghiệm

49

Hình 3.4

- Màn hình đăng nhập hệ thống

52

Hình 3.5

- Giao diện chính của Cacti

52

Hình 3.6

- Cài đặt dịch vụ SNMP cho thiết bị mới

53

Hình 3.7

- Tìm file SNMP Services


54

Hình 3.8

- Đặt cấu hình SNMP Services

55

Hình 3.9

- Cài đặt thiết bị vào Cacti

55

Hình 3.10

- Danh sách các nội dung cần giám sát

56

Hình 3.11

- Trạng thái kết nối thiết bị trong Cacti

56

Hình 3.12

- Thể hiện việc lựa chọn thiết bị cần tạo đồ thị


57

Hình 3.13

- Danh sách các máy có trong cây đồ thị

58


vii

Hình 3.14

- Biểu đồ tình trạng các thiết bị

59

Hình 3.15

- Import Templates mới

60

Hình 3.16

- Import Templates data trong cacti

60


Hình 3.17

- Thông tin quản lý các thiết bị trong hệ thống mạng

61

Hình 3.18

- Quản lý theo lịch thời gian

61

Hình 3.19

- Thông tin giới hạn của hệ thống

62


1

MỞ ĐẦU

1. Đặt vấn đề:
Vấn đề quản lý luồng dữ liệu chuỗi thời gian hiện nay đang được quan
tâm rất nhiều, cũng như những ứng dụng của nó trong đời sống xã hội nói
chung và ứng dụng trong quản trị mạng máy tính nói riêng. Thuật toán xoay
vòng với quản lý dữ liệu chuỗi thời gian RRD (Round Robin Database) là một
giải pháp nhằm tối ưu hóa hệ thống, tránh tốn kém tài nguyên và giảm độ
phức tạp. Trong một cơ sở dữ liệu Round - Robin (RR) thường là dữ liệu

chuỗi thời gian như: băng thông mạng, nhiệt độ, giá cổ phiếu … vv, rất nhiều
các ứng dụng mới nổi gần đây yêu cầu hỗ trợ cho việc phân tích trực tuyến
thay đổi nhanh chóng các dòng dữ liệu như: thống kê lưu lượng truy cập
internet, đấu giá trên mạng [4], [6].
Trong Quản trị mạng, tần suất trích mẫu thu thập thông tin càng lớn thì
việc chẩn đoán hoạt động của mạng càng chính xác (Ví dụ: chẩn đoán lỗi),
nhưng việc xử lý và lưu trữ dữ liệu theo thời gian là cực lớn, các giải pháp về
cơ sở dữ liệu truyền thống không đáp ứng được, thuật toán RRD là giải pháp
hữu hiệu. Do đó, học viên lựa chọn đề tài luận văn Thạc sỹ “ Thuật toán xoay
vòng với quản lý dữ liệu chuỗi thời gian và ứng dụng trong quản trị mạng
máy tính”
Trong đề tài này học viên sẽ thực hiện thu thập dữ liệu mạng để có thể
biểu diễn dưới dạng đồ thị trạng thái hoạt động của các thiết bị cần giám sát,
sử dụng RRDtool để lưu trữ dữ liệu và hiển thị dữ liệu theo chuỗi thời gian.
Để thực hiện được điều đó học viên sẽ tiến hành nghiên cứu về mô hình quản
lý luồng dữ liệu chuỗi thời gian, thuật toán xoay vòng với các dữ liệu chuỗi


2

thời gian RRD( Round Robin Database) trong quản trị mạng và thử nghiệm
ứng dụng vào giám sát và quản trị mạng máy tính.
2. Đối tượng và phạm vi nghiên cứu:
a. Đối tượng nghiên cứu
Dữ liệu chuỗi thời gian.
b. Phạm vi nghiên cứu:
- Xếp lịch xoay vòng
- RRD trong quản trị mạng.
3. Ý nghĩa khoa học, thực tiễn của đề tài:
- Ý nghĩa khoa học: Hiểu được Ứng dụng của Thuật toán xoay vòng

với quản lý dữ liệu chuỗi thời gian vào trong quản trị mạng máy tính.
- Ý nghĩa thực tiễn: Vận dụng các phương pháp nghiên cứu để giải
quyết một bài toán về quản trị mạng, đó là thuật toán xoay vòng với quản lý
dữ liệu chuỗi thời gian trong quản trị mạng. Kết quả này có thể hoàn thiện,
triển khai và ứng dụng trong thực tiễn.
4. Phương pháp nghiên cứu:
- Nghiên cứu các kết quả đã công bố trong lĩnh vực quản lý dữ liệu
chuỗi thời gian và ứng dụng của quản lý dữ liệu chuỗi thời gian, thuật toán
xoay vòng với cơ sở dữ liệu chuỗi thời gian RRD trong quản trị mạng.
- Phân tích, tổng hợp, đánh giá các kết quả.
- Phân tích lý thuyết và xây dựng chương trình để thử nghiệm bài toán.
5. Bố cục của luận văn:
Luận văn được trình bày thành các chương như sau:


3

Chương 1: MÔ HÌNH QUẢN LÝ LUỒNG DỮ LIỆU CHUỖI THỜI
GIAN
Chương 2: THUẬT TOÁN XOAY VÒNG VỚI CƠ SỞ DỮ LIỆU
CHUỖI THỜI GIAN TRONG QUẢN TRỊ MẠNG
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM


4

CHƯƠNG I
MÔ HÌNH QUẢN LÝ LUỒNG DỮ LIỆU CHUỖI THỜI GIAN

Bộ cơ sở dữ liệu lưu trữ truyền thống bao gồm các bản ghi tương đối

tĩnh không có khái niệm được xác định trước thời gian, trừ khi thuộc tính dấu
thời gian được bổ sung rõ ràng. Trong khi mô hình này rất thuận lợi cho việc
biểu diễn cơ sở dữ liệu thương mại hay thông tin cá nhân thì nhiều ứng dụng
quan trọng hiện hành yêu cầu hỗ trợ cho việc phân tích trực tuyến sự thay đổi
nhanh chóng của các luồng dữ liệu.
Trên cơ sở phân tích thấy rõ các hạn chế của cơ sở dữ liệu truyền thống
trong việc hỗ trợ quản lý trực tuyến các ứng dụng, nhiều nghiên cứu đã được
tiến hành để bổ sung các công nghệ hiện có và xây dựng mới hệ thống quản lý
dữ liệu trực tuyến.
1.1. Kiến trúc tổng quát của hệ thống quản lý luồng dữ liệu chuỗi
thời gian
1.1.1. Giới thiệu chung
Cơ sở dữ liệu truyền thống đã được sử dụng trong các ứng dụng yêu
cầu lưu trữ dữ liệu liên tục và truy vấn phức tạp. Thông thường, một cơ
sở dữ liệu bao gồm một tập các đối tượng không sắp xếp theo thứ tự và tương
đối tĩnh. Việc chèn, cập nhật và xóa xảy ra ít thường xuyên hơn so với các
truy vấn. Truy vấn được thực hiện khi có yêu cầu và câu trả lời phản ánh tình
trạng hiện tại của các cơ sở dữ liệu. Tuy nhiên, trong thời gian gần đây,
chúng ta đã chứng kiến sự nổi lên của các ứng dụng mà mô hình dữ liệu và
mô hình truy vấn này không phù hợp. Thay vào đó, các sự kiện xảy ra và
thông tin xuất hiện một cách tự nhiên trong các dạng thức một luồng các giá


5

trị dữ liệu; ví dụ bao gồm dữ liệu từ cảm biến [5], lưu lượng Internet [4], các
mã cổ phiếu, tài chính [5], đấu giá trực tuyến [6], nhật ký sử dụng Web và
bản ghi các cuộc gọi điện thoại [1].
Một luồng dữ liệu là chuỗi các mục dữ liệu được sắp xếp theo thời
gian thực, liên tục, có trình tự (ví dụ ngầm định theo thời gian xuất hiện hoặc

được đánh bởi nhãn thời gian (timestamp) một cách rõ ràng. Thật khó có thể
kiểm soát thứ tự đến của các mục dữ liệu và cũng không khả thi để lưu trữ
toàn bộ luồng dữ liệu. Tương tự như vậy, các truy vấn luồng dữ liệu chạy liên
tục trong một khoảng thời gian và từng bước sẽ trả về kết quả mới khi dữ liệu
mới đến. Với các đặc điểm của luồng dữ liệu và cách truy vấn liên tục đặt ra
các yêu cầu sau đây cho hệ thống quản lý luồng dữ liệu:


Các mô hình dữ liệu và ngữ nghĩa truy vấn phải cho phép hoạt động

dựa trên trật tự và dựa trên thời gian (ví dụ như các truy vấn được thực trên
một cửa sổ động, năm phút một).


Do không có khả năng lưu trữ toàn bộ luồng dữ liệu đầy đủ nên có

thể sử dụng các cấu trúc tóm lược, gần đúng. Kết quả là, các truy vấn trên các
bản tóm lược có thể không trả về dữ liệu chính xác.


Việc truy vấn dữ liệu trực tuyến có thể không thể sử dụng thao tác

blocking.


Do hiệu suất và khả năng lưu trữ hạn chế, việc theo dõi lại toàn bộ

luồng dữ liệu nguyên gốc là không khả thi. Các thuật toán xử lý luồng dữ liệu
chỉ sử dụng được luồng dữ liệu một lần.



Các ứng dụng giám sát luồng dữ liệu trong thời gian thực phải phản

ứng nhanh với các giá trị dữ liệu bất thường.


Truy vấn chạy thời gian dài có thể gặp phải những thay đổi điều

kiện của hệ thống.


6



Thực hiện chia sẻ nhiều truy vấn liên tục là cần thiết để đảm bảo

khả năng mở rộng.
1.1.2. Khái niệm chuỗi thời gian
Một chuỗi thời gian là một dãy các giá trị quan sát X : ={x1, x2,...xn}
được xếp thứ tự diễn biến thời gian với x1 là các giá trị quan sát tại thời điểm
đầu tiên, x2 là quan sát tại thời điểm thứ 2 và xn là quan sát tại thời điểm thứ n.
Ví dụ: Các báo cáo tài chính mà ta thấy hằng ngày trên báo chí, tivi hay
Internet về các chỉ số chứng khoán, tỷ giá tiền tệ, chỉ số tăng cường hay chỉ số
tiêu dùng đều là những thể hiện rất thực tế của chuỗi thời gian hay doanh số
của công ty trong 20 năm gần đây, hoặc nhiệt độ ghi nhận tại một trạm quan
trắc khí tượng, hoặc công suất điện năng tiêu thụ trong một nhà máy hoặc lưu
lượng mạng đo được với chu kỳ 5 phút … đó là các ví dụ điển hình cho một
chuỗi thời gian
Với chuỗi thời gian ta thường biểu thị trong một mặt phẳng với trục

hoành biểu thị thời gian và trục tung biểu thị giá trị biến quan sát. Phân tích
chuỗi thời gian có mục đích nhận dạng và tập hợp lại các yếu tố, những biến
đổi theo thời gian mà nó có ảnh hưởng đến giá trị của biến quan sát.
1.1.3. Kiến trúc tổng quát
Kiến trúc tổng quát của hệ thống hệ quản lý luồng dữ liệu thể hiện
trong hình 1.1.


7

Hình 1.1. Kiến trúc tổng thể của hệ quản lý luồng dữ liệu
Modul theo dõi đầu vào dữ liệu sẽ điều chỉnh tốc độ thu thập dữ liệu
cho phù hợp, có thể sẽ phải loại bỏ một số gói tin nếu hệ thống không thể tiếp
nhận hết các gói tin đến. Dữ liệu thường được lưu trữ trong ba phân vùng:
Kho lưu trữ làm việc, kho lưu trữ bản tóm lược của luồng dữ liệu, kho lưu trữ
tĩnh cho meta-data. Các truy vấn chạy lâu phải được đăng ký tới hàng đợi
truy vấn và đặt vào nhóm chia sẻ Bộ xử lý truy vấn. Vì chỉ có thể truy vấn một
lần vào trạng thái hiện tại của luồng dữ liệu. Bộ xử lý truy vấn liên lạc với Bộ
theo dõi đầu vào nhằm có thể tái tối ưu hóa các kế hoạch truy vấn đáp ứng với
sự thay đổi tốc độ đầu vào. Kết quả truy vấn có đưa trực tiếp tới người sử
dụng hoặc lưu tạm thời tại bộ đệm. Sau đó người dùng có thể tùy chỉnh các
truy vấn của họ dựa trên các kết quả mới nhất.
1.2. Mô hình dữ liệu và truy vấn
1.2.1 Mô hình dữ liệu
Một luồng dữ liệu theo thời gian thực là một chuỗi các mục dữ liệu dữ
liệu đến theo một trình tự và chỉ có thể được nhìn thấy một lần [3]. Vì các


8


mục dữ liệu có thể đến theo chùm, một luồng dữ liệu có thể được mô hình hóa
như một danh sách các phần tử.
Mục dữ liệu của luồng dữ liệu riêng có thể biểu diễn dưới dạng các
các bộ đối tượng quan hệ hoặc các thể hiện của đối tượng. Trong mô hình dựa
trên quan hệ, mục dữ liệu là các bộ chuyển tiếp được lưu trữ trong mối quan
hệ ảo qua nút từ xa. Trong mô hình dựa trên đối tượng, các nguồn và các loại
mục dữ liệu được mô hình hóa như các loại (phân cấp) dữ liệu với các
phương pháp liên quan.
Các mục dữ liệu của luồng dữ liệu có thể không đến theo trình tự và /
hoặc dưới dạng tiền xử lý, do vậy có thể có các mô hình dữ liệu sau:
1. Ghi đệm không có thứ tự: Các mục dữ liệu từ các lĩnh vực khác
nhau đến không theo thứ tự đặc biệt và không có bất kỳ tiền xử lý nào.
2. Ghi đệm có thứ tự: các mục dữ liệu từ các lĩnh vực khác nhau
không được tiền xử lý nhưng đến trong một trình tự đã biết.
3. Tổng hợp không có thứ tự: các mục dữ liệu riêng từ cùng một
miền được tiền xử lý và chỉ có một mục dữ liệu đến đối với mỗi miền, không
theo thứ tự cụ thể.
4. Tổng hợp có thứ tự: các mục dữ liệu riêng từ cùng một miền được
tiền xử lý và chỉ có một mục dữ liệu đến đối với mỗi miền theo một trật tự
cho trước.
Trong nhiều trường hợp, chỉ quan tâm một đoạn trích từ luồng dữ liệu
tại một thời điểm do vậy mô hình cửa sổ được đưa ra với ba lớp như sau:
 Hướng chuyển động của các điểm đầu cuối: Hai đầu cuối cố định
xác định một cửa sổ cố định. Hai điểm đầu cuối có thể trượt(hoặc trượt tiến
hoặc trượt lùi), định nghĩa một cửa sổ trượt. Nếu một đầu cuối cố định và


9

một điểm cuối di chuyển (về phía trước hoặc phía sau) định nghĩa một cửa sổ

giới hạn. Như vậy có tổng cộng chín loại cửa sổ khác nhau.
 Cửa sổ vật lý và logic: Cửa sổ vật lý là cửa sổ được định nghĩa dựa
trên khoảng thời gian. Cửa sổ logic được định nghĩa dựa trên bộ đếm.
 Cập nhật khoảng: Việc tái đánh giá cập nhật cửa sổ được thực hiện
mỗi khi có một bộ dữ liệu mới đến. Đối với tiến trình xử lý theo nó có thể
gây ra một "bước nhảy cửa sổ ". Nếu khoảng thời cập nhật là lớn hơn so với
kích thước cửa sổ, thì sẽ tạo ra một loạt cửa số không chồng lấn nhau.
1.2.2. Ngữ nghĩa truy vấn liên tục
Bất kỳ truy vấn kiên trì, đơn điệu mà cập nhật được từng bước, có
thể được thực hiện như một truy vấn liên tục trên một cơ sở dữ liệu truyền
thống. Trong một cơ sở dữ liệu chỉ được thêm vào cuối, tất cả các truy vấn
nối tiếp là đơn điệu: Mỗi lần một bộ dữ liệu được thêm vào, hoặc là nó đáp
ứng các truy vấn hoặc không và điều kiện thỏa mãn không thay đổi theo thời
gian. Ngược lại, thêm phủ định có thể vi phạm tính đơn điệu. Tương tự như
vậy, nếu các cơ sở dữ liệu không chỉ được thêm vào cuối, thì không có truy
vấn đơn điệu, khi các bộ dữ liệu được cập nhật có thể ngừng đáp ứng một
truy vấn nhất định.
Ngữ nghĩa ít hạn chế các truy vấn liên tục, đơn điệu và không đơn
điệu trên luồng dữ liệu đã đưa ra [6]. Giả sử rằng thời gian được biểu diễn
như là một tập hợp các số tự nhiên và rằng tất cả các truy vấn liên tục được
tái định giá tại mỗi nhịp (tick) đồng hồ. Cho A (Q, t) là tập hợp câu trả lời
của một truy vấn liên tục Q tại thời điểm t, τ là thời gian hiện tại, và 0 là thời
điểm bắt đầu. Tập trả lời cho một truy vấn liên tục, đơn điệu Q tại τ là:


10

Nghĩa là, chỉ cần tái đánh giá các truy vấn trên các mục dữ liệu mới
đến và gắn thêm các bộ chất lượng vào kết quả. Ngược lại, các truy vấn
không đơn điệu có thể cần phải được tái tính từ đầu trong mọi tái đánh giá,

theo ngữ nghĩa sau đây:

Ngôn ngữ truy vấn luồng dữ liệu
Ba mô hình truy vấn cho hệ thống quản lý luồng dữ liệu đã được đề
xuất. Hệ thống dựa trên quan hệ sử dụng ngôn ngữ SQL-like để truy vấn gần
giống như truy vấn cơ sở dữ liệu quan hệ với sự cải tiến đưa thêm cơ chế cửa
sổ và trình tự. Ngôn ngữ dựa trên đối tượng cũng giống như SQL, nhưng hỗ
trợ cho luồng dữ liệu, định nghĩa thêm kiểu dữ liệu trừu tượng (ADT) và các
phương pháp xử lý tín hiệu liên quan. Hệ thống hướng thủ tục, xây dựng truy
vấn bằng cách định nghĩa luồng dữ liệu các toán tử khác nhau.
1.3. Một số ứng dụng của hệ quản lý luồng dữ liệu
1.3.1. Ứng dụng trong mạng cảm biến (Sensor Networks)
Mạng cảm biến có thể được sử dụng cho quản lý hệ thống địa lý,
giám sát tắc nghẽn đường cao tốc, theo dõi chuyển động, giám sát dấu hiệu
của sự sống và giám sát của các quá trình sản xuất. Các ứng dụng này liên
quan đến việc lọc thông tin phức tạp và kích hoạt báo động khi phát hiện các
mẫu bất thường trong dữ liệu. Trong các ứng dụng cần tập hợp và kết nối
nhiều luồng dữ liệu thì cần thiết phải phân tích dữ liệu từ nhiều nguồn, còn
nếu ứng dụng chỉ tập hợp trên một luồng dữ liệu duy nhất thì có thể chỉ cần
phân tích dữ liệu từ một nguồn, ví dụ như phục vụ cho việc phát hiện và thay
thế những bộ cảm biến gặp lỗi (do bị hư hỏng vật lý hoặc sự suy giảm của


11

nguồn nuôi). Việc khai phá dữ liệu của bộ cảm biến có thể yêu cầu truy cập
vào dữ liệu lịch sử của bộ cảm biến. Một số ví dụ về truy vấn tương đối điển
hình trong mạng cảm biến như:
 Kích hoạt bộ nhảy (trigger) nếu có một vài cảm biến trong trong
miền có báo cáo đo vượt quá ngưỡng cho phép.

 Vẽ đường viền bản đồ nhiệt độ cho dự báo thời tiết:
Thực hiện kết nối luồng dữ liệu nhiệt độ từ các trạm theo dõi thời
tiết. Liên kết các kết quả vào bảng tĩnh chứa các kinh độ và vĩ độ của mỗi
trạm, kết nối tất cả các điểm tạo bản tin dự báo thời tiết vùng miền.
 Phân tích một luồng các thống kê sử dụng điện gần đây, báo cáo
cho nhà máy điện để điều chỉnh công suất phát điện nếu cần thiết.
1.3.2. Ứng dụng trong phân tích lưu lượng mạng
Hệ thống Ad hoc để phân tích lưu lượng Internet trong thời gian thực
đã được sử dụng, ví dụ [2]. Tương tự như các mạng cảm biến, việc kết nối dữ
liệu từ nhiều nguồn khác nhau như theo dõi, lọc gói tin và phát hiện các điều
kiện bất thường (ví dụ như tắc nghẽn hoặc tấn công từ chối dịch vụ) là cần
thiết. Hệ thống phải hỗ trợ cho các truy vấn lịch sử và khai phá dữ liệu trực
tuyến trên mạng. Ví dụ so sánh dấu hiệu của lưu lượng mạng hiện tại với các
mẫu lưu lượng được lưu trữ để phát hiện một cuộc tấn công từ chối dịch
vụ. Một ví dụ khác như theo dõi URL của các yêu cầu Web gần đây để tìm ra
khách hàng tiêu thụ băng thông nhiều nhất. Sau đây là các truy vấn điển hình
trong phân tích lưu lượng mạng:
 Ma trận lưu lượng: Xác định tổng lượng băng thông sử dụng bởi
mỗi cặp nguồn - đích và nhóm theo địa chỉ IP, mặt nạ mạng con, và loại giao
thức. Lưu ý rằng lưu lượng IP được dồn kênh theo thống kê, do đó một luồng
lưu lượng phải được tách kênh để tái tạo lại các phiên TCP/IP.


12

 So sánh số lượng các cặp nguồn - đích trong luồng logic có chứa
các bước thứ hai và thứ ba, tương ứng quá trình bắt tay ba bước TCP. Nếu sự
sai khác là quá lớn, là dấu hiệu của tấn công từ chối dịch vụ SYN Flood.
1.3.3. Ứng dụng trong phân tích nhật ký giao dịch
Khai phá dữ liệu trực tuyến, sử dụng các bản ghi truy nhập web, bản

ghi cuộc gọi điện thoại, và bản ghi các giao dịch Ngân hàng qua ATM cũng
là bài toán phù hợp với các mô hình luồng dữ liệu. Mục đích của việc khai
phá dữ liệu này là để tìm kiếm các mẫu hành vi quan tâm của khách hàng,
xác định các hành vi nghi ngờ, từ đó có thể chỉ ra hành vi gian lận và dự báo
giá trị dữ liệu cho tương lai. Cũng tương tự như trong ứng dụng trực tuyến
khác, điều này đòi hỏi phải kết nối nhiều luồng dữ liệu, thực hiện các phép
lọc phức tạp và phân tích thống kê. Sau đây là một số ví dụ:
 Tìm tất cả các trang web trên một máy chủ cụ thể đã được truy
nhập trong mười lăm phút cuối với một tỷ lệ lớn hơn mức trung bình hàng
ngày ít nhất là 40%.
 Kiểm tra nhật ký của máy chủ Web trong thời gian thực và nếu
máy chủ chính bị quá tải thì tái định tuyến người dùng đến các máy chủ dự
phòng.
 Xác định đường kính chuyển vùng (Roaming) của khách hàng sử
dụng điện thoại di động: Khai phá nhật ký về điện thoại di động đối với mỗi
khách hàng và xác định số lượng lớn nhất của các trạm gốc khác nhau mà
khách hàng sử dụng trong một cuộc gọi điện thoại di động.
Bên cạnh các ứng dụng mang tính kỹ thuật, hệ quản lý luồng dữ liệu
còn có nhiều ứng dụng trong lĩnh vực tài chính ngân hàng, thị trường chứng
khoán. Tuy nhiên các vấn đề này nằm ngoài phạm vi nghiên cứu của luận
văn.


13

Chương 1 đã trình bày kiến trúc, mô hình dữ liệu, mô hình truy vấn
và một số lĩnh vực ứng dụng của hệ quản lý luồng dữ liệu chuỗi thời gian.
Một trong các ứng dụng nổi bật là sử dụng hệ thống này trong quá trình thu
thập, lưu trữ tạm thời, truy vấn, xử lý phục vụ quản trị, theo dõi và phát hiện
các hoạt động bất thường trên mạng. Trong quản trị mạng, tần suất trích mẫu

thu thập thông tin càng lớn thì việc chẩn đoán hoạt động của mạng càng chính
xác (Ví dụ: chẩn đoán lỗi), nhưng việc xử lý và lưu trữ dữ liệu theo thời gian
là cực lớn, Thuật toán xoay vòng với cơ sở dữ liệu chuỗi thời gian RRD
(Round Robin Database) là một giải pháp nhằm tối ưu hóa hệ thống, tránh tốn
kém tài nguyên và giảm độ phức tạp của hệ thống. Thuật toán RRD và ứng
dụng trong quản trị mạng là nội dung của chương 2.


14

CHƯƠNG II
THUẬT TOÁN XOAY VÒNG VỚI CƠ SỞ DỮ LIỆU CHUỖI THỜI GIAN
TRONG QUẢN TRỊ MẠNG

2.1. Thuật toán xoay vòng với cơ sở dữ liệu chuỗi thời gian
Thuật toán xoay vòng với quản lý dữ liệu chuỗi thời gian cho phép lưu
trữ và hiển thị dữ liệu chuỗi thời gian, thu thập thông tin từ mạng hay chuyển
đổi từ MySQL và lưu trữ các dữ liệu dưới dạng đã xử lý, giảm thiểu vận hành
I/ O để cập nhật thời gian thực và trình bày đồ thị hữu ích bằng cách xử lý dữ
liệu độ phân giải ở các khoảng thời gian khác nhau.
Thông thường cơ sở dữ liệu chuỗi thời gian RRD sử dụng bộ quét thiết
bị để lấy dữ liệu của các máy tính trên mạng như: tải trung bình, sử dụng
CPU, tình trạng liên thông của mạng, bộ vi xử lý… Sau đó sẽ thực kết xuất và
hiển thị kết quả dưới dạng đồ thị các thông số đó của các máy tính trên mạng.
Như vậy, để thấy rõ các điểm giống nhau và sự khác biệt giữa thuật
toán xoay vòng RR( Round Robin) truyền thống được sử dụng trong hệ điều
hành máy tính và thuật toán thuật toán xoay vòng trong cơ sở dữ liệu chuỗi
thời gian RRD ( Round Robin Database), trước tiên chúng ta nhắc lại nguyên
lý thuật toán RR và tiếp theo sẽ trình bày về thuật toán RRD
2.1.1. Nguyên lý của thuật toán xoay vòng RR( Round Robin)

Trong thuật toán này, hệ thống quy định một lượng tử thời gian (time
quantum) khoảng từ 10-100 mili giây (ms).
Mỗi tiến trình trong hàng đợi lần lượt được phân phối một lượng tử
thời gian để thực hiện. Sau khoảng thời gian đó, nếu tiến trình chưa kết thúc
hoặc không rơi vào trạng thái đợi thì nó được chuyển về cuối hàng đợi.


15

Hàng đợi các tiến trình được tổ chức theo kiểu vòng tròn và các tiến
trình luôn luôn đảm bảo được phục vụ. Khi có tiến trình mới phát sinh, nó sẽ
được đưa vào hàng đợi vòng tròn và được đặt ở vị trí phục vụ ngay. Các tiến
trình dù ngắn hay dài đều có độ ưu tiên phục vụ như nhau.
Ví dụ minh hoạ: về thuật toán Round Robin
Thời điểm
Tiến trình

vào hàng

Thời gian xử lý
(ms)

đợi
P1

0

24

P2


1

3

P3

2

3

Nếu sử dụng quantum là 4 milisecondes, thứ tự cấp phát CPU sẽ là :
P1

P2

P3

P1

P1

P1

P1

0

4


7

10

14

18

22

P1
26
30

Thời gian chờ đợi trung bình sẽ là (0+6+3+5)/3 = 4.66 milisecondes.
Nếu có n tiến trình trong hàng đợi sẵn sàng và sử dụng quantum q, thì
mỗi tiến trình sẽ được cấp phát CPU 1/n trong từng khoảng thời gian q. Mỗi


16

tiến trình sẽ không phải đợi quá (n-1)q đơn vị thời gian trước khi nhận được
CPU cho lượt kế tiếp
Nhận xét: Vấn đề đáng quan tâm đối với giải thuật RR là độ dài của
quantum. Nếu thời lượng quantum quá bé sẽ phát sinh quá nhiều sự
chuyển đổi giữa các tiến trình và khiến cho việc sử dụng CPU kém hiệu quả.
Nhưng nếu sử dụng quantum quá lớn sẽ làm tăng thời gian hồi đáp và giảm
khả năng tương tác của hệ thống.
Trên thực tế, để đảm bảo độ ưu tiên cho các tiến trình dài, hệ thống sẽ
phân chia các tiến trình thành m lớp. Số lần đươc phục vụ và thời gian một

lần phục vụ tiến trình tại mỗi lớp khác nhau (giả sử ở lớp thứ i, tiến trình được
phục vụ ki lần và mỗi lần với thời gian qi).
Nếu sau khoảng thời gian đã được phân phối mà tiến trình chưa kết
thúc hoặc không bị ngắt thì nó sẽ được chuyển sang lớp thứ i + 1 ( với ki+1 và
qi+1 lớn hơn .). Lượng tử thời gian sẽ tăng dần cho đến khi tiến trình rơi vào
lớp ngoài cùng (lớp m). Ở đó nó sẽ được phục vụ với lượng tử qm không đổi.
Như vậy thứ tự ưu tiên của các tiến trình sẽ tăng dần theo thời gian xếp hàng
đợi.
Ưu điểm của phương pháp phục vụ đồng mức theo lớp sẽ cho phép hệ
thông ưu tiên những tiến trình ngắn (vì nó kết thúc sớm) nhưng nó không gây
tổn hại lớn cho các tiến trình dài.
Nhược điểm là do phải thường xuyên phân phối lại giờ CPU nên thời
gian chờ đợi trung bình của Round Robin có thể lớn.


×