我需要在 Postgres 9.4 中执行以下事务:
BEGIN TRANSACTION;
TRUNCATE TestTable;
COPY TestTable FROM '/DATAforTestTable' DELIMITER ',' CSV;
END TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
用户必须在执行事务时对 TestTable 中的“旧”数据具有读取权限,而无需等待事务结束。是否可以?或者我必须通过处理和重命名表来完成?
有人可以解释一下,为什么goroutine有无限for循环并且循环select内部,循环中的代码只运行一次?
package main
import (
"time"
)
func f1(quit chan bool){
go func() {
for {
println("f1 is working...")
time.Sleep(1 * time.Second)
select{
case <-quit:
println("stopping f1")
break
}
}
}()
}
func main() {
quit := make(chan bool)
f1(quit)
time.Sleep(4 * time.Second)
}
Run Code Online (Sandbox Code Playgroud)
输出:
f1 is working...
Program exited.
Run Code Online (Sandbox Code Playgroud)
但是,如果“选择”被注释掉:
package main
import (
"time"
)
func f1(quit chan bool){
go func() {
for {
println("f1 is working...")
time.Sleep(1 * time.Second)
//select{
//case <-quit:
//println("stopping …Run Code Online (Sandbox Code Playgroud) 将数据恢复到 Cassandra 集群(1 个节点)后,出现错误:
ERROR [CompactionExecutor:7] 2016-05-09 08:05:38,621 CassandraDaemon.java:185 - Exception in thread Thread[CompactionExecutor:7,1,main]
java.lang.UnsupportedOperationException: Bloom filter size is > 16GB, reduce the bloom_filter_fp_chance
at org.apache.cassandra.utils.obs.OffHeapBitSet.<init>(OffHeapBitSet.java:40) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.utils.FilterFactory.createFilter(FilterFactory.java:85) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.utils.FilterFactory.getFilter(FilterFactory.java:78) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.io.sstable.format.big.BigTableWriter$IndexWriter.<init>(BigTableWriter.java:470) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.io.sstable.format.big.BigTableWriter.<init>(BigTableWriter.java:86) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.io.sstable.format.big.BigFormat$WriterFactory.open(BigFormat.java:107) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.io.sstable.format.SSTableWriter.create(SSTableWriter.java:84) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.writers.DefaultCompactionWriter.<init>(DefaultCompactionWriter.java:52) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.CompactionTask.getCompactionAwareWriter(CompactionTask.java:237) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:174) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:74) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59) ~[apache-cassandra-2.2.5.jar:2.2.5]
at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionCandidate.run(CompactionManager.java:256) ~[apache-cassandra-2.2.5.jar:2.2.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_71]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_71]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_71]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_71]
at java.lang.Thread.run(Thread.java:745) …Run Code Online (Sandbox Code Playgroud) bloom-filter ×1
cassandra ×1
copy ×1
for-loop ×1
go ×1
goroutine ×1
postgresql ×1
select ×1
transactions ×1
truncate ×1