notebookVb
This commit is contained in:
@@ -15,6 +15,7 @@ Bezpečné pro souběžný běh na více strojích (ON CONFLICT v SQL).
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
import socket
|
import socket
|
||||||
import logging
|
import logging
|
||||||
@@ -203,6 +204,8 @@ def process(conn, hostname):
|
|||||||
log.info(f"Přeskočeno (již v DB): {stats['preskoceno']}")
|
log.info(f"Přeskočeno (již v DB): {stats['preskoceno']}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_start = time.perf_counter()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
velikost = source.stat().st_size
|
velikost = source.stat().st_size
|
||||||
hash_val = compute_blake3(source)
|
hash_val = compute_blake3(source)
|
||||||
@@ -211,13 +214,18 @@ def process(conn, hostname):
|
|||||||
stats["chyb"] += 1
|
stats["chyb"] += 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_hash = time.perf_counter()
|
||||||
|
|
||||||
zaloha_id = known_hashes.get(hash_val)
|
zaloha_id = known_hashes.get(hash_val)
|
||||||
|
|
||||||
if zaloha_id is not None:
|
if zaloha_id is not None:
|
||||||
# Hash známý z prefetch — duplikát, jen zapíšeme zdroj
|
|
||||||
stats["duplicit"] += 1
|
stats["duplicit"] += 1
|
||||||
|
vel_mb = velikost / (1024 * 1024)
|
||||||
|
log.info(
|
||||||
|
f"DUPLIKÁT {source.name} "
|
||||||
|
f"({vel_mb:.1f} MB, hash={t_hash - t_start:.2f}s)"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
# Nový hash — zkopírovat a zapsat do zaloha_obrazku
|
|
||||||
dest = dest_path_for(source, hostname)
|
dest = dest_path_for(source, hostname)
|
||||||
try:
|
try:
|
||||||
copy_to_backup(source, dest)
|
copy_to_backup(source, dest)
|
||||||
@@ -226,21 +234,30 @@ def process(conn, hostname):
|
|||||||
stats["chyb"] += 1
|
stats["chyb"] += 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_copy = time.perf_counter()
|
||||||
|
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
cur.execute(SQL_INSERT_ZALOHA, (hash_val, str(dest), source.name, velikost))
|
cur.execute(SQL_INSERT_ZALOHA, (hash_val, str(dest), source.name, velikost))
|
||||||
row = cur.fetchone()
|
row = cur.fetchone()
|
||||||
if row:
|
if row:
|
||||||
zaloha_id = row[0]
|
zaloha_id = row[0]
|
||||||
else:
|
else:
|
||||||
# Jiný stroj vložil mezitím stejný hash — ON CONFLICT, získáme existující ID
|
|
||||||
cur.execute(SQL_GET_ZALOHA_ID, (hash_val,))
|
cur.execute(SQL_GET_ZALOHA_ID, (hash_val,))
|
||||||
zaloha_id = cur.fetchone()[0]
|
zaloha_id = cur.fetchone()[0]
|
||||||
cur.close()
|
cur.close()
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
t_db = time.perf_counter()
|
||||||
|
|
||||||
known_hashes[hash_val] = zaloha_id
|
known_hashes[hash_val] = zaloha_id
|
||||||
stats["kopirovano"] += 1
|
stats["kopirovano"] += 1
|
||||||
log.info(f"ZKOPÍROVÁNO [{stats['kopirovano']:>6}] {source}")
|
vel_mb = velikost / (1024 * 1024)
|
||||||
|
log.info(
|
||||||
|
f"ZKOPÍROVÁNO [{stats['kopirovano']:>6}] {source.name} "
|
||||||
|
f"({vel_mb:.1f} MB, hash={t_hash - t_start:.2f}s "
|
||||||
|
f"copy={t_copy - t_hash:.2f}s db={t_db - t_copy:.2f}s "
|
||||||
|
f"celkem={t_db - t_start:.2f}s)"
|
||||||
|
)
|
||||||
|
|
||||||
pending_zdroje.append((hostname, src_str, source.name, velikost, hash_val, zaloha_id))
|
pending_zdroje.append((hostname, src_str, source.name, velikost, hash_val, zaloha_id))
|
||||||
known_sources.add(src_str)
|
known_sources.add(src_str)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Bezpečné pro souběžný běh na více strojích (ON CONFLICT v SQL).
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
import socket
|
import socket
|
||||||
import string
|
import string
|
||||||
@@ -210,6 +211,8 @@ def process(conn, hostname, drives):
|
|||||||
log.info(f"Přeskočeno (již v DB): {stats['preskoceno']}")
|
log.info(f"Přeskočeno (již v DB): {stats['preskoceno']}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_start = time.perf_counter()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
velikost = source.stat().st_size
|
velikost = source.stat().st_size
|
||||||
hash_val = compute_blake3(source)
|
hash_val = compute_blake3(source)
|
||||||
@@ -218,10 +221,17 @@ def process(conn, hostname, drives):
|
|||||||
stats["chyb"] += 1
|
stats["chyb"] += 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_hash = time.perf_counter()
|
||||||
|
|
||||||
zaloha_id = known_hashes.get(hash_val)
|
zaloha_id = known_hashes.get(hash_val)
|
||||||
|
|
||||||
if zaloha_id is not None:
|
if zaloha_id is not None:
|
||||||
stats["duplicit"] += 1
|
stats["duplicit"] += 1
|
||||||
|
vel_mb = velikost / (1024 * 1024)
|
||||||
|
log.info(
|
||||||
|
f"DUPLIKÁT {source.name} "
|
||||||
|
f"({vel_mb:.1f} MB, hash={t_hash - t_start:.2f}s)"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
dest = dest_path_for(source, hostname)
|
dest = dest_path_for(source, hostname)
|
||||||
try:
|
try:
|
||||||
@@ -231,6 +241,8 @@ def process(conn, hostname, drives):
|
|||||||
stats["chyb"] += 1
|
stats["chyb"] += 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
t_copy = time.perf_counter()
|
||||||
|
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
cur.execute(SQL_INSERT_ZALOHA, (hash_val, str(dest), source.name, velikost))
|
cur.execute(SQL_INSERT_ZALOHA, (hash_val, str(dest), source.name, velikost))
|
||||||
row = cur.fetchone()
|
row = cur.fetchone()
|
||||||
@@ -242,9 +254,17 @@ def process(conn, hostname, drives):
|
|||||||
cur.close()
|
cur.close()
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
t_db = time.perf_counter()
|
||||||
|
|
||||||
known_hashes[hash_val] = zaloha_id
|
known_hashes[hash_val] = zaloha_id
|
||||||
stats["kopirovano"] += 1
|
stats["kopirovano"] += 1
|
||||||
log.info(f"ZKOPÍROVÁNO [{stats['kopirovano']:>6}] {source}")
|
vel_mb = velikost / (1024 * 1024)
|
||||||
|
log.info(
|
||||||
|
f"ZKOPÍROVÁNO [{stats['kopirovano']:>6}] {source.name} "
|
||||||
|
f"({vel_mb:.1f} MB, hash={t_hash - t_start:.2f}s "
|
||||||
|
f"copy={t_copy - t_hash:.2f}s db={t_db - t_copy:.2f}s "
|
||||||
|
f"celkem={t_db - t_start:.2f}s)"
|
||||||
|
)
|
||||||
|
|
||||||
pending_zdroje.append((hostname, src_str, source.name, velikost, hash_val, zaloha_id))
|
pending_zdroje.append((hostname, src_str, source.name, velikost, hash_val, zaloha_id))
|
||||||
known_sources.add(src_str)
|
known_sources.add(src_str)
|
||||||
|
|||||||
Reference in New Issue
Block a user