ob
2015-04-27 03:47:40 1 举报
OB,全称Object-Relational Mapping,即对象关系映射。它是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。通过使用ORM,开发人员可以将类和对象转换为关系数据库中的记录和行,从而简化了应用程序与数据库之间的交互。ORM提供了一种抽象层,使开发人员能够以面向对象的方式处理数据,而不必直接编写SQL查询语句。这使得代码更易于维护和理解,并且可以在不同的数据库系统之间轻松迁移。总之,ORM是一种强大的工具,可以帮助开发人员更高效地管理和操作数据库中的数据。
作者其他创作
大纲/内容
队列
easy_session_create()
将输出缓冲区链表中的数据写出
session_list
EASY_OK
decode()
MySQL
easy_listen_t
easy_session_process()
建立到对端的连接,返回该连接
easy_hash_dlist_add()
listen_fd
io_thread is waked
conn_list
packet-ObMySQLCommandPacket
流程方向
up-layer application
ASYNCHRONIZATION
easy_client_dispatch()
easy_connection_do_client()
configure TCP/Load arguments
for each request
eio的统计信息结构
easy_connection_do_request()
EIO CREATION
easy_connection_do_connect()
YES. Trigger
easy_connection_t located list
into
easy_connection_on_listen()
easy_pool_t
of
easy_connection_do_response()
用于异步请求
已处理完成但是还没有将结果发送出去的请求链表
easy_session_t
set
handler_
packet
process all request?
easy_connection_on_wakeup()
easy_connection_request_done()
设置回调函数
旁注
has readable event?
ObMergeCallback::sql_process()
on_connect()
request_list
request
easy_connection_get_packet_id()
easy_io_on_thread_start()
easy_connection_process_request()
其他
判断
io线程的执行体函数
函数
active
将这个packet所属的session从发送队列中摘下来,停掉timeout_watcher
read_watcher
encode()
easy_hash_dlist_del()
每100ms/60ms触发一次对listen的切换
callback
成员变量
io线程被唤醒时的回调函数
TCP连接的输出缓冲区
easy_connection_on_accept()
client OR server?
allot
将session分发到具体的TCP连接
将包放入MS的finish queue队列中
process()get_packet_id()on_disconnect()
回调该函数用于从该连接的输入缓冲区中反序列化出一个符合MySQL协议的包,然后吐给上层应用
同时激活的还有write_watcherh和timeout_watcher,设置相应回调函数
2MB ?
easy_buf_t
easy_thread_pool_hash()
server
easy_connection_on_readable
request-opacket
initialization
数据结构
图例
OB中使用的模块
处理每一个connection上的message时,会进行完整性判断
easy_eio_create()
initialize
CONNECTION-ESTABLISHMENT
add connection to connected_list
EASY_AGAIN
error packet
NO
初始化服务器控制器
easy_io_handler_pt-on_connect()
client
ObMySQLServer::start()
easy_connection_t
for each session
存放easy_io_t对象
send
thread_watcher
MergeServer-ChunkServer
Start
YES.Produce
packed
找到一条connection用于发送session
easy_session_destroy()
easy_baseth_init
决策
process()
ObMySQLCallBack
easy_message_destroy()
ObTbnetCallback::encode()
SYNCHRONIZATION
在OB中,用于验证用户名密码
已建立连接但是读写事件还没有监听的连接链表
listen_watcher
callbak
OB0.4的MS使用libeasy作为服务器端的模式
将session添加到发送队列相应hash表头,启动timeout_watcher
ObMySQLServer::initialize()
easy_connection_write_socket()
YES
reuqest-ipacket
easy_connection_session_build()
NO. Push
easy_connection_send_session_list()
return
work queue
easy_summary_t
OB中实现的函数
socket
unblocked
0 条评论
回复 删除
下一页