c# - ¿Alguna experiencia en el mundo real, de nivel empresarial con NTFS transaccional(TxF)?
.net msdtc (5)
Fondo:
Soy consciente de esta pregunta SO sobre Transactional NTFS (TxF) y este artículo que describe cómo usarlo, pero estoy buscando una experiencia del mundo real con un sistema empresarial de un volumen razonablemente alto donde haya muchos datos de blobs (por ejemplo, documentos y / o Las fotos) deben persistir una vez en forma transaccional y leer muchas veces .
- Esperamos unas pocas decenas de miles de documentos escritos por día y lecturas de varias decenas de miles por hora.
- Podríamos almacenar índices dentro del sistema de archivos o en SQL Server, pero debemos poder escalar esto en varios cuadros.
- Debemos conservar la capacidad de realizar copias de seguridad y restaurar los datos fácilmente para la recuperación de desastres.
La pregunta:
- ¿Alguna experiencia en el mundo real, de nivel empresarial con NTFS transaccional (TxF)?
Preguntas relacionadas:
- ¿Alguien intentó transacciones distribuidas utilizando TxF donde el mismo archivo se confirma en dos servidores espejo a la vez?
- ¿Alguien intentó una transacción distribuida con el sistema de archivos y una base de datos?
- ¿Alguna inquietud de rendimiento / inquietud de confiabilidad / datos de desempeño que pueda compartir? ¿Alguien ha hecho algo en esta escala antes de que las transacciones sean una preocupación?
Ediciones : Para ser más claros, he investigado otras tecnologías, incluido el nuevo tipo de datos FILESTREAM de SQL Server 2008, pero esta pregunta está dirigida específicamente al sistema de archivos transaccional solamente .
Más recursos:
- Un artículo de la revista MSDN en TxF llamado "Mejore sus aplicaciones con transacciones del sistema de archivos" .
- Un webcast llamado "Transactional Vista: Kernel Transaction Manager y amigos (TxF, TxR)" . Este video menciona una sobrecarga por el uso de TxF del 2-5%, con una discusión sobre el rendimiento que comienza en unos 25 minutos. Este es el primer conjunto de números concretos que he encontrado. Y el video es un muy buen resumen de cómo funciona esto bajo el capó. Aproximadamente a las 34:30, el orador describe un escenario muy similar a esta pregunta.
- Un canal 9 screencast llamado "Surendra Verma: Vista Transactional File System" . Habla de que el rendimiento comienza alrededor de los 35 minutos. No hay cifras concretas.
- Una lista de artículos de TxF en el blog de B # .NET.
- Un canal 9 screencast llamado "Transactional NTFS" .
¿Ha considerado la compatibilidad con filestream en SQL Server 2008 (si está utilizando SQL Server 2008, por supuesto)? No estoy seguro del rendimiento, pero ofrece transaccionalidad y es compatible con la copia de seguridad / restauración.
Desafortunadamente, parece que la respuesta es "No."
En casi dos semanas (una semana con una recompensa de 100 puntos) y 156 visitas, nadie ha respondido que han usado TxF para ninguna aplicación de alto volumen como lo describí. No puedo decir que esto haya sido inesperado y, por supuesto, no puedo demostrar que sea negativo, pero parece que esta característica de Windows no se conoce bien o no se usa con frecuencia, al menos por los miembros activos de la comunidad SO en el momento de la redacción.
Si alguna vez llego a escribir algún tipo de prueba de concepto, publicaré aquí lo que aprendí.
Ronald: FileStream se coloca sobre TxF.
JR: Aunque Windows Update usa TxF / KTM y demuestra su utilidad, no es una aplicación de alto rendimiento.
Si bien no tengo mucha experiencia con TxF, sí tengo experiencia con MS DTC. TxF en sí es bastante eficaz. Cuando lanza el MS DTC para manejar múltiples administradores de recursos en múltiples máquinas, el rendimiento tiene un impacto considerable.
Según su descripción, parece que está almacenando e indexando grandes volúmenes de datos no estructurados. Supongo que usted también necesita la capacidad de buscar estos datos. Como tal, recomendaría encarecidamente buscar en algo como el Dryad de Microsoft o el MapReduce de Google y un sistema de archivos distribuidos de alto rendimiento para manejar su almacenamiento e indexación de datos no estructurados. Los mejores ejemplos de sistemas empresariales de alto volumen que almacenan e indexan volúmenes masivos de datos de blob son los motores de búsqueda de Internet como Bing y Google.
Existen bastantes recursos disponibles para administrar datos no estructurados de alto rendimiento, y probablemente resolverían su problema de manera más efectiva que SQL Server y NTFS.
Sé que está un poco más alejado de lo que probablemente estaba buscando ... pero mencionó que ya había agotado todas las demás vías de búsqueda alrededor del cuadro NTFS / TxF / SQL. ;)
Supongo que la experiencia del "mundo real, de nivel empresarial" es más subjetiva de lo que parece.
Windows Update utiliza TXF. Por lo tanto, se está utilizando bastante en términos de frecuencia. Ahora, no está haciendo ningún trabajo de varios nodos y no está pasando por un DTC o algo tan sofisticado como eso, pero está usando TXF para manipular el estado del archivo. Coordina estos cambios con los cambios en el registro (TXR). ¿Eso cuenta?
Un colega mío presentó esta charla a SNIA , que es bastante franca acerca de gran parte del trabajo en torno a TXF y podría arrojar un poco más de luz. Si estás pensando en utilizar TXF, vale la pena leerlo.