标签: txf

使用Transactional NTFS(TxF)获得任何真实的企业级体验?

背景:

我知道这太问题有关事务性NTFS(TxF的)和本文介绍如何使用它,但我正在寻找现实世界的经验,具有相当高容量企业系统,其中大量的BLOB数据(比如文件和/或照片)需要在交易时保留并多次阅读.

  • 我们期待每天写入数万个文档,每小时读取几万个文档.
  • 我们可以在文件系统或SQL Server中存储索引,但必须能够在几个框中扩展它.
  • 我们必须保留为灾难恢复轻松备份和恢复数据的能力.

问题:

  • 使用Transactional NTFS(TxF)获得任何真实的企业级体验?

相关问题:

  • 有人尝试使用TxF进行分布式事务,同一文件同时提交给两个镜像服务器吗?
  • 有人尝试过使用文件系统和数据库的分布式事务吗?
  • 您可以分享任何性能问题/可靠性问题/性能数据?在交易受到关注之前,有没有人甚至做过这种规模的事情?

编辑:为了更清楚,我已经研究了其他技术,包括SQL Server 2008的新FILESTREAM数据类型,但是这个问题仅针对事务文件系统.

更多资源:

.net c# msdtc ntfs txf

21
推荐指数
2
解决办法
2048
查看次数

.net持久资源管理器,用于事务性文件系统访问

我试图围绕在C#中使用System.Transactions命名空间.我在MSDN上找到了一些关于使用资源管理器的文档,但它只涵盖任何细节的易失性内存资源管理器(如Transactional).我基本上在寻找可以在TransactionScope中使用的东西,就像Transactional <>一样,但是用它来写入/修改/删除磁盘上的文件.标准库中是否存在类似的内容?我已经读过NTFS现在有"TxF"允许事务性文件系统访问 - 我期望在.net中找到一些利用它的东西.也许我需要实现自己的?

.net c# ntfs system.transactions txf

7
推荐指数
1
解决办法
1286
查看次数

使用Transactional NTFS的替代方法

鉴于Microsoft已弃用Transactional NTFS(TxF):

Microsoft强烈建议开发人员使用其他方法来满足您的应用程序需求.可以通过更简单和更容易获得的技术来实现TxF开发的许多场景.此外,在未来的Microsoft Windows版本中可能无法使用TxF.

虽然TxF是一组功能强大的API,但自Windows Vista以来,开发人员对此API平台的兴趣非常有限,主要是由于其复杂性和开发人员在应用程序开发过程中需要考虑的各种细微差别.因此,Microsoft正在考虑在未来版本的Windows中弃用TxF API,以便将开发和维护工作集中在对大多数客户更有价值的其他功能和API上.

这意味着我需要一个替代方案:

我的交易要求相当简单 - 移动两个文件:

tx = BeginTransaction();
{
   MoveFile(testResults, testResultsArchive); //throws if there's a problem
   MoveFile(cdcResponse, cdcResponseArchive); //throws if there's a problem

   CommitTransaction(tx);
}
finally
{
    CloseHandle(tx);
}
Run Code Online (Sandbox Code Playgroud)

我已经考虑过转向MoveFileCopyFile+ DeleteFile:

CopyFile(testResults, testResultsArchive); //throws if there's a problem
CopyFile(cdcResponse, cdcResponseArchive); //throws if there's a problem

DeleteFile(testResults);
DeleteFile(cdcResponse);
Run Code Online (Sandbox Code Playgroud)

但我希望有一个好的解决方案,而不是一个错误的解决方案.所以我再试一次:

CopyFile(testResults, testResultsArchive); //throws if there's a problem
CopyFile(cdcResponse, cdcResponseArchive); //throws if there's a problem …
Run Code Online (Sandbox Code Playgroud)

transactional txf

5
推荐指数
2
解决办法
1796
查看次数

Vista Phantom目录

我们有一个程序,安装程序会检查是否存在配置文件,如果存在,则不会复制该文件(它假定用户已修改其配置文件并希望保留这些修改).不幸的是,这是一个Vista之前的应用程序,它将配置文件保存在Program Files中.问题是,如果你在重新安装某个API时手动清除目录,仍然认为那里有一个目录.例如,VB6及其浏览文件对话框看到的文件夹,但是explorer,cmd shell等无法查看文件夹.对文件进行写入仍然会将旧文件(对于某些API,但不是资源管理器)留下,除了"浏览文件"对话框中的表单之外,该文件无法删除.

这些Phantom文件夹发生了什么,我们如何删除文件以便所有API看到相同的东西?也许它与TxF或搜索索引器有关,但我们使用的安装程序(InnoSetup)和部分应用程序(用VB6编写的部分)都看到了旧版本的文件,其他一切都看到了当前版本.

vb6 inno-setup txf windows-vista

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