tl;dr 摘要:是否有基于数量、磁盘空间或时间限制数据库表长度和文件系统文件数量的标准解决方案?
我有一个 Java Web 服务,它允许用户运行在内部作为作业处理的操作。为了访问先前运行的作业或异步作业的结果,用户以作业 ID 的形式获取句柄。我将所有这些信息保存在关系数据库(目前是 Apache Derby)的几个数据库表中,因为它比发明一种新的文件格式更方便(而且可能更可靠和性能更高)。实际作业结果在文件系统中保存为 XML 文件。
作业执行可能非常频繁(1/s 及以上),因此表/目录可能会在一段时间后变得非常大。我需要的是一种方法,该方法允许根据
- 作业计数(最多应保存n个作业及其结果)
- 表/目录大小(表在硬盘驱动器上最多应占用n GB 空间)
- 作业运行时间(仅保留最多n天前完成的作业)
我还没有决定采用哪种解决方案,所以灵活性越大越好。我担心当我自己实施此解决方案时,该解决方案可能很容易出错,并且需要一些时间才能使系统变得健壮。我正在开发的软件应该能够运行很长时间而没有任何中断(好吧,谁不会……)。