草庐IT

database-concurrency

全部标签

concurrency - channel 的读写排除

我想用Go编写一个小型内存数据库。读取和写入请求将通过channel传递并由数据库引擎处理,这将确保正确完成访问。第一个想法是模仿RWMutex的行为.只是它会使用更惯用的go风格。这是我想做的事情的一个小玩具(虽然相当长)示例。packagemainimport("log""math/rand""time")varsource*rand.RandtypeReqTypeintconst(READ=iotaWRITE)typeDbRequeststruct{Typeint//requesttypeRespCchan*DbResponse//channelforrequestrespons

database - db.Exec(...) 返回的错误是否有代码?

我正在尝试通过以下操作删除使用postgres驱动程序(lib/pq)的数据库:db.Exec("DROPDATABASEdbName;")但我想根据收到的错误是奇怪的还是“数据库不存在”错误来做一个不同的条件。是否有常量变量或其他东西可以用来检查返回的错误是否是“数据库不存在”错误消息,或者我是否必须自己手动解析错误字符串?我试图查看文档,但找不到“数据库不存在”的任何内容。但是我确实找到了thislist.也许它适合其他一些错误代码?此外,我不太确定通过Postgres驱动程序获取和比较错误代码的语义正确方式。我想我应该做这样的事情:iferr.ErrorCode!="xxx"

database - db.Exec(...) 返回的错误是否有代码?

我正在尝试通过以下操作删除使用postgres驱动程序(lib/pq)的数据库:db.Exec("DROPDATABASEdbName;")但我想根据收到的错误是奇怪的还是“数据库不存在”错误来做一个不同的条件。是否有常量变量或其他东西可以用来检查返回的错误是否是“数据库不存在”错误消息,或者我是否必须自己手动解析错误字符串?我试图查看文档,但找不到“数据库不存在”的任何内容。但是我确实找到了thislist.也许它适合其他一些错误代码?此外,我不太确定通过Postgres驱动程序获取和比较错误代码的语义正确方式。我想我应该做这样的事情:iferr.ErrorCode!="xxx"

sql - database/sql 和 database/sql/driver 中的命名参数

我试图弄清楚在go的内置数据库/sql包中使用命名参数的模式是什么。我查看了oracle驱动程序,但它似乎只是C库的包装器。人们是否以优雅的方式解决了这个问题?到目前为止,我只是通过将{0}、{1}作为单元测试中的参数解决了这个问题,但如果能够通常将它们用作map[string]interface{}或其他东西。有没有人有看似惯用的想法或实现?作为引用,这里有一个测试:db:=testConn()stmt,err:=db.Prepare("return{0}asint1,{1}asint2")iferr!=nil{t.Fatal(err)}rows,err:=stmt.Query(12

sql - database/sql 和 database/sql/driver 中的命名参数

我试图弄清楚在go的内置数据库/sql包中使用命名参数的模式是什么。我查看了oracle驱动程序,但它似乎只是C库的包装器。人们是否以优雅的方式解决了这个问题?到目前为止,我只是通过将{0}、{1}作为单元测试中的参数解决了这个问题,但如果能够通常将它们用作map[string]interface{}或其他东西。有没有人有看似惯用的想法或实现?作为引用,这里有一个测试:db:=testConn()stmt,err:=db.Prepare("return{0}asint1,{1}asint2")iferr!=nil{t.Fatal(err)}rows,err:=stmt.Query(12

云原生 HTAP -- PolarDB-IMCI:A Cloud-Native HATP Database

文章目录0背景1IMCI架构及相关组件实现1.1架构演进的背景1.2基本架构1.2基本使用1.4列索引存储设计1.5RW-RO的数据同步实现1.5.1CALS1.5.22P-COFFER1.6计算引擎实现1.7性能2总结近期除了本职工作之外想要再跟进一下业界在讨论以及可落地的方向,扩宽一下视野,计划每周能精读一篇与工作领域相关的论文。看到了PolarDB团队在2023年SIGMOD工业paper上发的IMCI,是当下HTAP方向在探索落地的架构PolarDB-IMCI(In-Memory-Column-Index),学习一番。0背景云原生数据库已经是行业的必然趋势,以其极高的弹性、灵活的按需收

concurrency - D 中有等价的 goroutines 吗?

我喜欢Go,尤其是goroutines。它们简单而高效。经过一些挖掘后,它们似乎基本上是多路复用到内核线程池的光纤(如果我错了请纠正我)。也就是说,D中是否有任何标准库(或相对流行和受支持的第3方添加)?我想要的主要是:轻量级-线程使用过多内存并占用过多CPU简单-数据共享不太重要,但简单的消息传递很重要托管-如果它处于运行时级别会很好这里的主要目标是使Web服务器尽可能高效地与Node.js和Go的速度相媲美。这意味着可能有许多事件连接(http、websockets、数据流)。我喜欢提到的其他平台,但D更通用。如果不是太笨重,我会选择D而不是其他。 最佳

concurrency - D 中有等价的 goroutines 吗?

我喜欢Go,尤其是goroutines。它们简单而高效。经过一些挖掘后,它们似乎基本上是多路复用到内核线程池的光纤(如果我错了请纠正我)。也就是说,D中是否有任何标准库(或相对流行和受支持的第3方添加)?我想要的主要是:轻量级-线程使用过多内存并占用过多CPU简单-数据共享不太重要,但简单的消息传递很重要托管-如果它处于运行时级别会很好这里的主要目标是使Web服务器尽可能高效地与Node.js和Go的速度相媲美。这意味着可能有许多事件连接(http、websockets、数据流)。我喜欢提到的其他平台,但D更通用。如果不是太笨重,我会选择D而不是其他。 最佳

dictionary - Golang fatal error : concurrent map read and map write

我正在用Go编写minecraft服务器,当服务器受到2000多个连接的压力时,我遇到了这个崩溃:fatalerror:concurrentmapreadandmapwrite/root/work/src/github.com/user/imoobler/limbo.go:78+0x351createdbymain.main/root/work/src/github.com/user/imoobler/limbo.go:33+0x368我的代码:packagemainimport("log""net""bufio""time""math/rand""fmt")var(connCount

dictionary - Golang fatal error : concurrent map read and map write

我正在用Go编写minecraft服务器,当服务器受到2000多个连接的压力时,我遇到了这个崩溃:fatalerror:concurrentmapreadandmapwrite/root/work/src/github.com/user/imoobler/limbo.go:78+0x351createdbymain.main/root/work/src/github.com/user/imoobler/limbo.go:33+0x368我的代码:packagemainimport("log""net""bufio""time""math/rand""fmt")var(connCount