我想以压缩格式存储以下元组的列表,我想知道哪种算法给了我
我的数据如下:
(<int>, <int>, <double>),
(<int>, <int>, <double>),
...
(<int>, <int>, <double>)
Run Code Online (Sandbox Code Playgroud)
两个整数中的一个指的是一个时间点,并且结果在一个列表中的数字很可能彼此接近.另一个int表示一个抽象id,值不太可能接近,尽管它们也不会完全随机.双重表示传感器读数,虽然值之间存在某种相关性,但它可能没什么用处.
我正在详细阐述一个对我来说难以解决的问题,我并不期待一个简单的解决方案,但也许有经过验证的实践或进一步阅读可能会使这更容易.我很确定许多应用程序中会弹出一般问题(例如垃圾收集或事务数据库).
我的应用程序有一个图表(如果重要的话DAG),它同时由多个线程遍历.其中一些只是试图找到某些节点或检索子图,其他可能会改变图的结构.
我想要实现的策略是读取线程将在图形的"快照"上执行其整个操作,即在某个时间点查看结构.
我目前的计划是在事务DB中设置类似于行版本控制的东西,即读取线程首先获取当前版本号,然后仅访问具有此版本号或更早版本的图节点和边.然后,编写线程会在新元素上添加增加的版本号(更改的元素将首先克隆),使其对于运行的读者不可见.然后,写入线程可以在成功完成后"提交"其新版本,并且读者将"释放"其版本号,使删除的元素有资格被删除.
这种策略仍然是粗略的,并且有许多未解决的问题,例如并发写访问,但通常它似乎是一条可行的道路.
我想部署一个带有war包结构的OSGi包,因此它被Struts认为是一个Web应用程序.我使用Maven,所以我内置了WAR包,我有Maven bundle-plugin为我创建OSGi兼容的清单.
问题是,这两个不能一起工作,所以bundle插件不知道类文件现在在子文件夹中classes/并且捆绑的jar 文件都在lib/,所以它创建了一个错误的Bundle-classpath标题.我可以手动为我添加正确的标题pom.xml,但我想要自动添加.我怎样才能做到这一点?
有很多人想要反过来这样做,我想知道我是不是对某些东西感到愚蠢.
基本上,我想使用开放标准构建我的Web应用程序,并通过Flash Player的SWF文件支持旧版浏览器.那可能吗?
我目前正在设计一个应用程序,它有一个模块可以从数据库加载大量数据,并根据具体情况通过各种计算将其减少到更小的数据集.
许多更密集的操作具有确定性,并且可以用于并行处理.
如果我有一个循环遍历从db到达的大量数据块,并且每个都调用一个没有副作用的确定性函数,我将如何使它成为程序不等待函数返回而是设置接下来的电话,他们可以并行处理?现在我可以用一种天真的方法来证明这个原则.
我已经阅读过谷歌的MapReduce论文了,虽然我可以在很多地方使用整体原理,但我现在不会针对大型集群,而不是1.0版本的单核多CPU或多CPU机器.所以目前,我不确定我是否可以实际使用该库,或者我必须自己推出一个简单的基本版本.
我处于设计过程的早期阶段,到目前为止,我的目标是C-something(用于速度关键位)和Python(用于生产力关键位)作为我的语言.如果有令人信服的理由,我可能会改变,但到目前为止,我对我的选择很满意.
请注意,我知道从数据库中检索下一个块可能需要更长的时间,而不是处理当前的块,整个过程将受I/O限制.但是,我现在假设它不是并且实际上在此时使用数据库集群或内存缓存或其他东西不是I/O绑定的.
我的程序有一个组件 - 称为调度程序 - 它允许其他组件及时注册他们想要回调的时间点.这应该像Unix cron服务一样工作,即你告诉调度程序"在每整个小时过去十分钟通知我".
我意识到Java中没有真正的回调.
这是我的方法,是否有一个已经完成这些工作的库?随意提出改进建议.
注册调度程序通行证:
在启动时或在新的注册请求之后,调度程序以当前系统时间的Calendar对象开始,并检查数据库中是否存在与此时间点匹配的任何条目.如果存在,则执行它们并重新开始该过程.如果没有,则Calendar对象中的时间增加一秒,并重新检查entreis.重复这一过程,直到有一个或多个匹配的条目.(离散事件模拟)
然后,调度程序将记住每秒的时间戳,睡眠和唤醒,以检查它是否已存在.如果它恰好醒来并且时间已经过去,它将重新开始,同样如果时间到了且作业已经执行.
编辑:谢谢你指点我Quartz.但是,我正在寻找更小的东西.
我们正在构建一个JSP Web应用程序,它在Apache Felix OSGi容器内运行(Web应用程序本身是一个OSGi Bundle).现在,我们面临以下问题:
根据JSP 2.0规范,TLD(taglib描述符)不再需要驻留在Web应用程序WEB-INF文件夹中,而是直接从taglib的jar META-INF文件夹加载.这个taglib jar通常驻留在web应用程序WEB-INF/lib文件夹中,但因为它们是OSGi包,所以它们由Felix加载.
在taglib的OSGi信息中,我们确实导入了所有需要的包.那里的任何人都知道如何告诉servlet,在加载的OSGi Bundles中搜索TLD?
谢谢你的帮助!
我有一个导致整数溢出的错误,导致错误(负)时间戳被写入数据库.该代码已经是固定的,但我想修正错误的数据,太.
我想,我可以采取错误的结果并添加Integer.MAX_VALUE,但这似乎不起作用,它让我高价值.我offset在下面的代码片段中有值,但不存储输入值.
以下代码重现了该错误:
@Test
public void testArexxConversion()
{
// The input values represent seconds since midnight, Jan 1, 2000 UTC
final int sample = 361450072; // A sample input value drawn from production
// I use the offset from the UNIX epoch to convert the vakue to UNIX seconds
final int offset = 946684800; // midnight, Jan 01 2000 UTC in UNIX seconds
// This was the buggy line in my code, …Run Code Online (Sandbox Code Playgroud) 在最近的一个问题上,我得到了一些评论,询问我是否在我的应用程序中使用"本机代码".现在,我知道有一些方法可以使用名为"JNI"的东西从Java应用程序内部调用传统二进制库(DLL,SO)中的代码.我已经阅读了维基百科条目,但我从未使用过这个.
我使用了许多库,其中一些可能使用也可能不使用本机代码.我怎么知道他们是否这样做?我没有安装任何SO(在Linux上运行),但我想这并不意味着库没有使用任何?我是否必须浏览所有文档(库之间的质量差别很大)或者我可以对JAR进行一些分析吗?
java ×5
osgi ×3
concurrency ×2
algorithm ×1
compression ×1
cron ×1
flash ×1
graph ×1
html5 ×1
jsp ×1
mapreduce ×1
maven-2 ×1
scheduling ×1
taglib ×1