我从网络接收组播数据(线程1),速度为70包/秒,每包512Byte,缓存于内存中。现在的需求是将每包数据作为blob数据插入数据库的一个表中(线程2)。环境:Sun480的机器,oracle10g RAC。
现在的问题是,blob数据插入速度 < 接收数据速度,导致缓存溢出,怎么办?如何提升blob数据的插入速度呢?或者有没有别的解决方案呢?

解决方案 »

  1.   

    程序可以控制,不过自己写应用来做呀。比如用java来接包,然后调用jdbc插入blob对象。
      

  2.   

    我现在是这样做的:写了一个C++程序:一个线程(线程1)进行接收数据,放入内存中的buffer里;然后另一个线程(线程2)通过OCCI来将buffer里面的数据入库。现在线程2的入库速度比较慢,造成buffer崩溃。(注:网络数据为 >800包/秒, 包大小为 1KB~10KB不等。)
    请各位再给出出主意吧,谢谢了!!