전체 글 목록 25

Apache Druid 27.0.0 Deep Storage Query 테스트 실패 과정

Deep Storage Query Apache Druid 27.0.0 릴리즈에 추가된 Deep Storage Query 기능을 테스트했다. 먼저 결론은 'kafka ingestion을 사용하는 지금 환경에서는 사용할 수 없다' 였다. Multi Stage Query는 Batch 데이터를 지원하지 kafka ingestion은 지원하지 않기 때문이다. Deep Storage Query는 Historical 서비스를 거치지 않고 Deep Storage에 있는 데이터를 쿼리 할 수 있는 기능이다. Deep Storage Query를 테스트 한 가장 큰 이유는 Historical 서비스의 disk 크기다. 이전까지 드루이드는 Historical 서비스가 가지고 있는(memory, disk) 세그먼트의 범위 안 ..

Druid 2023.08.29

[exporter] 분석 - 1

먼저 exporter의 Factory를 살펴보자. // Factory is factory interface for exporters. // // This interface cannot be directly implemented. Implementations must // use the NewFactory to implement it. // 해당 인터페이스를 직접 사용할 수 없고 반드시 NewFactory()를 이용해 생성해야한다. type Factory interface { component.Factory // 모든 컴포넌트 팩토리가 구현하는 인터페이스. Type()과 CreateDefaultConfig() 메서드 필요. // CreateTracesExporter creates a TracesExport..

Termux 이용한 Ubuntu 설치

원문 설치 방법 정리된 글. 링크 원문따라 설치한 것 정리 1. Dex 다운로드 링크 2. Termux 다운로드 링크 링크에 들어가 최신 버전의 apk 다운로드. arm 붙은거 다운받으면 될 거 같은데 난 그냥 universal 붙은거 사용. 3. termux 실행 4. update && upgrade pkg update -y && pkg upgrade -y 5. 저장소 권한 접근 termux-setup-storage or 설정에서 termux 검색 -> 권한 -> 파일 및 미디어 허용 6. proot-distro, vim, pulseaudio 설치 pkg install proot-distro pulseaudio vim 7. pulseaudio 설정 vim ~/.profile # 아래 두 줄 추가 pul..

환경 2023.08.14

레지스터 셋

https://developer.arm.com/documentation/den0024/a/ARMv8-Registers AARCH64 범용 레지스터 모든 예외 레벨에서 언제든지 접근할 수 있는 64bit의 범용 레지스터 31개를 제공한다. 각 레지스터는 64bit며 X0 ~ X30까지 존재한다. 각 64bit 범용 레지스터는 32bit W 레지스터를 포함하며, W 레지스터는 X 레지스터의 하위 워드에 매핑된다. -> 그러면 armv8은 한 번에 처리하는 단위가 32bit라는건가? W레지스터에서 값을 읽는다면 상위 X레지스터의 값은 읽지 않고 W 레지스터에 쓴다면 X레지스터의 값은 00000000으로 쓰여진다. W 레지스터에 0xFFFFFFFF을 쓴다면, X레지스터는 0x00000000FFFFFFFF 이 된..

Armv8 2023.07.21

input - generate

컨텍스트 없이 실행되는 [Bloblang](/docs/guides/bloblang/ about) 매핑을 사용해 지정된 interval마다 메시지를 생성한다. generateReader는 다음처럼 생겼다. type generateReader struct { remaining int batchSize int limited bool firstIsFree bool exec *mapping.Executor timer *time.Ticker schedule *cron.Schedule location *time.Location } generateReader를 생성하는 newGenerateReader함수의 프로토타입. conf는 default 값 + 설정 값이 적용된 상태. func newGenerateReader(m..

manager

config internal/manager/config.go 먼저 볼 것은 manager의 Config 구조체다. 이 구조체는 benthos config에서 리소스 구성 요소를 지정하기 위한 필드가 포함된다. input, processor, output, cache, ratelimit 의 설정을 가진다. type ResourceConfig struct { ResourceInputs []input.Config ResourceProcessors []processor.Config ResourceOutputs []output.Config ResourceCaches []cache.Config ResourceRateLimits []ratelimit.Config }

package import

main.go 의 import 부분을 보면, _ "github.com/benthosdev/benthos/v4/public/compoennts/all" 을 import 하고 있다. 사용하지도 않을 패키지를 뭐하러 import 하고 있을까? /github.com/benthosdev/benthos/v4/public/components/all 을 보면 더 이상하다. _ "github.com/benthosdev/benthos/v4/public/components/amqp09" _ "github.com/benthosdev/benthos/v4/public/components/amqp1" _ "github.com/benthosdev/benthos/v4/public/components/avro" ... 이렇게 패키지를 ..