Toxic relationship? PLEASE HELP.

I’ve been in this on and off relationship for almost two years. We broke up last year for the first time February last year and he moved on pretty quickly or so it seemed. I was obviously jealous and hurt but I decided it was for the best but at one point I felt like I had to move on to get completely over him but I was rushing into things with someone else and ended up sleeping with them in July. In August my ex and I began talking again and we just connected and it felt right and he told me he didn’t do anything with the other girl he was with and I don’t think he did but I was embarrassed and ashamed that I did, so I didn’t tell him that I slept with someone else. That was obviously a huge mistake and he ended up finding out and he was heartbroken. Now, almost 6 months since he has found out he is still not over it and I don’t expect him to be. But he continuously call me names such as “thot” or says i’m “disgusting” and an “embarrassment” and that I “couldn’t keep my legs closed”. His words hurt a lot and I try to be nice and understanding about the situation since I know it is all my fault but sometimes I snap or just get so tired of being so nice about it. This happens basically everyday and he is very important to me and I love him and i don’t want to give up but I don’t know what to do. He also understand how much this hurts me emotionally and how it takes a toll on my self esteem and apologizes but still continues to do it. What should I do? Keep fighting ? Walk away? Keep trying to find a compromise? Please help, I love him and don’t want to lose him but I am out of options.