우리는 하나의 모듈이 다른 원격 모듈에 고속으로 메시지를 보내는 메시징 시스템을 가지고 있습니다. 수신 모듈은이 메시지를 특정 형식으로 디코딩하여 두 개의 스레드로 전달합니다. 하나는 로거 스레드라고하고 다른 하나는 전달자 스레드입니다.사용할 데이터 구조
이 메시지를 이러한 스레드에 보내기 전에 이러한 메시지를 일종의 그룹화해야합니다.
이 메시지는 초당 약 800 개의 고속으로 전송됩니다.
- INT 유형
- INT 전송 시스템 ID
- INT RECPT 시스템 ID
- INT 타임 스탬프
- INT 코드
- INT 소스 포트를 다음과 같이
- INT 대상 포트 개
- 소스 IP 주소 (IPv4 또는 IPv6) 우리는 다음과 같은 세부 구조를 유지할 필요가 경기의 끝에서
- 대상 IP 주소 (IPv4 또는 IPv6)
경고 구조는
struct{
INT COUNT
INT First Alert Timestamp
INT Last Alert Timestamp
INT First Alert ID
INT Last Alert ID
}
8 가지 기준과 일치하는 각 경고에 대해 그룹이 생성/선택되고 다른 세부 정보와 함께 카운트가 증가합니다.
IP 주소 필드는 5 개의 필드 (INT 주소 유형, INT 주소 1, INT 주소 2, INT 주소 3 및 INT 주소 4)의 구조이거나 문자열로 변환 된 다음 구조에 저장 될 수 있습니다.
우리는 상당히 언젠가 우리의 머리를 덜컥 덜컥 울리지 만 구조와 알고리즘을 찾을 수 없어서 메모리와 속도가 모두 해결 될 수 있도록 충분히 효율적이지 못했습니다.
따라서 전문가에게 도움을 요청했습니다.
무엇이 일치합니까? 어떤 기준? – btilly