检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
未实名认证
已实名认证
云数据库GaussDB,是华为自主创新研发的分布式关系型数据库。作为纯软全密态数据库,还实现了内存中数据的运算态加密,从而实现数据全生命周期内的安全保护。今天带你了解GaussDB的队列机制。
队列是一种数据结构,它具有先进先出的特点,是一种应用很广泛的结构。
队列是一种特殊的 线性表 ,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列的数据元素又称为队列元素。
在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。
因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。
在计算机或计算机之间,为了提高计算机或计算机之间的工作效率,我们经常采用队列机制。
队列机制简单来说是基于队列,利用某种方案来提高工作效率。例如操作系统中作业、进程和线程基于队列机制调度。
功能描述
尝试将任何排队的输出数据刷新到服务器。
原型
int PQflush(PGconn *conn);
参数
表1 PQflush参数
返回值
int:如果成功(或者如果发送队列为空),则返回0;如果由于某种原因失败,则返回-1;如果发送队列中的所有数据都发送失败,则返回1。(此情况只有在连接为非阻塞时才能发生),失败原因存到conn->error_message中。
注意事项
在非阻塞连接上发送任何命令或数据之后,调用PQflush。如果返回1,则等待套接字变为读或写就绪。如果为写就绪状态,则再次调用PQflush。如果已经读到,调用PQconsumeInput,然后再次调用PQflush。重复,直到PQflush返回0。(必须检查读就绪,并用PQconsumeInput排出输入,因为服务器可以阻止试图向我们发送数据,例如。通知信息,直到我们读完它才会读我们的数据。)一旦PQflush返回0,就等待套接字准备好,然后按照上面描述读取响应。
详细的gsql参数请参见表1、表2、表3和表4。
表1 常用参数
表2 输入和输出参数
表3 输出格式参数
表4 连接参数
公有云
华为云Stack
华为云Stack轻量化数据库方案
GaussDB 故障处理