标签: bulk

在Java中实现定期刷新的Cache

我的用例是在存储在持久数据库中的数据上维护内存缓存.

我使用数据填充UI上的条目列表/映射.在任何给定时间,UI上显示的数据应尽可能地更新(这可以通过缓存的刷新频率来完成).

常规高速缓存实现与此特定高速缓存之间的主要区别在于,它需要定期刷新所有元素,因此与LRU类型的高速缓存非常不同.

我需要在Java中实现这个实现,如果有任何现有的框架可以用来构建它们,那将是很好的.

我已经探索了Google Guava缓存库,但它更适合每个条目刷新而不是批量刷新.没有简单的API可以在整个缓存上进行刷新.

任何帮助将受到高度赞赏.

另外,如果有可能逐步做刷新,它应是伟大的,因为同时刷新整个缓存它产生唯一的限制是,如果高速缓存的大小是非常大的,那么内存堆应该ATLEAST的两倍缓存以加载新条目并用新映射替换旧映射.如果缓存是增量的,或者有一个分块刷新(刷新大小相同),那就太好了.

java caching bulkinsert bulk

6
推荐指数
1
解决办法
2万
查看次数

SQL Server 2012中的内存不足异常

我试图执行一个包含大约1000000个简单UPDATE查询的大型sql脚本.

此脚本文件的总大小约为100 MB.

当我运行这个脚本时,我得到一个Out Of Memory异常.

当我将文件分成10 MB的块时,我可以运行它们中的每一个.

但是,为了方便起见,我想只有一个我可以同时运行的脚本.我可以引入任何语句,以便SQL Server在运行每个查询后释放分配的内存,这样我就可以立即执行这个大型脚本吗?

sql sql-server bulk sql-update

6
推荐指数
1
解决办法
5663
查看次数

RESTful API和批量操作

我有一个中间层,它在共享数据库上执行CRUD操作.当我将产品转换为.NET Core时,我认为我也会考虑使用REST作为API,因为CRUD应该是它的功能.似乎REST对于单个记录操作来说是一个很好的解决方案,但是当我想要删除1000条记录时会发生什么?

每个专业的多用户应用程序都会有一些乐观并发检查的概念:如果没有一些反馈,你就不能让一个用户消除另一个用户的工作.据我了解,REST使用HTTP ETag头记录处理此问题.如果客户端发送的ETag与服务器的标记不匹配,则发出412 Precondition Failed.到现在为止还挺好.但是,当我想删除1,000条记录时,我会使用什么?1,000次单独调用的来回时间是相当可观的,那么REST如何处理涉及Optimistic Concurrency的批处理操作?

rest api-design http bulk optimistic-concurrency

6
推荐指数
2
解决办法
8318
查看次数

SQL Server 2005中的死锁!两个实时批量upsert正在战斗.为什么?

替代文字

这是场景:

我有一个名为MarketDataCurrent(MDC)的表,它有实时更新的股票价格.

我有一个名为'LiveFeed'的进程,它读取从线路流出的价格,排队插入,并使用'批量上传到临时表然后插入/更新到MDC表'.(BulkUpsert)

我有另一个进程,然后读取此数据,计算其他数据,然后使用类似的BulkUpsert存储过程将结果保存回同一个表中.

第三,有许多用户运行C#Gui轮询MDC表并从中读取更新.

现在,在数据快速变化的那一天,事情运行得非常顺利,但是在市场营业时间之后,我们最近开始看到数据库中出现越来越多的死锁异常,现在我们每天看到10-20个.这里要注意的重要一点是,当值不变时会发生这些.

以下是所有相关信息:

表格定义:

CREATE TABLE [dbo].[MarketDataCurrent](
 [MDID] [int] NOT NULL,
 [LastUpdate] [datetime] NOT NULL,
 [Value] [float] NOT NULL,
 [Source] [varchar](20) NULL, 
CONSTRAINT [PK_MarketDataCurrent] PRIMARY KEY CLUSTERED 
(
 [MDID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

-

替代文字

我有一个Sql Profiler跟踪运行,捕获死锁,这就是所有图形的样子.

替代文字

过程258被重复地称为以下'BulkUpsert'存储过程,而73正在调用下一个:

ALTER proc [dbo].[MarketDataCurrent_BulkUpload]
 @updateTime datetime,
 @source varchar(10)
as

begin transaction

update c with (rowlock) set LastUpdate = getdate(), Value = t.Value, …
Run Code Online (Sandbox Code Playgroud)

deadlock sql-server-2005 bulk primary-key database-deadlocks

5
推荐指数
1
解决办法
923
查看次数

libusb批量转移

我正在尝试使用libusb1.0.9实现用户空间usb驱动程序.我有lpc2148蓝板(ARM7)和我一起使用.这个主板是由Bertrik Sikken先生装载的开源USB堆栈/固件.现在我的用户空间驱动程序尝试用板写读.我正在获取垃圾数据.我想了解批量转运的流程.对于任何传输/事务是否涉及内核设备驱动程序?我们还需要usb小工具设备驱动吗?我无法理解数据被复制的位置.重要的是,当我读/写中断生成时,我可以在LCD上看到正确的数据.我需要读/写USBRxData/USBTxData吗?请做必要的.

我尝试了以下代码进行批量传输读写.

int usb_read(struct libusb_device *dev,struct libusb_device_handle *hDevice)  
{  
    char *data,*data1;  
    struct  libusb_endpoint_descriptor *ep;     
    struct  libusb_interface_descriptor *id;  
    int len=64,r,ret_alt,ret_clm,ret_rst,i;  
    struct libusb_device **list;  

    data = (char *)malloc(512); //allocation  of buffers  
    data1 = (char *)malloc(512);  
    memset(data,'\0',512);  
    memset(data1,'\0',512);  

    if(hDevice==NULL)  
    {  
        printf("\nNO device found\n");  
        return 0;  
    }  
    int ret_open = libusb_open(dev,&hDevice);  
    if(ret_open!=0)  
    {  
        printf("Error in libusb_open\n");  
        libusb_free_device_list(list,1);  
        return -1;  
    }       
    char str_tx[512]="G";    //data to send to device  
    char str_rx[512];        //receive string   
    data = str_tx;  

    printf("data::%s\t,str::%s\n",data,str_tx);  
    //printf("%c\n",data);  
    ep = active_config(dev,hDevice);  
    printf("after ep\n");  
    //printf("alt_interface = …
Run Code Online (Sandbox Code Playgroud)

data-transfer-objects bulk libusb

5
推荐指数
1
解决办法
3万
查看次数

SQL Server 中的批量插入

我创建了将数据从 csv 导入我的表的 SSIS 包,我正在尝试通过 sql 命令重现 SSIS,更具体地说,使用批量插入语句,你能帮忙吗?

.csv 文件属性:

在此处输入图片说明

在此处输入图片说明

sql sql-server csv bulk

5
推荐指数
1
解决办法
7558
查看次数

Spring Batch一次处理多个项目

我们正在使用 Spring Batch 进行一些处理,通过 Reader 读取一些 id,我们希望通过处理器将它们作为“块”处理,然后写入多个文件。但是处理器接口一次只允许处理一个项目,我们需要进行批量处理,因为处理器依赖于第三方,并且不能为每个项目调用服务。

我看到我们可以为“chunk”中涉及的所有 Reader-Processor-Writers 创建 Wrappers 来处理 List<> 并委托给一些具体的读取器/处理器/写入器。但这对我来说似乎并不好。像这样:

   <batch:chunk reader="wrappedReader" processor="wrappedProcessor" writer="wrappedWriter" 
commit-interval="2"/>
Run Code Online (Sandbox Code Playgroud)

是否有“分块”选项可以在处理器之前分块?而不是在 Writer 之前。

干杯,

java spring bulk spring-batch

5
推荐指数
1
解决办法
3111
查看次数

jsforce批量查询api 10k限制

我试图了解如何使用 jsforce 和批量查询从 salesforce 导出 50k 记录。仅返回前 10k,我知道这是由于批次大小限制为 10k,但是我不明白如何创建下一个批次来获取记录 10001 到 20000 等。

目前我有以下内容,任何帮助将不胜感激。

  conn.bulk.query('SELECT Id FROM Account')
    .on('record', function record(rec) {
      log.debug('dumpAllObject', 'rec', rec);
    })
    .on('error', function handle(err) { log.error('dumpAllObject', 'error', err); })
    .on('end', function resolve() {
          log.info('dumpAllObject', 'Completed');
    });
Run Code Online (Sandbox Code Playgroud)

javascript salesforce bulk

5
推荐指数
1
解决办法
1287
查看次数

JPA batch_size 属性不适用于本机查询

我正在尝试使用本机查询进行批量插入。

@Repository
public interface Repository extends CrudRepository<Entity, Integer> {

    @Modifying
    @Query(value = "INSERT INTO table_name(value) VALUES (:value)", nativeQuery = true)
    void insert(@Param("value") String value);
}
Run Code Online (Sandbox Code Playgroud)

我已将batch_size属性添加到application.properties文件中

spring.jpa.properties.hibernate.jdbc.batch_size = 50
Run Code Online (Sandbox Code Playgroud)

但在日志中,我看到每个插入都是单独处理的。是否可以将批处理应用于本机查询?

sql hibernate jpa bulk spring-boot

5
推荐指数
1
解决办法
1836
查看次数

SQLAlchemy 一次在冲突时插入(更新插入)多行

我知道SQLAlchemy中有一些命令称为bulk_insert_mappings和bulk_update_mappings,它们可以一次插入/更新多行;我知道有一种方法可以像这样更新插入一行:

from sqlalchemy.dialects.postgresql import insert
insert_stmt = insert(my_table).values(
     id='some_existing_id',
     data='inserted value'
     )
do_update_stmt = insert_stmt.on_conflict_do_update(
        index_elements=['id'],
        set_=dict(data='updated value')
     )
conn.execute(do_update_stmt)
Run Code Online (Sandbox Code Playgroud)

我想做的是将这两件事合并到批量更新插入中,而不必 ping 我的数据库三次(一次查看需要插入哪些行和更新哪些行,一次进行实际插入,一次进行更新) 。有谁知道是否有办法做到这一点?感谢您提前提供任何帮助!

python sqlalchemy upsert bulk

5
推荐指数
0
解决办法
622
查看次数