Skip to content

Memcached protocol doesn't work #126

@yizhengx

Description

@yizhengx

Hi, we implemented memcached protocol in aeraki and used DeathStarBenchmark/hotel-reservation to test.

Meta-protocol-proxy implementation: https://github.com/yizhengx/meta-protocol-proxy/tree/local-queue/src/application_protocols/memcached

We built it using bazel following the instructions in the document.

Example yamls for memcached services

  • deployment
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.22.0 (955b78124)
      creationTimestamp: null
      labels:
        io.kompose.service: memcached-rate
      name: memcached-rate
    spec:
      replicas: 1
      selector:
        matchLabels:
          io.kompose.service: memcached-rate
      strategy: {}
      template:
        metadata:
          annotations:
            kompose.cmd: kompose convert
            kompose.version: 1.22.0 (955b78124)
            sidecar.istio.io/statsInclusionPrefixes: cluster.outbound,cluster_manager,listener_manager,http_mixer_filter,tcp_mixer_filter,server,cluster.xds-grp,listener,connection_manager
            sidecar.istio.io/statsInclusionRegexps: http.*
            sidecar.istio.io/bootstrapOverride: aeraki-bootstrap-config
            sidecar.istio.io/proxyImage: yizhengx/aeraki-proxy:rate-limit-cas # custom image we built
          creationTimestamp: null
          labels:
            io.kompose.service: memcached-rate
        spec:
          containers:
            - env:
                - name: MEMCACHED_CACHE_SIZE
                  value: "128"
                - name: MEMCACHED_THREADS
                  value: "2"
              image: memcached
              name: hotel-reserv-rate-mmc
              ports:
                - containerPort: 11211
              resources:
                requests:
                  cpu: 100m
                limits:
                  cpu: 1000m
          restartPolicy: Always
    status: {}
    
  • service
    apiVersion: v1
    kind: Service
    metadata:
     annotations:
       kompose.cmd: kompose convert
       kompose.version: 1.22.0 (955b78124)
     creationTimestamp: null
     labels:
       io.kompose.service: memcached-rate
     name: memcached-rate
    spec:
     ports:
       - name: tcp-metaprotocol-memcached-memcached-rate
         protocol: TCP
         port: 11211
         targetPort: 11211
     selector:
       io.kompose.service: memcached-rate
    status:
     loadBalancer: {}
    

I really appreciate any advice on this including what we missed and how we can find the root cause. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions