Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev To Main Last Week #142

Merged
merged 5 commits into from
Aug 29, 2024
Merged

Dev To Main Last Week #142

merged 5 commits into from
Aug 29, 2024

Commits on Aug 27, 2024

  1. fix: 벌크 연산을 이용하지 못 하는 점을 해결합니다. (#133)

    - bulkSize까지 최대한 채우다가, timeout이 지난다면 일시적으로 bulk insert를 진행하도록 수정했습니다.
    miiiinju1 authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    52f471d View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2024

  1. Feat/#134 LogQueue의 부하를 감소하도록 Producer Consumer 구조로 최적화 (#135)

    * feat: LogQueue의 동기화 메커니즘 최적화
    
    - consume() 메서드에 대해 consumeLock 객체를 사용한 동기화 구현
    - produce() 메서드의 동기화 제거로 불필요한 락킹 방지
    - consume() 메서드의 대기 로직을 do-while 루프로 변경하여 spurious wakeup 방지
    - produce() 메서드에서 consumeLock.notify() 호출로 정확한 스레드 깨우기
    - 전반적인 동시성 처리 개선으로 생산자와 소비자 간 효율성 향상
    
    * fix: process 시 락 범위 감소하도록 변경
    
    * fix: Primary를 LogQueue로 이동
    
    * refactor: LogQueue 동작 로직 수정
    
    - LockSupports를 활용한 Thread lock방식을 적용했습니다.
    - `volatile Thread consumerThread`에 대한 VarHandle을 적용했습니다.
    
    * refactor: AsyncLogProcessor
    
    - Producer, Consumer 방식을 적용해 리팩토링을 진행했습니다.
    - 이에 따라 사용하지 않는 테스트를 Deprecated 처리했습니다.
    
    * docs: Java-Doc 추가
    
    - LogQueue에 대한 Java-Doc을 추가했습니다.
    
    * chore: Java-Doc및 사용하지 않는 메서드 Deprecated 처리
    
    - 사용하지 않는 메서드에 대한 Deprecated 처리를 진행했습니다.
    - AsyncLogProcessor에 대한 JavaDoc를 작성했습니다.
    
    * chore: 패키지 이동 및 클래스 이름 변경
    
    - `Consumer` -> `EventConsumer`, `Producer` -> `EventProducer` 이름 변경을 진행했습니다.
    - 패키지 위치를 변경했습니다.
    
    * remove: 사용하지 않는 테스트 제거
    
    - Deprecated 된 테스트를 제거했습니다.
    
    * refactor: VarHandle 제거
    
    - volatile 키워드 로 충분히 가시성이 보장
    
    * fix: ReentrantLogQueue에 대해 producer와 consumer간의 경쟁 제거
    
    * fix: LogQueue process 시 RentrantLogQueue를 사용하도록 변경
    
    - LogQueue 비활성화
    
    ---------
    
    Co-authored-by: KyungMin Lee <[email protected]>
    Co-authored-by: luizy <[email protected]>
    3 people authored Aug 29, 2024
    Configuration menu
    Copy the full SHA
    b11d0b3 View commit details
    Browse the repository at this point in the history
  2. Feat/#137 MultiQueue를 이용하여 Controller에서 오는 로그 요청의 부하 감소 (#140)

    * chore: 임시로 ReentrantLogQueue에서 Primary 제거
    
    * feat: MultiProcessor 추가
    
    - 임시로 여러 큐를 가지는 MultiProcessor를 추가함
    
    * chore: default queue개수 조정
    
    * feat: flatterQueue 싱글 스레드풀 추가 및 queue count default를 3 설정
    
    * chore: default queue사이즈 설정
    
    * refactor: AsyncMultiProcessor 리팩토링
    
    - 내부 로직 일원화 및 린팅을 적용했습니다.
    - MultiProcessor -> AsyncMultiProcessor 클래스 명 변경을 진행했습니다.
    
    * chore: 불필요한 메서드 구현 제거
    
    - EventConsume<T> 구현을 제거했습니다.
    
    * chore: 의존성 정리, 사용하지 않는 Component 제거
    
    ---------
    
    Co-authored-by: KyungMin Lee <[email protected]>
    miiiinju1 and tidavid1 authored Aug 29, 2024
    Configuration menu
    Copy the full SHA
    e3857a3 View commit details
    Browse the repository at this point in the history
  3. Fis/#139 LinkedList 자료구조 개선 (#141)

    * feat: single linked list 추가
    
    - 생산자 소비자가 병렬적으로 호출할 수 있는  single linked list 추가
    
    * feat: SingleLinkLogQueue 추가
    
    - SingleLinkedList를 활용한 LogQueue 추가
    LuizyHub authored Aug 29, 2024
    Configuration menu
    Copy the full SHA
    10cf89a View commit details
    Browse the repository at this point in the history
  4. fix: 의존성 해결

    - Hot Fix: 의존성 관련 부분을 해결했습니다.
    tidavid1 committed Aug 29, 2024
    Configuration menu
    Copy the full SHA
    2e58dd0 View commit details
    Browse the repository at this point in the history